Garry's Mod Server Setup: SteamCMD, server.cfg, Workshop Collections & RCON
How to stand up a Garry's Mod dedicated server: installing free app 4020 with SteamCMD (anonymous login works), the srcds launch line and built-in gamemodes, why your GSLT must be created under app 4000, which ports to forward, server.cfg essentials, hosting a Workshop collection so players actually download your addons, DarkRP and TTT setup, tickrate facts, and enabling genuine Source RCON.
Garry's Mod has the most DIY server culture of any Source game - most of its thousands of servers are run by communities, not companies, and everything you need is free. The dedicated server runs on the stock Source engine (srcds), so if you have ever hosted any Source game the shape will be familiar; if you have not, GMod is a good place to learn it. You do not need to own the game to host a server.
Installing the server with SteamCMD
The dedicated server is its own free Steam app - 4020 ("Garry's Mod Dedicated Server"), separate from the game client (4000). Anonymous login works:
Updating is the same command re-run with the server stopped.
Two branch facts worth knowing in 2026: the main server branch is still 32-bit, so on a 64-bit Linux host you need the 32-bit compatibility libraries your distro provides (e.g. lib32gcc family on Debian/Ubuntu). There is an opt-in x86-64 beta branch, but it tracks development changes and is not the right choice for a production server
- stay on main unless you are specifically testing it.
The launch command
The server binary is srcds_run (Linux) / srcds.exe (Windows):
Create the token for app 4000 (the Garry's Mod client app), not 4020 - even though the server files come from 4020. A token made under the wrong app id does not work.
One token per server instance. Reusing a token across instances causes disconnects.
Facepunch's own documentation states that servers without a GSLT are penalized in ranking, so treat it as part of a standard install rather than an optional extra.
Ports to forward
Port
Protocol
What
27015
UDP
Game traffic + server-browser query
27015
TCP
RCON (same port number, different transport)
27020
UDP
SourceTV - only if you enable it
Forward UDP 27015 as the minimum. Forward the TCP side only if you administer remotely, and never without a strong rcon_password. You may see guides telling you to forward 27005 - that is a client-side port, not something a server host needs to open.
server.cfg essentials
garrysmod/cfg/server.cfg runs automatically at startup (standard srcds behavior). A minimal working file:
hostname "My GMod Server"
sv_lan 0
rcon_password "use_a_long_random_string"
// sv_password "join_password" // only for private servers
The single most common "my server is invisible" cause is sv_lan left at 1 (or a missing/invalid GSLT) - with sv_lan 1 the server never registers with the Steam server browser. Set sv_lan 0, get the GSLT right, and make sure UDP 27015 is actually reachable from outside.
Workshop content - making players download your addons
Server-side addons alone are not enough: clients must download the content too, or joining players see missing models and purple-checker textures. The supported path is a Workshop collection:
Create a collection on the Workshop under the game app (4000) and set it Public or Unlisted.
Add your addons to the collection.
Launch the server with +host_workshop_collection YOUR_COLLECTION_ID.
The current official documentation requires no API key for this; some hosting panels still expose a legacy "authkey" field from older tooling - if your panel insists, the key comes from steamcommunity.com/dev/apikey.
For content outside the collection, force client downloads from Lua with resource.AddWorkshop("ADDON_ID") (drop the calls in a file under lua/autorun/server/).
Pitfall: do not load the same addon both as an extracted folder in addons/and via the collection - the two copies fight, and version drift between them produces exactly the broken-content bugs the collection was meant to fix.
Gamemodes: TTT and DarkRP
Trouble in Terrorist Town is built in: +gamemode terrortown. You will want actual ttt_ maps from the Workshop - the sandbox maps only technically work.
DarkRP is third-party. Install it into garrysmod/gamemodes/ (the maintained source is the FPtje/DarkRP GitHub repository), then launch with +gamemode darkrp. Expect DarkRP servers to be the most addon-heavy and CPU-hungry variety.
Tickrate
The engine default is 66 ticks/second, and it can only be changed with the -tickratestartup flag - console changes at runtime do nothing, which is a recurring point of confusion. Sandbox and TTT servers commonly just keep 66; heavily modded DarkRP servers often lower it to 33 to buy CPU headroom. (Guides claiming the default is 33 are describing hosting-panel presets, not the engine.)
Hardware
Source game logic is effectively single-thread-bound: per-core CPU speed matters far more than core count. RAM scales almost entirely with addon load - a small vanilla sandbox server runs in a couple of GB, while a heavy DarkRP install with hundreds of Workshop addons wants 8 GB or more. Use an SSD; addon mounting hits the disk hard.
MantaScope tracks the live Garry's Mod server list with population history, per-server rank, uptime and downtime incidents, plus decoded server attributes (gamemode, category, Workshop collection, VAC). Because GMod runs standard srcds, its RCON is the genuine Source RCON protocol - you can claim your server on MantaScope and administer it from the browser: live player list, kick/ban and console over the rcon_password you set above, alongside population graphs, scheduled messages, automations and Discord notifications.
7 Days to Die Server Setup: SteamCMD, serverconfig.xml, Ports & Telnet