--- title: select summary: X4 interface reference. Types are established only within the stated scope. section: reference kind: api status: reference updated: 2026-10-26 tags: ["API","X4"] sources: ["https://wiki.egosoft.com/X4%20Foundations%20Wiki/Modding%20Support/","https://www.lua.org/manual/5.1/manual.html","https://luajit.org/ext_ffi_api.html"] --- ## Return value | Type | Meaning | | --- | --- | | [`none`](wiki:type-results) (MD action) | Types describe the declared interface, not proof of a successful game effect. | [Types and methods](wiki:types) ## XML attributes [How schema types work](wiki:schema-types) `libraries/common.xsd` | Attribute | Schema type | Required | Default / fixed | | --- | --- | --- | --- | | `exact` | [`expression`](wiki:schema-expression-b8bc0e4f) | no | not declared | | `list` | [`expression`](wiki:schema-expression-b8bc0e4f) | no | not declared | | `min` | [`expression`](wiki:schema-expression-b8bc0e4f) | no | not declared | | `max` | [`expression`](wiki:schema-expression-b8bc0e4f) | no | not declared | | `profile` | [`profilelookup`](wiki:schema-profilelookup-a6f1cc04) | no | not declared | | `scale` | [`inline:select@scale`](wiki:schema-inline-select-scale-1dbd63c3) | no | not declared | | `seed` | [`fixedrandomseed`](wiki:schema-fixedrandomseed-6fa38dae) | no | not declared | | `autoadvanceseed` | [`autoadvancerandomseed`](wiki:schema-autoadvancerandomseed-1fb31fa3) | no | not declared | | `weight` | [`selectionweight`](wiki:schema-selectionweight-20be3b34) | no | not declared | | `comment` | [`comment`](wiki:schema-comment-c44bb2fd) | no | not declared | `libraries/common.xsd` | Attribute | Schema type | Required | Default / fixed | | --- | --- | --- | --- | | `faction` | [`factionexprlookup`](wiki:schema-factionexprlookup-6ea384ee) | no | not declared | | `tags` | [`expression`](wiki:schema-expression-b8bc0e4f) | no | not declared | | `size` | [`shipsizeclasslookup`](wiki:schema-shipsizeclasslookup-984aa90e) | no | not declared | | `required` | [`boolean`](wiki:schema-boolean-bf84d3d6) | no | not declared | | `comment` | [`comment`](wiki:schema-comment-c44bb2fd) | no | not declared | `libraries/common.xsd` | Attribute | Schema type | Required | Default / fixed | | --- | --- | --- | --- | | `faction` | [`factionexprlookup`](wiki:schema-factionexprlookup-6ea384ee) | no | not declared | | `tags` | [`expression`](wiki:schema-expression-b8bc0e4f) | no | not declared | | `race` | [`raceexprlookup`](wiki:schema-raceexprlookup-30c0f900) | no | not declared | | `required` | [`boolean`](wiki:schema-boolean-bf84d3d6) | no | not declared | | `comment` | [`comment`](wiki:schema-comment-c44bb2fd) | no | not declared | `libraries/common.xsd` | Attribute | Schema type | Required | Default / fixed | | --- | --- | --- | --- | | `faction` | [`factionexprlookup`](wiki:schema-factionexprlookup-6ea384ee) | no | not declared | | `race` | [`raceexprlookup`](wiki:schema-raceexprlookup-30c0f900) | no | not declared | | `tags` | [`expression`](wiki:schema-expression-b8bc0e4f) | no | not declared | | `ware` | [`expression`](wiki:schema-expression-b8bc0e4f) | no | not declared | | `required` | [`boolean`](wiki:schema-boolean-bf84d3d6) | no | not declared | | `comment` | [`comment`](wiki:schema-comment-c44bb2fd) | no | not declared | `libraries/drops.xsd` | Attribute | Schema type | Required | Default / fixed | | --- | --- | --- | --- | | `weight` | [`selectionweight`](wiki:schema-selectionweight-20be3b34) | no | not declared | `libraries/drops.xsd` | Attribute | Schema type | Required | Default / fixed | | --- | --- | --- | --- | | `macro` | [`namestring`](wiki:schema-namestring-3646b03f) | yes | not declared | | `min` | [`xs:nonNegativeInteger`](wiki:schema-xs-nonnegativeinteger-bbdb0370) | no | not declared | | `max` | [`xs:positiveInteger`](wiki:schema-xs-positiveinteger-0be8dd28) | no | not declared | | `exact` | [`xs:positiveInteger`](wiki:schema-xs-positiveinteger-0be8dd28) | no | not declared | | `weight` | [`selectionweight`](wiki:schema-selectionweight-20be3b34) | no | not declared | `libraries/drops.xsd` | Attribute | Schema type | Required | Default / fixed | | --- | --- | --- | --- | | `timeline` | [`namestring`](wiki:schema-namestring-3646b03f) | no | not declared | | `audiolog` | [`namestring`](wiki:schema-namestring-3646b03f) | no | not declared | | `weight` | [`selectionweight`](wiki:schema-selectionweight-20be3b34) | no | not declared | `libraries/effects.xsd` | Attribute | Schema type | Required | Default / fixed | | --- | --- | --- | --- | `libraries/effects.xsd` | Attribute | Schema type | Required | Default / fixed | | --- | --- | --- | --- | | `selection` | [`selectionlookup`](wiki:schema-selectionlookup-e9c5b811) | no | not declared | `libraries/objectspawnrules.xsd` | Attribute | Schema type | Required | Default / fixed | | --- | --- | --- | --- | | `macro` | [`objectmacro`](wiki:schema-objectmacro-de1b586c) | no | not declared | | `drop` | [`drop`](wiki:schema-drop-d90ee9cc) | no | not declared | | `weight` | [`xs:nonNegativeInteger`](wiki:schema-xs-nonnegativeinteger-bbdb0370) | no | not declared | | `cooldown` | [`xs:float`](wiki:schema-xs-float-046ac063) | no | not declared | `libraries/regionobjectgroups.xsd` | Attribute | Schema type | Required | Default / fixed | | --- | --- | --- | --- | | `macro` | `unknown` | yes | not declared | | `weight` | `unknown` | no | not declared | `libraries/sound_library.xsd` | Attribute | Schema type | Required | Default / fixed | | --- | --- | --- | --- | | `start` | `unknown` | no | not declared | | `loop` | `unknown` | no | not declared | | `end` | `unknown` | no | not declared | | `startduration` | `unknown` | no | not declared | | `loopduration` | `unknown` | no | not declared | | `endduration` | `unknown` | no | not declared | | `weight` | [`xs:integer`](wiki:schema-xs-integer-5c99925f) | no | not declared | | `index` | [`xs:integer`](wiki:schema-xs-integer-5c99925f) | no | not declared | An MD action can write to a named variable or change the world. This is not a Lua return value. The output variable depends on the action and its attributes. ## Example and context See [language basics](wiki:x4-code-basics), [types and methods](wiki:types) and [Lua / MD events](wiki:md-lua-bridge). Examples there are independent learning examples. No project source files or private implementation fragments are distributed with this reference.