--- title: roomtypeexprlookup - X4 schema type summary: roomtypeexprlookup: X4 attribute schema type: base types, constraints and value alternatives. section: reference kind: guide status: reference updated: 2026-10-27 tags: ["XSD","schema","types"] sources: ["https://wiki.egosoft.com/X4%20Foundations%20Wiki/Modding%20Support/","https://www.w3.org/TR/xmlschema11-2/"] --- ## Meaning roomtypeexprlookup: X4 attribute schema type: base types, constraints and value alternatives. An XSD type constrains XML, rather than declaring a Lua return or the payload type of event.param. A valid schema value does not prove a successful game effect. ## Schema structure `libraries/common.xsd` | Property | Value | | --- | --- | | Construction | `union` | | Union members | [`expression`](wiki:schema-expression-b8bc0e4f) | Additional inline union branch: | Property | Value | | --- | --- | | Construction | `restriction` | | Base type | [`xs:string`](wiki:schema-xs-string-d5652e9b) | | Constraint | Value | | --- | --- | | `enumeration` | `roomtype.bar` | | `enumeration` | `roomtype.casino` | | `enumeration` | `roomtype.corridor` | | `enumeration` | `roomtype.crewquarters` | | `enumeration` | `roomtype.embassy` | | `enumeration` | `roomtype.factionrep` | | `enumeration` | `roomtype.generatorroom` | | `enumeration` | `roomtype.infrastructure` | | `enumeration` | `roomtype.intelligenceoffice` | | `enumeration` | `roomtype.livingroom` | | `enumeration` | `roomtype.manager` | | `enumeration` | `roomtype.office` | | `enumeration` | `roomtype.playeroffice` | | `enumeration` | `roomtype.prison` | | `enumeration` | `roomtype.security` | | `enumeration` | `roomtype.serverroom` | | `enumeration` | `roomtype.serviceroom` | | `enumeration` | `roomtype.trafficcontrol` | | `enumeration` | `roomtype.warroom` | restriction narrows a base type; union accepts one of its branches; list describes whitespace-separated items. Enumeration values in one restriction are alternatives. Pattern syntax is XML Schema regex, not Lua patterns or JavaScript RegExp. Constraints inherited from the base type still apply. ## Example and result Use the attribute pages below for contextual examples. A generic executable example is not inferred from a type name alone. ## Used by | Element | Attribute | Schema | | --- | --- | --- | | [`create_dynamic_interior`](wiki:api-md-create-dynamic-interior-213a9f89) | `roomtype` | `libraries/common.xsd` | | [`find_object_component`](wiki:api-md-find-object-component-4060ecbe) | `roomtype` | `libraries/common.xsd` | | [`find_room`](wiki:api-md-find-room-37666450) | `roomtype` | `libraries/common.xsd` | | [`match_content`](wiki:api-md-match-content-247d1aba) | `roomtype` | `libraries/common.xsd` | [All schema types](wiki:schema-types) ยท [Lua / MD value types](wiki:types)