Reference
Shipped games
These game definitions ship with NGCP. They are built-in: an upgrade refreshes them when it brings a newer version, unless you have saved your own copy in the panel. “Tested” means the server installed, started and answered the server-browser query from another machine; nobody joined with a game client unless noted.
| Game | Id | Version | Windows | Linux | Steam login |
|---|---|---|---|---|---|
| ArmA 3 | arma3 |
3 | Tested | Tested | Account (owning ArmA 3 for Workshop) |
| Minecraft: Java Edition | minecraft_java |
2 | Not tested yet | Tested | None |
| Valheim | valheim |
1 | Not tested yet | Not tested yet | Anonymous |
| Counter-Strike 2 | cs2 |
1 | Not tested yet | Not tested yet | Anonymous |
| Any Steam dedicated server | steam_server |
1 | Not tested yet | Not tested yet | Your choice per server |
Other games (Ground Branch, Rust, DayZ, Palworld, Satisfactory, Project Zomboid, ARK: Survival Ascended, TeamSpeak 3, Mumble and more) are planned. Until then you can write your own definition.
Any Steam dedicated server (steam_server)
For a game without a ready-made definition: an administrator enters what the game needs, per game server or once in a package.
| Setting | Meaning |
|---|---|
| Steam app id of the dedicated server | The server tool’s own id, for example 896660 for Valheim’s |
| Steam login for the server | anonymous, or account for the Steam account vault |
| Server executable | A path inside the server folder (it differs between Windows and Linux) |
| Start command arguments | May use {port.game}, {port.query}, {port.rcon}, {port.extra}, {slots}, {ip}, {install_dir} and {var.mods} |
| Steam app id of the game | For Workshop mods. Leave empty for games without Steam Workshop |
| Steam login for Workshop mods, folder for Workshop mods | anonymous or account; mods by default |
These settings are for SuperAdmins and Admins only, because a start command runs code; resellers and customers cannot change them. The server still runs as its own isolated account. Four consecutive ports are allocated (game, query, RCON, extra). The status query works when the game answers Steam’s A2S protocol on the query port. There are no config forms: edit the game’s files in the file manager, or write a definition to get them.
ArmA 3 (arma3)
Dedicated server (Steam app 233780) with headless clients and Steam Workshop mods (app 107410).
| Item | Value |
|---|---|
| Slots | 2-256, default 64 |
| Ports (one block) | game (UDP, default 2302), +1 Steam query, +2 Steam, +3 voice (reserved), +4 BattlEye, +5 RCON |
| Variables | Server name, Join password, Admin password (generated), Profile, Mods (-mod), Server mods (-serverMod), Headless clients (0-8), BattlEye RCon password (generated) |
| Processes | The server; 0-8 headless clients that start 15 s later, connect to 127.0.0.1 with the join password and restart with the server |
| Stop | #shutdown over BattlEye RCon, 15 s timeout |
| RCON / query | BattlEye RCon / A2S on the Steam query port |
| Config forms | server.cfg (name, passwords, max players bound to slots, BattlEye, signature checks, voice, file patching, MOTD, headless client addresses, log time stamps), basic.cfg (network tuning), the BattlEye RCon config |
| Kept on reinstall | server.cfg, basic.cfg, profiles/**, mpmissions/**, keys/**, userconfig/** |
| Hidden in the file manager | *.exe, *.dll, *.so, battleye/**, profiles/BattlEye/** |
| Backups | Everything except *.rpt, profile .bak files and mods/** |
Notes:
- Needs a Steam account in the vault; Workshop mods need an account that owns ArmA 3. The first login on a node may ask for a Steam Guard code (Steam).
- Linux nodes need SteamCMD’s 32-bit libraries.
- About 5.3 GB per service before mods. A server with two headless clients needs more than 4 GB of memory.
- Mods are linked into
mods/@<title>(lower case on Linux) and their keys copied tokeys/. - The server runs with
-profiles=profiles; headless clients usehc1,hc2, … - On Windows ArmA writes its console to its own window; the panel console shows the
.rptlogs. - BattlEye copies itself out of
-bepathand reads its RCon config next to the copy:profiles/BattlEye/battleye/BEServer_x64.cfgon Windows,battleye/launch/battleye/beserver_x64.cfgon Linux. The definition writes it there and keeps password and port bound to the panel. Services installed with version 1 of the definition need a reinstall (or the file placed by hand). - Server passwords sit in
server.cfg, readable by anyone with thefilespermission.
Minecraft: Java Edition (minecraft_java)
Paper or the official (Vanilla) server, with its own Java runtime (Eclipse Temurin), downloaded over HTTPS with verified checksums.
| Item | Value |
|---|---|
| Slots | 1-500, default 20 |
| Ports | game (TCP + UDP, default 25565), RCON (TCP, base + 10, default 25575) |
| Variables | I accept the Minecraft EULA, Server software (paper / vanilla), Minecraft version (latest or e.g. 1.21.4), Java version (17 / 21 / 25), Java heap (MiB), Message of the day, RCON password (generated) |
| Stop | stop on the console, 60 s timeout |
| RCON / query | Minecraft RCON / server-list ping |
| Config form | server.properties: MOTD and max players (bound), difficulty, game mode, hardcore, PvP, online mode, whitelist, flight, view and simulation distance, spawn protection, world folder and seed; ports and RCON settings bound to the panel |
| Kept on reinstall | server.properties, ops.json, whitelist.json, banned-*.json, world*/**, plugins/**, config/** |
| Hidden in the file manager | jre/** |
| Backups | Everything except jre/**, logs/**, cache/**, libraries/**, versions/** |
Notes:
- You must accept the Minecraft EULA (https://aka.ms/MinecraftEULA) in the service’s variables;
the definition writes
eula.txtfrom it and the server will not run without it. - Java 25 runs current and older Minecraft versions; choose 17 or 21 only if you need to.
- Update downloads the newest Paper build or Vanilla jar for the configured version and the newest Java runtime of the chosen major version.
Valheim (valheim)
Dedicated server (Steam app 896660), anonymous download.
| Item | Value |
|---|---|
| Slots | 1-10, default 10 |
| Ports | game (UDP, default 2456), +1 query, +2 extra |
| Variables | Server name, World, Password (5+ characters, not part of the name; generated), List in the server browser (1 / 0) |
| Stop | 30 s timeout (no console command) |
| Query | A2S on the query port (no RCON) |
| Kept on reinstall | saves/** |
| Backups | Only saves/** |
Validated, not yet installed on a test node.
Counter-Strike 2 (cs2)
Dedicated server (Steam app 730), anonymous download of about 60 GB.
| Item | Value |
|---|---|
| Slots | 2-64, default 16 |
| Ports | game (TCP + UDP, default 27015), +5 SourceTV |
| Variables | Server name, Start map, Game type, Game mode, Game Server Login Token, RCON password (generated) |
| Stop | quit on the console, 15 s timeout |
| RCON / query | Source RCON on the game port / A2S on the game port |
| Kept on reinstall | game/csgo/cfg/server.cfg, game/csgo/cfg/autoexec.cfg |
| Backups | Only game/csgo/cfg/** |
Notes:
- A public server needs a Game Server Login Token from https://steamcommunity.com/dev/managegameservers.
- On Linux the server may need
steamclient.soin~/.steam/sdk64of the service account. - Validated, not yet installed on a test node.
NGCP test game (ngcp_testgame)
A small fake server built into the agent (ngcp-agent testgame), used for testing NGCP itself:
it prints status lines, echoes console input, can crash on command, and answers A2S and Source
RCON. It is useful to check a new node without downloading a real game.