Content engines
An engine describes which maps, mods and plugins a game has, where their files go and which server settings to change on install. It's what makes one-click add-ons possible (see Maps and mods). Engines are listed under Content engines.
Usually there's nothing to change here. The built-in engines cover popular games. To give a game maps and mods, just pick its engine: Games → the game → the Maps and mods block → Engine and Game directory. Come here only when a content type is missing or you're adding a game that isn't on the list.
Built-in engines
- GoldSrc — CS 1.6, Half-Life, TFC, DoD, Sven Co-op: maps with resources, AMX Mod X plugins and frameworks / Metamod. Counter-Strike 1.6 — the same plus map import from GameBanana.
- Source — CS:S, TF2, L4D2, DoD:S, HL2DM: maps with resources, SourceMod plugins and frameworks / Metamod:Source. Counter-Strike: Source — plus GameBanana.
- Source 2 — CS2: Metamod:Source 2, CounterStrikeSharp and its plugins. Counter-Strike 2 — plus Steam Workshop maps.
- Minecraft Java — plugins, mods and datapacks, import from Modrinth, and game version and loader checks.
- Minecraft Bedrock — behavior and resource packs, worlds.
- Rust (Oxide/uMod) — Oxide and plugins, import from uMod.
- BepInEx, Valheim, V Rising, Risk of Rain 2 — the BepInEx loader and mods; the last three import from Thunderstore.
- Terraria (tModLoader) and Terraria (TShock) — mods or plugins, and worlds.
- Factorio — mods and saves, import from Factorio Mod Portal.
- Arma 3, DayZ — Steam Workshop mods via the steamcmd installer (see "Installers" in Maps and mods).
- Project Zomboid, Space Engineers, Unturned, Garry's Mod — Steam Workshop mods the server downloads itself.
- SA-MP — gamemodes, filterscripts and plugins.
- No preset — an empty engine: content types are set right in the game's settings.
Which engine to pick for a given game and what to put in Game directory is on Games → Game setup guide.
The engine list
Filters above the list: All, In use (picked by at least one game), Custom and Modified (built-ins you've edited). Each engine shows the games using it, the engine it's based on, the game folder and its content types — with a description of where things go and what changes in configs.
Add a content type
Say CS 1.6 is missing a "Sounds" or "Custom models" type. Rather than editing the built-in engine, make your own based on it:
- Click Create based on on a suitable engine. The new engine takes all of the original's content types.
- Set the Name, Code (Latin letters, digits,
_and-, e.g.rehlds; it can't be changed later) and Description. - Add a type under Custom content types. A template is a handy start: File to folder, Map archive or Steam Workshop. A type with the same code as one in the base engine replaces the inherited one.
- Save and pick the new engine in the game's settings.
An example — sounds as an archive into the game folder:
{
"sound": {
"label": "Sounds",
"delivery": "archive",
"files": [{ "from": "", "to": "" }],
"allowed_ext": [".wav", ".mp3"],
"on_conflict": "keep",
"hot": true
}
}If the type is needed by one game only, there's no need for an engine: the game's settings have Add custom types, which add to or replace the chosen engine's types.
Type fields
The form has a field reference too — What the fields mean.
label— the type's name in the panel ("Maps").delivery— how it's installed:file— a single file;archive— an archive with folders;directory— a whole folder (a world);workshop— by Steam Workshop ID, the server downloads the files;installer— an installer on the node produces the files.target_dir— forfileanddirectory: where to put it, relative to the game folder.files— forarchive:[{from, to}]rules saying which archive folder goes where (""— the root).allowed_ext— allowed file extensions.primary—{dir, ext}, the main file (e.g..bspinmaps). The add-on is named after it.register— config edits on install. They're rolled back when the add-on is removed.hot—trueif the add-on works without a server restart.requires— codes of add-ons that must be installed first (["amxmodx"]).selectable_by_variable— the server setting where the customer picks an installed option (e.g.map).preserve— settings files left alone on update.on_conflict— if the file is already on the server:keep— leave it,overwrite— replace it.provider— an external catalog to import from:modrinth,thunderstore,umod,gamebanana,factorio.installer— forinstaller: the installer's code from Installers.lowercase— forarchiveandinstaller: lowercase file names (Arma mods on Linux).
Values can use {{name}} (map or plugin name), {{file}} (file name), {{slug}} (add-on code) and {{workshop_id}}.
Config edits (register)
ensure_line— add a line to a file, e.g. a map name tomapcycle.txt. Withbeforethe line goes above the given line instead of at the end.set_kv,list_kv— a key or a list inkey=valuefiles (ini, properties).json_set,json_upsert,json_list— a value, an object or a list item in a JSON file.xml_list— an element in a list of an XML file.copy_glob— copy the add-on's files matching a pattern into another folder, e.g.*.bikeykeys intokeysfor Arma.set_var,list_var— don't touch files but change a server setting (e.g. Arma's-mod=@a;@b). The server then restarts with the new value.
An example — an AMX Mod X plugin that needs a line in plugins.ini:
{ "action": "ensure_line", "file": "addons/amxmodx/configs/plugins.ini", "value": "{{file}}" }Compatibility
The Compatibility field is only for games with versions and loaders, like Minecraft. It names the server settings that hold the game version and the loader, e.g. { "game_version_var": "version", "loader_var": "type" }. The panel then warns when a mod doesn't fit the server.
Changes and rollback
Saving an engine applies at once to every game using it. The new rules apply to new add-on installs and updates. Add-ons already installed are removed by the records made when they were installed.
If an engine is built wrong, its card shows The engine doesn't build: with the reason.
- Restore original — roll back your edits to a built-in engine.
- Only your own engine can be deleted, and only if no game uses it and no other engine is based on it. Built-in engines can't be deleted.
Test a new type on a test server: install an add-on, restart the server and make sure it loaded.