Adding a new Game Server
Adding a new game server is one of the most common things developers do. This guide will help you add a new game server to LinuxGSM.
replace gameserver with the name of the new server e.g rustserver
Create new _default.cfg config file
Firstly create a new _default.cfg
file in lgsm/config-default/config-lgsm/gameserver
. An existing _default.cfg file can be used as a template.
Update all the variables in the new _default.cfg
file to fit the new server.
Some common variables that will need updating:
Add
## SteamCMD Login
section only if required.startparameters
are any parameters the executable requires to run the game server.appid
used to download a game server from Steam. Remove if not using steam.steammaster
used if the game servers are listed on the Steam master servers.stopmode
defines how a server can safely exit.querymode
defines the type of query monitor that can be used to check the server is responding.console type highlights to users if the console outputs and is interactive.
Game Server Details
gamename
,engine
,glibc
.Various directory and config variables.
Add the new server to serverlist.csv
Add the new server details to serverlist.csv
as well as add any dependency requirements to all the distro csv files found in lgsm/data
directory.
Add any fixes to a fix file
Some game servers require alterations before they can start common examples include:
copying library files to serverfiles
symlinking files
creating directories
adding a directory to
LD_LIBRARY_PATH
If this is required a fix module will need to be created.
Create a new module called
fix_[shortname].sh
(use an existing example as guidance)Add the required fixes to the module
Add the module to
fix.sh
Add the fix to
core_modules.sh
list
Server Querying
Game servers can often be queried to check the server is running and return useful info. LinuxGSM uses gsquery.py to complete simple pings and gamedig to get detailed info returned in json format.
Most game servers use the valve protocol for allowing queries, however, others are available. Look for any developer documentation to try and find out if querying is supported.
Use the query-raw
command to assist in testing the querying of the new game server.
Stop Mode
Game servers will be able to gracefully exit using various methods. Figure out the method the new game server uses. See stop mode.
Glibc Version
Most game servers require a minimum glibc version. Use the detect-glibc
command to find out the minimum glibc version required.
Details
Various game server info will need to be parsed from game server configs or variables. Use the info_*.sh modules to add this info.
Custom Updater
Not all game servers use SteamCMD. If this is the case a custom update module will need to be created. There are a number of examples in the code that can be used as a baseline.
Custom Commands
Some game servers may require bespoke commands to complete tasks. Examples of this include Teamspeak 3 and Unreal Tournament 2004. Take a look at the core_getopts.sh
module for examples of how to add commands.
Last updated