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...
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
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 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 tmux session, stopping the game server.
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 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
LinuxGSM comes with an game server update
command. All games servers are supported, as well as some other servers such as Teamspeak, Minecraft, Mumble & Factorio.
Standard: ./gameserver update
Short: ./gameserver u
Update will check for any available update, taking no action if no update is available. If there is an update it will apply the update, restarting the server if already running.
It is possible to update a game server on start, by editing the LinuxGSM config.
updateonstart="on"
This will take longer for the game server to start but can be useful for servers that are kept offline most of the time.
A can be set to run update
at any given time.
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.
Here is an example of a root based cronjob to check for an update once an hour.
It is recommended to check for updates once per hour.
is a great resource to generate cronjobs.
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.
stoponlyifnoplayers="off"
0 * * * * /home/username/gameserver update > /dev/null 2>&1
0 * * * * su - username -c '/home/username/gameserver update' > /dev/null 2>&1
/home/gameserver/skel
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>&1
Here 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>&1
crontab.guru is a great resource to generate cronjobs.
TODO
LinuxGSM allows for the simple installation of game servers. The installer is designed to get a game server to a working state allowing the game server to be started right away.
The installer will:
Create required directories
Install/advise on required dependencies
Download the game server files
Load config files
Apply any fixes required to get the game server working
The standard installation is the default installation method that requires user interaction.
Standard: ./gameserver install
Short: ./gameserver i
Auto install is useful for automatic server deployments as no user prompt is required.
Standard: ./gameserver auto-install
Short: ./gameserver ai
Make your script executable:
chmod +x gameserver
Run the install command: ./gameserver install
or ./gameserver auto-install
to bypass any prompts.
Follow on-screen instructions.
Installation of dependencies requires either sudo
or root access. LinuxGSM can automatically install dependencies if the user has sudo
or is root
.
If dependencies are not installed the server may not start.
As root
run ./gameserver install
and the installer will complete a dependency installation only, ignoring the other installation steps.
If a user has sudo access the installer will prompt to enter the sudo password to automatically install dependencies. If sudo is not available the installer will advise on the command required to install dependencies.
LinuxGSM may fail to run if the correct permissions have not been used. This fault commonly occurs if an admin has not correctly followed installation instructions found on
Common faults include:
Trying to install the LinuxGSM as root.
Trying to install LinuxGSM in a directory not owned by the correct user.
Not making gameserver
file executable using the chmod +x
command.
If trying to run as root
LinuxGSM will fail to run. See .
To check if the correct user owns the directory or gameserver
file, use ls -al
Example output
If some files/directories are not owned by the correct user, use the chown
command. Login as root
and use the following command, changing the details to match your server
chown -R username:username /home/gameserver
chown -R csgoserver:csgoserver /home/csgoserver
If the connection to the Steam servers is poor (quite common), the SteamCMD download can fail. This is why LinuxGSM will always ask you if the installation was successful allowing admins to retry the download should it fail.
If there are still issues downloading try the option.
./gameserver validate
If downloading is still failing it may be worth contacting your server provider to confirm Steam servers are not being blocked for any reason.
It is also worth searching the internet for issues relating to the error message you receive.
Some game servers take up a significant amount of disk space. If you are having issues downloading check that your server has enough space available.
To check your available storage, use:
df -h
or ./gameserver details
Make sure you can ping
using a hostname.
Should this fail, your server may not have DNS lookup correctly configured.
systemd is the default init system for most modern distros.
You need to create a service file in /etc/systemd/system/
Example ts3server.service
Replace the user and paths to fit your setup.
You need to reload the systemd-daemon once to make it aware of the new service file by systemctl daemon-reload
Now you can do
The crontab will allow you to create that allow you to run a command on a set time or on boot. The below example uses @reboot
that will run a command on boot.
monitor
commandAfter a reboot, any game server that has a "started" status will be started on boot. Servers that were manually stopped will remain stopped.
To learn more, see and .
start
commandStart a game server unconditionally, even if you manually stop a server.
To learn more, see
rc.local
rc.local is another method to run scripts on boot. Any commands added to the rc.local file will run on boot.
LinuxGSM cannot always provide support for specific game servers. However, there are various support forums available for specific game server support that may be useful. Below is a list of useful links support forums:
Many game servers require start parameters, these are command-line options that are set with the server executable when the server starts.
Using over parameters is preferred, however, sometimes this is not an option. When this is the case only parameters or a mixture of game server config and parameters will be used.
Parameters being used by the game server can be found in ./gameserver details
. To alter them, you will need to edit .
LinuxGSM often uses predefined parameters that can be edited. This makes adjusting common settings easier and allows them to be displayed in ./gameserver details
.
Additional command-line parameters can be added to the startparameters
setting.
Anything added will be appended to the server executable binary.
7 Days to Die
Gold Source Servers
FastDL (Fast Download) allows the client to download custom server content (maps, materials, models, particles, sounds, fonts, images) from a web server.
It is used to offload content downloads to a web server instead of relying on source servers (SRCDS) that only allows 20KBps downloads to clients. Content on the web server can be compressed to further speed up the download process. This means that custom content downloads much faster.
Valve now use steam workshop for most custom content however FastDL is still required in some cases.
LinuxGSM FastDL automatically creates the web directories and compresses the content for you.
All Source engine servers
Standard: ./gameserver fastdl
Short: ./gameserver fd
Maps (.bsp)
Materials (.vtf, .vmt, .png, .svg)
Models (.vtx, .vvd, .mdl, .phy)
Particles (.pcf)
Sounds (.wav, .mp3, .ogg)
Fonts (.otf, .ttf)
Images (.png, .svg)
Web server on the game server (Apache/Nginx).
or
Access to a remote web server.
Run the FastDL command on your main LinuxGSM script. This will create a new directory /home/gameserver/public_html/fastdl
./gameserver fastdl
If Apache2 is being used a virtual host pointing to the newly created public_html
directory can be used.
Tip: Apache2 mod "userdir" is useful if the Linux server is hosting , as it creates a url for the current user http://yourwebsite.ltd/~username
.
Here is an example of setting up Apache2 using a subdomain.
This works for Apache 2.4+ and when using a domain name. If you have got a different configuration, refer to the Apache2 documentation.
Firstly make sure your subdomain redirects to your game server and that Apache2 is correctly installed and started. Create a virtual host in order to be able to host a website :
nano /etc/apache2/sites-available/yourvirtualhost.com.conf
See the example below and edit the relevent details.
Enable your website by restarting Apache2
Test the domain, to make sure it is working http://subdomain.domain.com/fastdl
The new url will need to be added to the
nano serverfiles/gamename/cfg/game-server.cfg
Make sure you have this:
If the custom server content is updated or removed re running the fastdl command is required to ensure that the webserver is in sync with the game server.
Note for addons developers : Note that clients won't download a file that they already downloaded unless you rename it.
Custom server content can be compressed using bzip2 which is supported by source games, allowing clients downloads will be faster. It is a must-have if you're hosting large files, as it will save you bandwidth, and speed up downloads for clients. However, using bzip2 on many small files can slow down client loading times.
In order for a client to download files from a FastDL in Garry's Mod, the developer of an addon must put files from the addon into lua code resource.Addfile ( "/path/to/file.ext" )
. However, some addon developers do not do this. In order for clients to download the required files, an lua file needs to be generated for it to work, which is what the lua enforcer feature does. The only downside is that clients may download files that are not required on the server.
drwxrwxr-x 5 nmrihserver nmrihserver 4096 Jul 17 20:25 lgsm
drwxr-xr-x 4 nmrihserver nmrihserver 4096 Aug 27 2015 log
-rwxrwxr-x 1 nmrihserver nmrihserver 3885 Aug 9 23:04 nmrihserver
drwxrwxr-x 8 nmrihserver nmrihserver 4096 Jul 17 20:32 serverfiles
drwxrwxr-x 3 nmrihserver nmrihserver 4096 Jul 17 20:25 .steam
drwxrwxr-x 8 nmrihserver nmrihserver 4096 Aug 19 16:00 Steam
drwxrwxr-x 6 nmrihserver nmrihserver 4096 Aug 19 16:00 steamcmd
ping google.com
[Unit]
Description=LinuxGSM Teamspeak3 Server
After=network-online.target
Wants=network-online.target
[Service]
Type=forking
User=ts3server
WorkingDirectory=/home/ts3server
#Assume that the service is running after main process exits with code 0
RemainAfterExit=yes
ExecStart=/home/ts3server/ts3server start
ExecStop=/home/ts3server/ts3server stop
Restart=no
[Install]
WantedBy=multi-user.target
systemctl start ts3server # Start the server
systemctl stop ts3server # Stop the server
systemctl enable ts3server # Enable start on boot
systemctl disable ts3server # Disable start on boot
@reboot '/home/username/gameserver monitor' > /dev/null 2>&1
crontab -e
@reboot su - username -c '/home/username/gameserver monitor' > /dev/null 2>&1
crontab -e
@reboot su - username -c '/home/username/gameserver start' > /dev/null 2>&1
nano /etc/rc.local
su - username -c '/home/username/gameserver start'
## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
defaultmap="map_name"
gamemode="game_mode"
maxplayers="42"
port="27015"
sourcetvport="27020"
clientport="27005"
Parms variable
Executable
startparameters="-game nmrih"
./srcds_run -game nmrih
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-game nmrih -strictportbind -ip 91.121.72.41 -port 27015 +clientport 27017 +tv_port 27016 +map nmo_broadway +servercfgfile nmrih-server-1.cfg -maxplayers 8"
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName subdomain.domain.com
ServerAlias subdomain.domain.com
DocumentRoot /home/gameserver/public_html
<Directory /home/gameserver/public_html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
a2ensite yourvirtualhost.com.conf
service apache2 reload
sv_downloadurl "http://subdomain.domain.com/fastdl"
sv_allowdownload 1
Many tutorials state that the game disk is required to install a CoD4 server. This is because the server is built into the client. This made it difficult to distribute and create a CoD4 server.
After investigating this issue, it was found that it is possible to run a server with most of the client files removed. This greatly reduces the file size and prevents the client from being used. Because of this LinuxGSM provides a download to only the files required to run the server. Preventing the use of the client, removing the opportunity to use the server to pirate the game.
cod4server
uses CoD4x project for its server, rather than the original, as it fixes various bugs and adds a few features over the vanilla server.
CoD4x has its own update functionality. It will automatically check for updates and does not require LinuxGSM to check for updates.
CoD4x game servers (since version 17.6) require a server token to be listed on the CoD4x master server.
To generate a token visit here.
Once a token is generated add it to the sv_authtoken
cvar in server.cfg
or command-line parameters.
set sv_authtoken "mytokenhere"`
+set sv_authtoken "mytokenhere"
The server then needs to be restarted to allow the game server to be listed.
Mods for Call of Duty 4 have to be manually added to the game server.
To run a mod the servers fs_game
variable must be set correctly. Mods reside in the mods
folder inside fs_homepath
. Example directory tree:
mods/
├── pml220
│ ├── mod.ff
│ ├── pml220.iwd
│ ├── z_c_r.iwd
To start the server with a mod set the fs_game
variable accordingly.
parms="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set dedicated 1 +set net_ip ${ip} +set net_port ${port} +set sv_maxclients ${maxplayers} +exec ${servercfg} +map ${defaultmap} +set fs_game "mods/pml220""
Modded CoD4 servers have the ability to run with user-created maps. To run a server with a custom map, it has to first be placed in the usermaps
directory (if missing simply create it yourself).
├── usermaps
│ ├── mp_nuketown
│ │ ├── mp_nuketown.ff
│ │ ├── mp_nuketown.iwd
│ │ ├── mp_nuketown_load.ff
Typically, maps are prefixed by mp_ following the maps name.
Running custom maps on unmodded servers is not supported, but there is a neat workaround to still load custom maps. First, create a mods folder and some empty folder inside it.
├── mods
│ ├── myemptymod
Now set fs_game
to mods/myemptymod
and you will be able to run custom maps.
Fast download is possible with CoD4 to allow custom maps and mods to be hosted on a webserver.
set sv_allowDownload "1" // allow clients to download gamefiles
set sv_wwwDownload "1" // enable download redirection
set sv_wwwBaseURL "http://domain.tld/cod4fastdl/" // defines url to download from
set sv_wwwDlDisconnected "0" // disconnect clients while downloading
here sv_wwwBaseURL
has to point to a URL served by your web server.
An example directory tree for a served folder may look as below:
cod4fastdl/
├── mods
│ ├── pml220
│ │ ├── mod.ff
│ │ ├── pml220.iwd
│ │ ├── z_c_r.iwd
├── usermaps
│ ├── mp_nuketown
│ │ ├── mp_nuketown.ff
│ │ ├── mp_nuketown.iwd
│ │ ├── mp_nuketown_load.ff
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.
A Linux server's own email solution can be used to receive alerts about LinuxGSM.
LinuxGSM will send an email using the mail
command.
Postfix or equivalent must be setup and correctly configured before sending emails. Failure to correctly configure Postfix and a domain for your server will mean the email alert may be flagged as spam or not arrive at all. Configuring postfix is not covered here, but there are many tutorials online to help.
Mailgun is a paid service with 3 month free trial that can be used as an email relay to reduce the chances of email alerts being blocked as spam.
To enable email alerts you will need to add an email address to the LinuxGSM config.
# Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Email
emailalert="off"
email="[email protected]"
emailfrom=""
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
LinuxGSM supports the installation, updating, and removing of selected mods and add-ons for some games and engines. Zip add-ons are currently the only supported installations.
./gameserver mods-install
./gameserver mi
./gameserver mods-update
./gameserver mu
./gameserver mods-remove
./gameserver mr
(This list was last updated on 2020-11-19)
Metamod
AMX Mod X
Additional Game Specific AMX Mod X addons:
Counter-Strike 1.6
Day of Defeat
Team Fortress Classic
The Specialists
Natural Selection
Metamod: Source
SourceMod
ACF
ACF Missiles
DarkRP
DarkRP Modification
PAC3
UClip
ULib
ULX
UTime
Rust, Hurtworld, 7 Days To Die
Oxide Mod
All available mods are defined in the mods_list.sh.
Mods hosted on github use the latest archive link available. Others are scraped through a mods download mirrors in order to find the latest version.
If some mods are already installed, a list of installed mods shows up. If a user tries to install a mod that is already installed, there will be a warning that any custom files will be overwritten.
A list of available mods is displayed to the user, including the developers website.
After the user selects a mod, the file gets downloaded and extracted to a temporary directory.
A list of the mod files is created at lgsm/mods/modname-files.txt
. This list allows the mod to be removed if required. LinuxGSM developers have whitelisted important customisable files such as mod config files that will not be removed. If there are any important files that have been missed please raise an issue.
Files and directories then get copied to the correct destination.
LinuxGSM updates a file containing a list of installed mods lgsm/mods/installed-mods.txt
.
The list lgsm/mods/installed-mods.txt
is used to identify which mods are installed. If a non-referenced mod is found, the updater will stop with an error.
Three update types are available
OVERWRITE will overwrite all mod files.
NOUPDATE will prevent this mod from being updated. Useful for a framework that is designed to be entirely customized.
RETAIN keeps the whitelisted files and updating everything else.
As there is no easy way to check for mod versions, the update process will update every single installed mod every time the command is run.
The process is pretty similar as the installation, mod gets downloaded, extracted, files get removed. Removed files go to a temp file list, then file list list built and temp file list added to it. Finaly the mod gets copied to destination using cp -Rf
.
If an admin wants to overwrite custom files, then he can either uninstall/reinstall the mod, or just install over it.
A list of installed mods is displayed, user has to pick one to remove.
Any file listed in lgsm/mods/modname-files.txt
gets removed.
The file list gets removed, as well as the entry in installed-mods.txt
.
Any as long as the archive can be found online and the installation consists of extracting an archive to the serverfiles
directory.
If there is a mod you wish to see supported by LinuxGSM please raise a GitHub issue with any relevant info about the mod.
If you wish to create a pull-request yourself for this, please make sure you read the "Developer" section at the bottom right of the wiki.
Usually, editing mods_list.sh should be enough to add mod support. This script contains comments helping you to understand how to use it.
Basically: Add an array variable containing mod info, then add the array to the global array.
Long explanation: The list is based on arrays, used to define all mod properties. You need to make sure that every value is filled up and in the correct order, that mod commands are unique and that multiple choices values are ended with a semicolon (;), otherwise the last value will be ignored.
You might need to add an entry in fn_mod_tidy_files_list
from mods_core.sh
in order to remove lines from mod's file list so that they do not get wrongly removed with the mods-remove command. For further assistance on developing this contact UltimateByte who developed those functions and dgibbs that reworked it should be able to help.
Information for Sven Co-op servers
Official Resources
The discord contains information for Sven Co-op under the information tab including mapping guides, server config information, and angelscript documentation, among other things.
Reminder: Sven Co-op is incompatible with both CentOS and Fedora as libssl.so.1.0.0 is not available
Survival Mode settings, can be set in svenserver.cfg
//Default Survival state (enabled by default) 1=on 2=off
mp_survival_mode
//1=Players can vote to enable/disable survival 2=Players can't vote on this
mp_survival_voteallow
//Number of retries before "next map" vote starts. -1 is infinite, 3 is default
mp_survival_retries
//Minimum number of players needed to start Survival mode
mp_survival_minplayers
The backup
command allows the creation of .tar.gz
archives of a game server. This can be used to transfer a game server to another Linux server, to backup the game server before a risky change, to save the current state of the game server.
Each time a backup runs the whole game server will be backed up, this can take up significant storage space. Consider a backup policy to prevent your Linux server from running out of storage.
Standard: ./gameserver backup
Short: ./gameserver b
Alter these three settings by editing .
Set the maximum number of backups with maxbackups
. If the number of backups exceeds this value, the oldest backup will be removed after a successful backup.
Set the maximum age of a backup using maxbackupdays
. Any backups older than X days will be removed after a successful backup.
Set if the server should be stopped for a backup using stoponbackup
. If the server is running it will be stopped while the backup is running and started again once complete. This is useful to prevent any file changes during compression that could result in a corrupt or failed backup.
Automated backups can be set using . It is recommended that frequently you backup and your retention policy to prevent your server is carefully considered to prevent storage issues.
see
By default backups are saved in the backup
directory.
You can change this using the and the property backupdir
.
Use ./gameserver details
to view information about created backups.
Using the backup feature is not the only way to backup a game server. There are other methods that have more features are are more powerful than the basic LinuxGSM backup feature. Below are are few applications that can be used instead of, or with LinuxGSM backups.
is one of the most common ways to backup. It is a remote sync tool that is created for sending files/directory's to another location. Particularly good for syncing to another server.
Is an incremental backup solution that allows backups to all sorts of different locations including many different cloud storage solutions like BackBlaze B2 and Amazon S3. Once configured it can be a powerful and efficient backup solution.
duplicity-backup.sh is a very useful bash wrapper to help automate duplicity.
is similar to rsync however can easily sync to cloud storage solutions.
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.
There are hundreds in integrations available on allowing you to send alerts in all sorts of different ways to various services and devices. This functionality is used to allow users to recieve alerts about LinuxGSM.
To enable IFTTT you will need to setup a Webhooks integration.
Visit
Login and connect the Webhooks integration
Select Documentation
to get your IFTTT API key.
Paste the API key into .
An event name is a word used to trigger IFTTT event. This word is used when setting up an applet and can be any word you choose.
IFTTT allows 3 different values to be sent using the webhook; Value1
, Value2
and Value3
. LinuxGSM sends different data for each value as listed below.
Value1: Sends the name of the server e.g csgoserver
Value2: Sends an alert subject e.g Alert - csgoserver - Test
Value3: Sends an alert summary message.
Create a New applet
Select the Webhooks
service
Choose Receive a web request
Enter your Event Name
and click Create Trigger
Select an action service.
Give the applet a name and save.
Valheim servers require a server password to start a server. This means it is not possible to connect to a Valheim server unless you know the password.
The Valheim in-game browser can be slow, as a workaround you can directly connect to a server in-game through the Join Game tab by pressing the Join IP button, or by adding a server to your Steam server browser favorites. To access the Steam server list, at the top left of the Steam library window go View > Game Servers > Favorites
, and click the blue +
button. Use ./vhserver details
to list the current query port. The default port is 2457.
Valheim has been previously known to have problems with long server names and special characters, if you are having trouble connecting to a server try making its name shorter or remove special characters.
Add admins to Valheim server:
Symlinks create multiple paths to a file or directory and are useful for saving space or having 1 set of files for multiple installs.
This guide is for pointing multiple directories to the same folder using ln
command. Ln creates hardlinks and softlinks, the -s variable creates softlinks. These can be compared to shortcuts on windows, and are going to be used in this guide.
Example guide using two "one server + one user" installs with Sven Co-op:
Gameserver folder 1: /home/svencoop/serverfiles/svencoop_downloads/
Gameserver folder 2: /home/svencoop2/serverfiles/svencoop_downloads/
Shared folder /home/svencoop_content/svencoop_downloads/
The command to link these would be ln -s /shared_folder/ /gameserver_folder/
ln -s /home/svencoop_maps/svencoop_downloads/ /home/svencoop/serverfiles/
ln -s /home/svencoop_maps/svencoop_downloads/ /home/svencoop2/serverfiles/
Change the game server folder ownership to be under their respective users and you are done.
chown svencoop /home/svencoop/serverfiles/svencoop_downloads
chown svencoop2 /home/svencoop2/serverfiles/svencoop_downloads
The files in the symlinks do not need be owned by the gameserver users and will not be recognized by linuxGSM's ownership check. That being said, make sure they can be read by the gameserver users.
Many admins who have tried, reported a local server does not appear on the LAN tab in the steam browser.
Connect using the console command.
If the port is 27015, then you can just use : connect IP
Add the server to the server browser's favourites. If in-game, then go to the legacy browser if applicable to find it. The syntax to use is the same as for the console connection.
Make sure your server actually works and is reachable on LAN, otherwise what you need is rather first.
As shows, there might be a possible configuration that fixes the issue, but LinuxGSM devs were not able to reproduce it at the time of writing the doc, so this information is purely experimental and you are welcome to update it or post on the issue if you have useful information to share about it.
Edit your using your files
Change ip="0.0.0.0"
to an actual interface IP, for example ip="192.168.1.10"
; this will allow LinuxGSM to and query your server properly.
In the fn_parms
section, add +sv_lan 1
and make sure you replace -ip ${ip}
with -ip 0.0.0.0
Make sure your server main port listens to one of these IP or IP ranges: 4242 ; 26900-26905 ; 27015-27020 ; 27215
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
)
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"
jq
allows LinuxGSM to filter json files to extract specific useful data.
Distro
Version
Ubuntu LTS 16.04
1.4
Ubuntu LTS 18.04
1.5
Debian 8
1.4
Debian 9
1.5
Debian 10
1.5
CentOS 7
1.6
CentOS 8
1.5
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 speling
Restart apache:
service apache2 restart
Apache 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.