NGCP Game server control panel
Documentation
Contents

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 to keys/.
  • The server runs with -profiles=profiles; headless clients use hc1, hc2, …
  • On Windows ArmA writes its console to its own window; the panel console shows the .rpt logs.
  • BattlEye copies itself out of -bepath and reads its RCon config next to the copy: profiles/BattlEye/battleye/BEServer_x64.cfg on Windows, battleye/launch/battleye/beserver_x64.cfg on 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 the files permission.

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.txt from 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:

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.