How to set up a Garry's Mod server from scratch
Full setup walkthrough for a Garry's Mod 13 dedicated server: deploy via SteamCMD, configure server.cfg, set launch options for Sandbox / DarkRP / TTT / Murder / Prop Hunt, install gamemodes and Workshop addons (via collection IDs), set up ULX admin + groups, stand up a FastDL mirror so clients don't wait on 50 KB/s downloads, and fix the common GMod errors.
What you need first
- An active Garry's Mod plan on Fatality Servers. See our Garry's Mod hosting plans.
- A Steam copy of Garry's Mod for each player โ server doesn't need a license.
- Optional but useful: CS:S / HL2 / TF2 mounted content โ tons of GMod maps and addons reference textures from those games. Missing mounted content shows up as purple-and-black checkerboards.
- A basic SFTP client (FileZilla, WinSCP).
- For DarkRP or TTT specifically: a plan with at least 2 GB RAM and 2 cores. Sandbox is lighter.
Sizing note: vanilla Sandbox on gm_construct with 8 people is hilariously light โ under 300 MB RAM. DarkRP with 40+ addons, custom jobs, entities, and a persistent base-building plugin can push 4-6 GB per server. Workshop-heavy servers hit disk hard during boot and map-change, so SSD matters more than raw CPU on GMod.
Deploy the server (1-click)
Our GMod template runs SteamCMD to pull the latest GMod dedicated server (App ID 4020), writes a starter server.cfg, and opens UDP 27015 on your plan's IP.
-
Pick the GMod template at checkout
On the Garry's Mod hosting page, pick a plan sized for slot count and gamemode:
- Sandbox / small Prop Hunt: 12-24 slots, Starter plan
- TTT / Murder: 16-32 slots, Community plan
- DarkRP with 40+ addons: 48-128 slots, Community/Flagship plan
-
Pick or skip the gamemode preset
Wizard asks: Sandbox / DarkRP / TTT / Murder / Prop Hunt / None. If you pick a preset, the panel pre-installs the matching Workshop collection + config; if "None", you get a clean server to configure manually.
-
Wait for SteamCMD
GMod server is ~2.5 GB. First install takes ~3-6 minutes.
-
Confirm the server is listening
Unknown command "r_decal_cullsize" Server logging data to file logs/L0418001.log L 04/18/2026 - 12:34:56: Log file started Network: IP YOUR-IP, mode MP, dedicated Yes, ports 27015 SV / 27005 CL VAC secure mode is activated.
File layout & where things go
garrysmod/ โ main game content folder
โโโ cfg/
โ โโโ server.cfg โ main server config
โ โโโ autoexec.cfg โ runs at server start
โ โโโ <gamemode>.cfg โ gamemode-specific overrides
โโโ addons/ โ server-side addons (uploaded, NOT Workshop)
โ โโโ <addon>/ โ each addon is a folder
โ โโโ addon.json (Workshop) or info.txt
โ โโโ lua/
โ โโโ materials/
โ โโโ models/
โโโ gamemodes/ โ gamemodes live here
โ โโโ sandbox/
โ โโโ terrortown/ โ TTT
โ โโโ darkrp/
โ โโโ prop_hunt/
โโโ maps/ โ .bsp map files
โโโ materials/, models/, sound/ โ shared content
โโโ data/ โ persistent data written at runtime (Sboxes, PointShop, etc.)
โโโ backups/ โ logs, autosaves
Two ways to install addons. Workshop addons โ listed by ID in a collection, downloaded from Steam Workshop automatically by the server, clients re-download via Workshop. Legacy addons โ folders uploaded via SFTP to garrysmod/addons/, content served via FastDL. Workshop is simpler; legacy is for private / custom addons you don't want on Steam.
Launch options
GMod settings come from both the launch command line (+cvar value) and server.cfg. Launch line wins on conflict.
A typical DarkRP launch line:
./srcds_run -game garrysmod -console -usercon
+gamemode darkrp
+map rp_downtown_v4c_v2
+hostport 27015
+maxplayers 48
+host_workshop_collection 123456789
+sv_setsteamaccount YOUR-GSLT-TOKEN
+exec server.cfg
Options to know:
-game garrysmodโ required. Selects the GMod mod inside SRCDS.-console/-userconโ headless + enables RCON. Always both.+gamemodeโ folder name undergarrysmod/gamemodes/.sandbox,darkrp,terrortown,murder,prop_hunt, etc.+mapโ starting map. Must exist ingarrysmod/maps/(either shipped or installed via Workshop collection).+maxplayersโ slot count. Match your plan.+host_workshop_collectionโ single Workshop collection ID to auto-download. See Workshop section below.+sv_setsteamaccountโ GSLT token. Like CS:GO/CS2, required for the server to show on the public list.
Get a GSLT
Visit steamcommunity.com/dev/managegameservers from an account that owns GMod. App ID for GMod is 4000 (not 4020, which is the server). Paste the 32-char token into the Startup field.
Core server.cfg settings
server.cfg sits at garrysmod/cfg/server.cfg. Flat list of cvar "value":
// --- Server identity ---
hostname "My GMod Server [EU] - DarkRP"
sv_region 3 // 0=US-E 1=US-W 2=SA 3=EU 4=Asia 5=AU 6=ME 7=Africa
// --- Passwords / auth ---
sv_password ""
rcon_password "change-me-strong"
sv_cheats 0
sv_lan 0
// --- Download settings (FastDL) ---
sv_allowdownload 1
sv_allowupload 1
sv_downloadurl "https://fastdl.example.com/gmod/"
net_maxfilesize 256
// --- Network rates ---
sv_maxrate 786432
sv_minrate 131072
sv_maxupdaterate 66
sv_minupdaterate 33
sv_maxcmdrate 66
sv_mincmdrate 33
sv_timeout 90
// --- Voice / chat ---
sv_voiceenable 1
sv_alltalk 0
// --- Spam / abuse protection ---
sv_noclipaccelerate 5
sv_noclipspeed 5
sv_region 3
sv_loadingurl "" // optional: your community's loading screen URL
// --- Logging ---
log on
sv_logbans 1
sv_logecho 1
sv_logfile 1
// --- Workshop auth (for +host_workshop_collection) ---
// sv_setsteamaccount set via launch line only, not here
The values most people tweak:
hostnameโ 64 chars. No color codes in GMod.sv_downloadurlโ your FastDL mirror (see FastDL section).sv_maxupdaterate/sv_maxcmdrateโ 66 is GMod's internal tickrate cap. Higher values do nothing; lower values make players feel laggy.sv_loadingurlโ URL to a custom loading screen (popular for DarkRP / community servers). Must be a live HTTPS page, max 64 KB for the HTML.
Gamemodes โ Sandbox, DarkRP, TTT, Murder, Prop Hunt
Sandbox
Shipped with GMod. No extra install needed.
+gamemode sandbox +map gm_construct
DarkRP
Install from github.com/FPtje/DarkRP. Two parts:
-
Install the gamemode
Upload the DarkRP folder into
garrysmod/gamemodes/darkrp/. Or use our panel's gamemode installer. -
Install DarkRPModification
The customization layer โ custom jobs, shipments, weapons, entities. Download DarkRPModification, upload to
garrysmod/addons/DarkRPModification/. Edit its config files:garrysmod/addons/DarkRPModification/lua/darkrp_customthings/ โโโ jobs.lua โ custom jobs โโโ shipments.lua โ weapon shipments โโโ entities.lua โ custom entities (printers, drugs) โโโ vehicles.lua -
Pick an RP map
Popular:
rp_downtown_v4c_v2(vanilla favorite),rp_rockford_v2b,rp_bangclaw,rp_evocity_v33x. Add to Workshop collection.
TTT (Trouble in Terrorist Town)
Shipped with GMod, folder name terrortown.
+gamemode terrortown +map ttt_minecraft_b5
Popular community add-ons: Custom Roles for TTT, TTT Pointshop 2, TTT Damagelogs.
Murder
Workshop gamemode. Subscribe to MattJeanes's Murder gamemode, put in Workshop collection.
+gamemode murder +map mu_motel_v2
Prop Hunt
Popular fork: PropHunt Enhanced. Upload to garrysmod/gamemodes/prop_hunt/.
+gamemode prop_hunt +map ph_office
Each gamemode has its own .cfg. cfg/darkrp.cfg, cfg/terrortown.cfg, etc. run on top of server.cfg and let you override values only for that gamemode. Put universal settings in server.cfg, gamemode-specifics in the matching file.
Workshop addons & collections
Workshop is the standard way to ship addons to clients โ they get auto-downloaded via Steam, no FastDL needed.
-
Create a Workshop collection
Log in to Steam โ GMod Workshop โ top right "Create Collection" โ add every addon you want on your server. The collection gets a numeric ID in the URL (
?id=123456789). -
Set the collection ID in the launch line
+host_workshop_collection 123456789On first boot, the server downloads every addon in the collection. Subsequent boots only re-download items that changed.
-
Mount content-only addons
Addons that only ship materials/models/sounds (e.g. CS:S content pack replacements) work out of the box. Gamemode-script addons (SWEPs, SENTs, entities) also work, but some require configuration in an
autorun/Lua file. -
Exclude client-only or optional addons
If an addon should NOT be forced to clients (e.g. admin-only tools), upload to
garrysmod/addons/via SFTP instead โ server uses it, clients don't need to download.
GSLT required for Workshop downloads. Without +sv_setsteamaccount in the launch line, the server can't authenticate to the Workshop CDN and your collection won't download. Symptom: console logs Failed to get Workshop addon info on boot.
ULX admin + groups
ULX is the de-facto admin mod for GMod. Ships as two Workshop addons:
- ULib โ library dependency: Workshop ID 557962280
- ULX โ admin mod: Workshop ID 557962280 (same collection usually)
-
Add ULib + ULX to your Workshop collection
Restart. On boot, ULX creates
data/ulx/with default configs. -
Set yourself as super-admin
First join the server, find your Steam ID (press
~, typestatus, look forSTEAM_0:X:YYYYYYY). Then in RCON:ulx adduser "STEAM_0:X:YYYYYYY" superadminOr edit
garrysmod/data/ulib/users.txtdirectly and restart. -
Create custom groups
In-game as superadmin:
!xguiopens the ULX GUI. Create groups like "moderator", "trusted", "vip" and assign commands (kick/ban/slay/etc.). -
Add complementary plugins
- ULX Ranks โ streamlined rank + permission system
- ServerGuard โ alternative admin mod (GUI-centric, popular for DarkRP)
- SAM โ premium but fast admin mod; pay once, use forever
FastDL โ fast client downloads
Without FastDL, clients download addon content from the GMod server itself at a capped 50-100 KB/s. Large addon collections (200 MB+) take 20+ minutes to join โ players give up.
FastDL is a plain HTTP(S) mirror that serves gzipped copies of your addon files. Our panel has a one-click FastDL on your plan's CDN โ if you're on our hosting, it's already done. For reference, the manual setup is:
-
Generate the bz2-compressed files
Every
.bsp,.mdl,.vtx,.phy,.vvd,.vtf,.vmt,.wav,.mp3,.oggmust be recompressed to.bz2. Run the panel's "Build FastDL" action โ it walks your addon tree and builds the.bz2mirror. -
Serve the mirror over HTTPS
Upload to any static HTTPS host (Cloudflare R2, S3 + CloudFront, even nginx on the same box). Our panel points this at our built-in CDN automatically.
-
Set
sv_downloadurlsv_downloadurl "https://fastdl.example.com/gmod/" sv_allowdownload 1 net_maxfilesize 256Trailing slash on the URL. File layout on the mirror must mirror
garrysmod/โ i.e.garrysmod/addons/myaddon/materials/foo.vtf.bz2.
Workshop addons don't need FastDL. If all your content ships via a Workshop collection, clients download it from Steam's CDN (hundreds of MB/s). You only need FastDL for legacy addons uploaded to garrysmod/addons/.
Connect and test
-
Launch Garry's Mod on your PC
Main menu โ Find a Game.
-
Find your server
Server browser โ filter by name or map. First registration takes 2-5 minutes after first boot with GSLT.
-
Or direct connect
Press
~in main menu (enable developer console in settings first) and run:connect YOUR-SERVER-IP:27015 -
Authenticate as admin
rcon_password <your-rcon> rcon status rcon changelevel rp_downtown_v4c_v2 ulx help // ULX admin help
Common errors and fixes
Server doesn't appear in the browser
- Missing GSLT โ add
+sv_setsteamaccount YOUR-TOKENto launch line sv_regionwrong โ set to match your locationsv_lan 1accidentally โ flip to0- Wait 2-5 minutes for master-list indexing
Purple/black checkerboard textures in-game
Missing content. Either:
- Addon's texture files aren't on the FastDL mirror โ rebuild FastDL
- Addon requires CS:S or HL2 mounted content that the server doesn't have โ install
cstrike/andhl2/folders or mount viagarrysmod/cfg/mount.cfg - Client has a different version of the addon than the server โ have them unsubscribe + resubscribe on Workshop
Clients download addons at 50 KB/s
No FastDL. Set sv_downloadurl to a fast HTTPS mirror (our panel provides this; details in FastDL section).
"Your server is too busy to receive your connection"
Server is maxed on a resource. Check:
- CPU pegged โ trim addons or upgrade plan
- Memory limit hit โ GMod runs in a 32-bit binary (still, in 2026), so it hard-caps around 3.5 GB per instance. If you're close to that limit, you need to split across multiple instances.
- Disk full โ check the panel disk graph
"CBaseAnimating::LookupPoseParameter..." spam in console
Model addon has missing bone / pose parameters. Harmless log spam, but means some model is misreferencing animations. Disable the offending addon to clean up logs.
Workshop addons not downloading on server boot
- GSLT missing or invalid โ Workshop CDN auth fails without it
- Collection ID typo in
+host_workshop_collection - Collection set to Private/Friends-only on Steam โ must be Public
- Workshop server-side outage (rare) โ check steamstat.us
DarkRP: "Couldn't find darkrp_customthings"
Path mismatch. DarkRPModification addon must live at exactly:
garrysmod/addons/darkrpmodification/lua/darkrp_customthings/...
Not darkrp-modification-master or a subfolder of a zip. Rename to lowercase darkrpmodification and restart.
TTT: "Roles not rolling" / round doesn't start
Usually a Custom Roles plugin conflict. Disable Custom Roles, reboot, check if rounds work. Then re-add one role pack at a time until you find the offender.
Server crashes on map change
- Memory hit 3.5 GB limit โ reduce addon count or pool multiple smaller servers instead
- Map has a missing dependency (water material, custom texture) โ check panel's console for what it was loading when it crashed
- Corrupt map file โ re-download or remove
"Missing map_name, disconnecting"
Player doesn't have the map. Two fixes:
- Add the map to your Workshop collection so clients auto-download it
- Add to FastDL mirror so clients download from your HTTPS mirror on join
Stuck on something specific? Email support with your server IP, the last 100 lines of console, and your launch line โ we'll usually have an answer within the hour.