Garry's Mod Dedicated Server Setup
Facepunch's maintained guide uses SteamCMD app 4020 and the Source dedicated-server launcher srcds_run. This walkthrough keeps the startup flags, Workshop collection, Steam account token, and client connection checks in the order that makes failures diagnosable. If you want the files and process managed for you, see Garry's Mod server hosting.
Last verified: September 16, 2026. The official Facepunch dedicated-server guide is the source for app IDs, branch notes, GSLT, and launch parameters. It notes that macOS dedicated servers are no longer shipped.
Install with SteamCMD
Install SteamCMD for your operating system, choose an empty server directory, and download app 4020 anonymously:
steamcmd +login anonymous \
+force_install_dir /path/to/gmodds \
+app_update 4020 validate \
+quitRun the command again when updating. On Linux, install the 32-bit runtime libraries required by SteamCMD/Source and use the official troubleshooting notes if the launcher reports missing libraries.
Launch a test server
cd /path/to/gmodds
./srcds_run -game garrysmod -console \
+maxplayers 16 \
+gamemode sandbox \
+map gm_construct \
-port 27015Use a small player slot count and a stock map for the first boot. Keep the console output; it tells you whether the game, map, or an addon failed before anyone attempts to join.
Give the server a Steam account token
For a public server, create a Game Server Login Token (GSLT) for app 4000 and pass it at startup:
./srcds_run -game garrysmod -console \
+sv_setsteamaccount YOUR_GSLT \
+gamemode sandbox +map gm_constructKeep the token private. Do not paste it into a public article, repository, chat transcript, or support ticket.
Add a Workshop collection after vanilla works
Use a public or unlisted collection and add its ID to the startup command:
./srcds_run -game garrysmod -console \
+host_workshop_collection COLLECTION_ID \
+gamemode sandbox +map gm_constructThe server fetches and updates the collection at startup. Client-side content delivery is a separate concern; use the Workshop addons guide and download troubleshooting guide when players see missing content.
Connect and verify
- Start with the stock map and no custom addons.
- Open the GMod client console and use
connect YOUR_SERVER_IP:27015. - Run
statuson the server console after a successful join and record the map, gamemode, and player count. - Only then add the Workshop collection, custom map, and gamemode one change at a time.
If the client hangs on “retrieving server info,” or local players can join while external players cannot, use GMod connection troubleshooting before changing several network variables at once.
The September 2026 update: 64-bit, and what changed for servers
The September 2026 update went live on 16 September. The headline is that Facepunch now ships 64-bit binaries for the Windows game client, dedicated servers and most developer tools, on every version of the game. In their words, this means "less risk of running out of the 32-bit memory address space and subsequently crashing when playing on heavy servers or with a lot of addons installed", which is the single most common way a large Garry's Mod server falls over.
If you host on Linux, read that carefully: the 64-bit change is the Windows side catching up. On Linux, 64-bit binaries have been available for a while through the x86-64 branch, which ships bin/linux64/srcds where the default branch ships bin/linux32/srcds. The catch that bites people is the launcher: on that branch the ordinary ./srcds_run still starts the 32-bit binary, so you have to launch ./srcds_run_x64 to actually get the 64-bit runtime. Picking the branch without changing the launcher silently leaves you on 32-bit.
Smaller items in this update that a server operator will notice
- Dedicated servers now clean up
cache/workshop/for addons that are no longer used or installed, which had been a slow disk leak on long-lived servers. sv_pureno longer defaults to mode 0, and servers stopped trying to read files Facepunch does not ship on every startup.- The default server log filename is now
L-YYYY-MM-DD-IIIinstead ofLMMDDIII, so logs finally sort and read sensibly. - Lua error log files over 100 MB are deleted rather than growing without limit.
- Lua errors when the server hits the entity limit, and failed entity creations, no longer spam the error log.
- Workshop mounts are now waited for when loading a map with
+mapon the command line, which removes a class of startup race. - Standalone Insurgency (2014) was added to the mountable games list, and
.navfiles can load from mountable games as a fallback, with addons still taking precedence. - On Windows there is a new
srcds_console.exe, an srcds variant that reuses the existing console window instead of opening a new one each time.
Branches and platform notes
- Pre-Release, dev and x86-64 carry the next update before it ships. Facepunch's release posts say all three contain the upcoming changes, and ask players, modders and server owners to run one briefly beforehand so problems surface before release day rather than on it. dev is bleeding edge and expected to be buggier than the rest. On Linux,
x86-64is also where the 64-bit server binaries live, so it is a branch you may be running permanently rather than only for testing. - Switching a dedicated server to a branch is not the same as switching the game. For the game you use Steam: right-click Garry's Mod, Properties, Betas. For a server you add
-beta <beta_name>to theapp_update 4020line in SteamCMD, as the Facepunch dedicated server guide linked at the top of this page describes. Facepunch's own warning applies: the development branches update regularly and may not be stable. - A Garry's Mod update does not force you to rebuild. Facepunch's release posts state that updates are backwards compatible with existing servers, so a server keeps running and players can still join it after an update ships. Updating promptly is still recommended, because addons and clients move to the new build. The wording has been identical across releases, including November 2025 and September 2026.
- MacOS dedicated servers are no longer shipped according to the official guide.
- For LAN-only testing, review
sv_lanand the startup timing in the configuration guide. Do not assume setting it only inserver.cfgchanges the initial server state.
Related Garry's Mod guides
- Playing with friends, if you are not sure you need a dedicated server at all
- Server requirements and sizing
- Startup flags and server.cfg
- Workshop collections and addons
- Connection troubleshooting
- Server cost and plan sizing
Prefer an always-on process, backups, and a managed Workshop directory? Launch a managed Garry's Mod server and keep this guide for flags and diagnostics.