Menu
 

Garry's Mod Dedicated Server Setup (2026): SteamCMD, 64-bit 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 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 \
  +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.

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_pure no 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-III instead of LMMDDIII, 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 +map on the command line, which removes a class of startup race.
  • Standalone Insurgency (2014) was added to the mountable games list, and .nav files 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-64 is 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 the app_update 4020 line 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_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