
Garry's Mod Server Setup: DarkRP, Workshop and FastDL
Set up a Garry's Mod server on a Linux VDS. SteamCMD installation, server.cfg configuration, Workshop collections, DarkRP and fast content downloads with FastDL.
Garry’s Mod Server Setup
Setting up a Garry’s Mod server is easy. What makes the server actually usable is the right Workshop configuration and FastDL. This guide covers the install and how to cut down the time players spend on their first connection.
1. Preparing the System
sudo apt update && sudo apt upgrade -y
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6 curl tar
sudo useradd -m -s /bin/bash gmod
sudo su - gmod2. Server Files
The App ID for the Garry’s Mod dedicated server is 4020:
mkdir -p ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
./steamcmd.sh +force_install_dir ~/gmod-server +login anonymous +app_update 4020 validate +quit3. server.cfg
The garrysmod/cfg/server.cfg file:
hostname "Your Server Name"
rcon_password "STRONG_PASSWORD"
sv_password ""
sv_lan 0
sv_region 255
sv_setsteamaccount "GSLT_TOKEN"
sbox_noclip 0
sbox_godmode 0
You get the GSLT token from steamcommunity.com/dev/managegameservers using App ID 4000.
4. Starting the Server
cd ~/gmod-server
./srcds_run -game garrysmod -console -port 27015 \
+maxplayers 32 +gamemode sandbox +map gm_construct \
+host_workshop_collection COLLECTION_IDhost_workshop_collection is the ID of the collection you created on the Steam Workshop, and the server pulls all of its addons from there.
5. Installing DarkRP
DarkRP goes into the garrysmod/gamemodes/darkrp directory and is named as the gamemode on the launch line:
+gamemode darkrp +map rp_downtown_v4c_v2
⚠️ DarkRP setups usually pull in a long list of extra addons. Every addon affects server tick rate, so make a habit of measuring performance after each one you add.
6. FastDL: Shortening the First Connection
By default, players download content slowly through Steam. With FastDL you serve it from your own web server instead:
sudo apt install -y nginx
sudo mkdir -p /var/www/fastdl/garrysmodThen add the following to server.cfg:
sv_downloadurl "http://SERVER_IP/fastdl/garrysmod"
sv_allowdownload 1
sv_allowupload 0
Compressing the content as .bz2 before publishing it drops download times noticeably.
7. Ports
| Port | Protocol | Purpose |
|---|---|---|
| 27015 | UDP/TCP | Game and RCON |
| 80 | TCP | FastDL (nginx) |
sudo ufw allow 27015
sudo ufw allow 80/tcp8. Performance Tips
- Add addons one at a time and measure tick rate after each addition
- Remove unused addons from the collection, because each one costs both memory and download time
- If server tick rate is low, profile your Lua first and look at hardware second
- If you plan to run multiple gamemodes, define a separate port and a separate service for each server
Conclusion
Two things decide the player experience on a Garry’s Mod server: server tick rate, and how long content takes to download on the first connection. The first is solved by the core speed of your game server package, the second by FastDL.
👉 See our Garry’s Mod server hosting page to match a package.