Menu
 

Garry's Mod Dedicated Server Setup: SteamCMD, srcds_run and Workshop

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 1, 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 \
  +quit

Run 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 27015

Use 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_construct

Keep 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_construct

The 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

  1. Start with the stock map and no custom addons.
  2. Open the GMod client console and use connect YOUR_SERVER_IP:27015.
  3. Run status on the server console after a successful join and record the map, gamemode, and player count.
  4. 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.

Branches and platform notes

  • Facepunch documents an x86-64 beta branch for current server testing; record the branch so clients and operators know what is being tested.
  • MacOS dedicated servers are no longer shipped according to the official guide.
  • For LAN-only testing, review sv_lan and the startup timing in the configuration guide. Do not assume setting it only in server.cfg changes the initial server state.

Related Garry's Mod guides

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.

Tired of fighting this issue every patch?

Run a managed Garry's Mod server with us. We handle the patches, mod-version pinning, save backups, and DDoS protection. Set up in minutes, multiple datacenter regions, no contract.

See Garry's Mod hosting plans →
Top