Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
To get started is to visit linuxgsm.com and pick a server to install. Follow the simple step-by-step guide to install your game server on Linux.
Once the installation is complete a working game server will be available. Use the various LinuxGSM commands available to manage the game server.
Read through this documentation to ensure you understand how to configure your game server.
The configuration section will help you understand how to configure both LinuxGSM and the game server.
The command-line tool for quick, simple deployment and management of Linux dedicated game servers.
User docs: docs.linuxgsm.com
Dev Docs: dev-docs.linuxgsm.com
Welcome to the LinuxGSM documentation covering various topics related to the project.
Contributions to this documentation are welcome and can be submitted via GitHub.

The debug command is used to start your server directly in your current terminal (outside of (tmux) and should only be used for diagnosing issues. If a game server is already running in the background debug will stop it to start a debug session.
Standard: ./gameserver debug
Short: ./gameserver d
To exit debug mode use CTRL+c
The force-update command bypasses the update check and runs the SteamCMD update regardless of update availability. This will run the SteamCMD update and restart the game server.
Force update is a useful feature for admins that restart their server daily. It allows LinuxGSM to check for updates while restarting the server.
Standard: ./gameserver force-update
Short: ./gameserver fu
7 Days to Die uses telnet to admin the server. This is enabled by default with no password however will only listen on localhost.
LinuxGSM provides an easy way to start, stop and restart your game server. LinuxGSM knows the location of the server binaries and inserts the start parameters to allow the server to start. LinuxGSM will also run various checks to prevent issues and apply any required server fixes to get the game server running.
Will start the server in a session allowing the server to run in the background.
./gameserver start
Stop will attempt a of a game server. Failing this stop will kill the tmux session.
./gameserver stop
If stoponlyifnoplayers setting is enabled LinuxGSM will only stop the server if it is empty and prevent it from stopping otherwise. This feature only works with game servers that can use gamedig.
Will simply stop, and then start the server.
./gameserver restart
The console command allows access the output of the game server executable. Depending on which server you are running it allows you to see the current activity of the game server, check errors in real time, and input commands.
Run the following command to access console:
Standard: ./gameserver console
Short: ./gameserver c
Answer y at the prompt.
To exit the console: Press CTRL + b, then, press d
Take your time as this can be confusing at first.
Pressing CTRL+c while in console will kill the session, stopping the game server.
The validate command will check the server files to make sure they match the SteamCMD repository. This command is useful if game server files are deleted, corrupted or SteamCMD is failing to update.
Validation will overwrite any files that have been changed. This may cause issues with customised servers. For example, if you customise mapcycle.txt, this file will be overwritten to the server default. Any files that are not part of the default installation will not be affected. It is recommended you use this command only on initial installation and if there are server issues.
Standard: ./gameserver validate
Short: ./gameserver v
Minecraft: Java Edition required Java 16
Minecraft java edition splits up its release in two ways. Firstly a branch is either classed as a release or a snapshot. A release is a stable version of the game whereas a snapshot is still under development
With LinuxGSM you can specify a specific release/snapshot or the latest release/snapshot. By default, LinuxGSM will use the latest release.
An MTA server comes in two parts. MTA itself and then the resources you install. There is the option to install the default MTA resources to your server within LinuxGSM on install or using the ./mtaserver install-default-resources option. There are many resources available so it is recommended that you take a look at the MTA community resources page
Resources are a key part of Multi Theft Auto. A resource is essentially a directory that contains a collection of files - including essential script and content files, plus a meta file that describes how the resource should be loaded - and runs on a Multi Theft Auto dedicated server.
A resource can be seen as being partly equivalent to a program running in an operating system - it can be started and stopped, and multiple resources can run at once. Its worth remember though, that unlike programs on an operating system, there is no multi-tasking between resources. Resources generally contain content and Lua scripts for game modes, user interfaces and other tasks affecting the players that are connected to the dedicated server on which the resources are running.
For a collection of user created resources, head over to our web page which serves as a place for hosting our community's resources.
The skeleton command created a mirror of the directory structure of a game server. This allows you to create a skeleton directory of custom files, configs, maps etc.
Standard: ./gameserver skeleton
Short: ./gameserver sk
The skeleton directory is created in skel.
Skeleton can be used alongside version control software like or backed up to save custom configurations for a game server. If a change is added to your git repository/backup it is possible to pull/copy the updates to your game server. If you want to re-deploy a game server you can create a fresh installation and pull/copy in the custom changes over the top of the fresh install.
is a VoIP app that allows other applications to send messages via a webhook. This functionality is used to allow users to recieve alerts about LinuxGSM.
A webhook is required to post alerts to a Discord text channel
Right-click on the text channel you want to use and select Edit channel.
Select Webhooks > Create Webhook
Name: LinuxGSM
Icon:
Copy the Webhook URL
Turn on discord alert and enter the URL in to the . (~/lgsm/config-lgsm/<gameserver>/common.cfg)
stoponlyifnoplayers="off"/home/gameserver/skelHow LinuxGSM handles IP addresses
By default, LinuxGSM will use the 0.0.0.0 meta-address. This behavior will allow the game server to bind to all interfaces and allow LinuxGSM to query all available IP addresses. If there are multiple IP addresses available, details will display 0.0.0.0.
Internet IP: LinuxGSM will try to gather the server's internet IP address to be shown in details.
Specific IP: If a specific IP address needs to be set it can be done using the ip setting in the LinuxGSM or game server config files. Depending upon the game server this will allow it to bind to a specific IP address.
Display IP: If you want to change the IP address displayed in alerts you can use the displayip.
monitor checks the game server to ensure the server functioning. First checking the game server process is running then querying the game server to check the game server is responding. monitor is designed to be an automated command that frequently checks the game server, rebooting and alerting if required.
Standard: ./gameserver monitor
Short: ./gameserver m
Monitor first checks that the server process or tmux session is running. If it is, it will then attempt to query the server using gamedig or query_gsquery.py. Should this fail to query it will attempt to query every 15 seconds over 60 second period. Should this fail the server will be rebooted and an alert sent out.
During server start, map change, workshop downloads, the server is unable to answer queries.The monitor will wait for 60 seconds as it is common for servers to stop responding to queries during a map change. This wait prevents monitor from rebooting a server that does not require it.
Monitor is designed to be and automated task, using cronjobs to allow a game server to be frequently checked.
As a reminder, you can edit your cronjobs, typing :
crontab -eUse these cron examples to setup automated monitoring.
A user based cronjob to monitor your server every 5 minutes .
*/5 * * * * /home/username/gameserver monitor > /dev/null 2>&1A root user based cronjob to monitor your server every 5 minutes .
*/5 * * * * su - username -c '/home/username/gameserver monitor' > /dev/null 2>&1To learn more about automation, see Cronjobs.
To be notified when a server fails alert notifications can be setup , see alerts.
Game Servers do not respond to queries while the server is booting. Query delay prevents monitor from giving a false positive should it query while the server is booting. A timed delay prevents monitor from using query at all during a set time (normally either 1 or 5 minutes) after start, giving the server time to boot and become ready to accept queries. Query delay timer can be adjusted using the querydelay setting.
## Monitor | https://docs.linuxgsm.com/commands/monitor
# Query delay time
querydelay="1"Starting and stopping the game server activates and deactivates monitor. This prevents the server being manually stopped only to be started again by monitor.
LinuxGSM comes with a game server check-update command. All SteamCMD games servers are supported, as well as some other servers such as Teamspeak, Minecraft, Mumble & Factorio.
Standard: ./gameserver check-update
Short: ./gameserver cu
Unlike the update command check-update will check for any available updates and take no action if no update is available. If there is an update it will send an alert.
A cronjob can be set to run check-update at any given time.
Ensure that an alert is configured so you are alerted to any updates
To edit cronjobs, type:
crontab -e
A cronjob can be run as the gameserver user or as root, this choice is down to personal preference. Remember to amend the examples to match a specific game server.
Here is an example of a user-based cronjob to check for an update once an hour.
0 * * * * /home/username/gameserver check-update > /dev/null 2>&1Here is an example of a root-based cronjob to check for an update once an hour.
0 * * * * su - username -c '/home/username/gameserver update' > /dev/null 2>&1crontab.guru is a great resource to generate cronjobs.
The details command allows access to various useful information about the game server. Details are gathered from configs, parameters and server queries.
Standard: ./gameserver details
Short: ./gameserver dt
postdetails (using hastebin) is used to share server details, to help with support, while hiding sensitive information:
Standard: ./gameserver postdetails
Short: ./gameserver pd
Various relevant details are provided including:
Distro Details
Performance
Disk usage
Server Name
Server IP
Server Ports
Passwords
Config File
Backups
Server parameters
Distro Details
===============================================================================================================================================================
Distro: Debian 7.7
Arch: x86_64
Kernel: 2.6.32-042stab102.9
Hostname: vps86887.ovh.net
tmux: tmux 1.6
GLIBC: 2.13
Performance
===============================================================================================================================================================
Uptime: 0d, 17h, 36m
Avg Load: 0.00, 0.02, 0.00
Mem: total used free
Physical: 1.0G 1.0G 17M
Swap: 128M 25M 102M
Disk Usage
===============================================================================================================================================================
Disk available: 5.4G
Serverfiles: 1.6G
Backups: 4.8M
Fistful of Frags Server Details
===============================================================================================================================================================
Server name: Fistful of Frags Server
Server IP: 192.168.1.1:27015
RCON password: rconpassword
Status: OFFLINE
Service name: fof-server
User: fofserver
Location: /home/fofserver
Config file: /home/fofserver/serverfiles/fof/cfg/fof-server.cfg
Backups
===============================================================================================================================================================
No. of backups: 1
Latest backup:
date: Fri Jan 23 15:54:52 CET 2015
file: /home/fofserver/backups/fof-server-2015-01-23-155447.tar.gz
size: 4.8M
Command-line Parameters
===============================================================================================================================================================
./srcds_run -game fof -strictportbind -ip 192.168.1.1 -port 27015 +clientport 27005 +tv_port 27020 +map fof_depot +servercfgfile fof-server.cfg -maxplayers 16
Ports
===============================================================================================================================================================
Change ports by editing the command-line
parameters in ./fofserver.
Useful port diagnostic command:
netstat -atunp | grep srcds_linux
DESCRIPTION DIRECTION PORT PROTOCOL
> Game/RCON INBOUND 27015 tcp/udpLogs are an important part of monitoring a server as it allows you to know what has been happening. LinuxGSM has a log directory that allows you to track the gameserver, console and LinuxGSM itself.
If your user is gameserver, then LinuxGSM logs are located in the following directory:
/home/gameserver/log
This "log" directory contains two other directories:
script, logs LinuxGSM script activity
console, logs gameserver [console](../commands/console.md) output
game, is a redirect to the game server log files if available.
Settings
You can alter these settings to change LinuxGSM behavior:
logdays="7" # How long logs are kept
consolelogging="on" # Turning this to off will disable console loggingNote: logdays="0" means logs will be removed if older than 24h.
LinuxGSM clears outdated logs according to logdays variable setting. This will affect script and console logs, as well as common game logs.
LinuxGSM also clears logs from common locations to prevent them from using gigabytes of disk space, including:
${systemdir}/logs
${systemdir}/*/logs
${systemdir}/addons/sourcemod/logs
${systemdir}/data/darkrp_logs
${systemdir}/data/ulx_logs
Note: ${systemdir} designates the location of your game server installation
Allows the selection of specific builds of a game server in SteamCMD
Game developers sometimes make available several builds of the game server on Steam, often to allow beta testing of new releases. These builds are made available via branches (betas) and can be entered in the LinuxGSM Config.
A list of all available branches for a game server are listed on SteamDB under the appid depots.
The default SteamCMD branch is public. However, it is possible to use other builds by entering a branch name in the branch setting in your LinuxGSM config.
# Steam App Branch Select
# Example: "latest_experimental"
branch="staging"Some branches require a password. This can be done by entering a password in thebetapassword setting in your LinuxGSM config.
betapassword="branchpassword"LinuxGSM allows alerts to be received using various methods, should the game server require your attention.
Alert settings can be changed in LinuxGSM config
More info allows you to get further info about an alert using hastebin.com. Many alerts only give basic info, unlike email. More info displays the same output as email in a link within a basic alert.
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"The IP address you want to be displayed in alerts.
By default, the LinuxGSM alert will display the external internet facing IP. Failing this will fall back to the server IP. If the IP is incorrect it can be manually set using displayip="".
# Display IP | https://docs.linuxgsm.com/alerts#display-ip
displayip=""Make apache2 webserver case insensitive with apache2 mod_speling
Some games require FastDL to be case insensitive, apache2 is case sensitive by default. Enabling apache2 mod_speling ignores case sensitivity on a LAMP stack. This guide applies to debian and ubuntu. At the bottom of this page are external guides that include CentOS/Fedora. This workaround will not work on shared webhosting where editing apache2 files is not available.
Enable mod_speling:
a2enmod spelingRestart apache:
service apache2 restartApache needs to be told which directories mod_speling is applied to, open the webserver's .conf file located inside /etc/apache2/sites-available/ and set AllowOverride to All.