Game catalog

A game in the panel is a Docker image, ports and launch settings. The panel needs no game-specific code: any game with a Docker image can run. The catalog (the Games section) is the one place where a game is described and where you choose which nodes it's installed on. Changes reach all of its nodes by themselves.

Ready-made games

The Starter set at the bottom of the Games page lists the games the panel knows out of the box: Minecraft Java, Counter-Strike 1.6, Counter-Strike 2 and SA-MP. Their image, ports, settings, maps and mods are already configured. Tick the games, pick the nodes and click Add selected — from then on you change them like any other game.

When a panel update changes a template, the game gets a Modified mark and the template an Update from template button. It makes the template's settings the game's new current version, image, settings and environment variables included; your changes to them are replaced. The previous version stays in the history.

A game of your own

Games → Add a game. First the Key (the game's identifier, Latin letters, can't be changed later) and the Name shown in the panel and in the server creation form. Then the game's settings.

Image

A Docker image with a tag, for example itzg/minecraft-server:java21. The server's data is mounted into the container at /data (also the working directory), and the container runs as the server's own user, not root. The image must keep the game and world files in /data and work without root.

Ports

The ports the game listens on inside the container, with the protocol (TCP/UDP). The panel gives each server its external ports from the node's or location's range, with no overlaps. An offset keeps related ports together: 0 for the main one, 1 for RCON. In detail — Game server ports.

Environment variables

Fixed settings of the image, the same for every server of the game: EULA acceptance, a mode. Values are stored encrypted and aren't shown after saving; to change one, click Edit.

Server settings

What differs between servers of one game: slots, map, password, name. Each setting has a key, a type (number, yes/no, choice from a list, string, secret), a default and limits, and an access level — who may change it:

  • admin only — what customers pay for, such as slots;
  • owner — the customer changes it: map, name, join password;
  • hidden — nobody sees it. For a secret the panel generates a value per server, such as the RCON password.

A setting reaches the game through an environment variable or the launch arguments, where {{key}} is replaced with its value:

-dedicated +maxplayers {{slots}} +map {{map}}

Don't write passwords into the launch arguments directly — make them settings of the "secret" type.

A plan can pin setting values (say, slots), and then the customer can't change them. Resources — memory, CPU, disk — are set in plans, not in the game.

Maps and mods

For one-click maps, mods and plugins, choose the Engine (GoldSrc, Source, Source 2, Minecraft Java, Rust/Oxide, BepInEx and others) and set the Game directory — the game's folder inside /data, e.g. cstrike; empty means /data itself. Which games each engine supports and what to fill in is on Games → How to connect the game. The add-on catalog is covered in Maps and mods.

Server polling

The protocol and port the panel uses to ask a running server for its name, map and player count — the In game block on the server page. Typically:

  • Steam / Source (A2S) — CS 1.6, CS2, CS:S, GMod, TF2, Rust, ARK and most Steam servers, usually port 27015;
  • SA-MP / open.mp — port 7777;
  • Minecraft Java — the game port 25565 (TCP).

Which nodes have the game

Where to install when you create the game (later, the Nodes tab on its page) sets the rule:

  • All nodes — on every node, including ones connected later;
  • Location nodes — on the nodes of the chosen locations;
  • Selected nodes — only where you assign it. In the table on the Games page, click "+" in the node's column.

An offline node gets the game when it's back. A node covered by the rule can't be removed by hand — change the rule. A game can be removed from a node only when no servers of that game are left on it.

Versions and rollback

Every save of the settings is a new immutable version, rolled out to the game's nodes. Running servers aren't restarted: the new settings apply when a server's container is recreated.

  • Rollback — on the Versions tab, click Make current on an older version.
  • Pinning — on the Nodes tab a node can be pinned to a specific version, for example to try a new version on one node first.

Games found on nodes

Nodes with an old agent may know games from their local files. Those are listed under Found on nodes, but not in the catalog with an Import button. The form is filled in from the node; enter the environment variable values again — the node reports only their names.

Deleting a game

First remove the game from all nodes and switch the rule to Selected nodes, then delete it on the About the game tab. The game's plans stay, but no server can be created from them.

Before you sell it

Images by different authors lay out files their own way. Create a test server, install a framework and a couple of mods, restart it and check that they loaded. If the folders don't match, fix the Game directory.