Skip to main content

Mod configurations

The Configuration tab defines variables that server admins fill when installing your mod.

Each configuration field can include:

  • identifier (key)
  • display title
  • help text
  • required flag
  • default value
  • a condition under Only show when โ€ฆ

Use clear identifiers and meaningful help text so server admins can configure your mod without guesswork.

Validation note:

  • required fields are checked as non-empty values
  • if you provide a default value, admins may not need to enter that field manually
  • a hidden field is never required

Sections and conditionsโ€‹

Choose the type Section to add a heading: the title groups the fields after it up to the next section, the help text appears under the title. A section is not a variable and never reaches your templates. Sections replace the old free-text group name; existing groups were converted into sections.

Fields and sections can carry a condition: pick a field above, an operator and a value, and combine rules with all / any, nested groups and not โ€” for example, show the well coordinates only while Spawn a well is on. A condition on a section hides all of its fields.

A hidden field is null in your templates, even when it has a default, so guard it with |default or an {if}. Conditions can only read fields above them; reordering that would break one is refused, and renaming a field carries its conditions along. A field other conditions depend on cannot be deleted until those conditions are changed.

Every configuration field becomes a Dynamic Variable using its identifier. If your mod has a field with identifier spawn_location, it is available as {$spawn_location} in all file contents and paths when Dynamic Variables is enabled.

Field typesโ€‹

TypeTemplate variable shapeNotes
stringstring|nullSingle-line text; empty โ†’ null
textareastring|nullMulti-line text; identical to string in templates
emailstring|nullEmail address input; identical to string in templates
numberint|float|nullAuto-cast; use |default: 0 for optional fields
booleanbool|nullRender conditionally: {if $flag}true{else}false{/if}
coordinate{x, z, y?, radius?}|nullAccess sub-fields: {$pos.x}, {$pos.z}
generic_selectstring|null or string[]Dropdown from a fixed list; array when multiple: true
faction_selectstring|null or string[]Server's faction IDs
zone_selectstring|null or string[]Server's zone IDs
player_selectstring|null or string[]Server's player usernames
relation_selectstring[]Always an array; never null โ€” empty returns []
discord_channel_selectstring|null or string[]Discord text channel IDs
discord_category_selectstring|null or string[]Discord category IDs
discord_role_selectstring|null or string[]Discord role IDs
discord_guild_selectstring|null or string[]Discord guild IDs
object_listarrayRepeatable list of objects; never null โ€” iterate with {foreach}

For full template usage examples per type, see the Mod Builder agent reference.

The types event_filter and discord_embed are not offered here: they describe which events an action reacts to and what it posts to Discord, which means nothing in a game file. They exist only for actions.