October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan NowOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk11 min

How to Set Up a Garry’s Mod Dedicated Server With SteamCMD

A complete SteamCMD guide for Garry’s Mod dedicated servers: app ID 4020 installation, Windows and Linux launch commands, GSLT setup, Workshop collections, updates, branches, and troubleshooting.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

SteamCMD installs the Garry’s Mod dedicated-server files under app ID 4020. After installation, launch srcds.exe on Windows or srcds_run on Linux, select a gamemode and map, and pass a unique Steam Game Server Login Token (GSLT) with +sv_setsteamaccount. The token must be created for base-game App ID 4000. This guide covers a clean install, Workshop content, updates, crash recovery, branch selection, and the failures that most often stop a server from starting.

What you need before installing

  • A supported host operating system. Windows and Linux dedicated-server files are available. Facepunch states that macOS dedicated servers are no longer shipped, so a Mac cannot run the current official server files locally.
  • SteamCMD. It is Steam’s command-line client and downloads the dedicated-server application without installing the normal Steam desktop client.
  • A writable, permanent server directory. Use a path you can back up and where the account running the service has read, write, and execute permission.
  • A GSLT for each server instance. Since the May 2020 update, Garry’s Mod servers should use a Steam Game Server Login Token. Each server needs its own unique token.
  • Network administration access. You will need to allow the server process through the host firewall and configure your router or cloud firewall according to your provider’s rules. The official material does not publish one universal port or a universal player-count recommendation, so use the ports and limits appropriate to your network and configuration.

There is no official, controlled hardware benchmark that establishes a minimum CPU, RAM amount, or guaranteed player capacity for every gamemode and addon combination. Treat capacity as a workload question: a lightly modified sandbox server and an addon-heavy role-play server can have very different CPU, memory, and storage behavior.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Understand SteamCMD and app ID 4020

Garry’s Mod’s dedicated server is identified by Steam app ID 4020. The normal install transaction is an anonymous SteamCMD login followed by an app update; “update” also performs the initial download when the files are absent. Adding validate checks the downloaded files and replaces files that do not match Steam’s current copy.

The interactive command sequence is:

  1. Start SteamCMD.
  2. Log in anonymously with login anonymous.
  3. Optionally select an installation directory with force_install_dir.
  4. Run app_update 4020, or app_update 4020 validate for an install or repair.
  5. Exit with quit.

force_install_dir can itself cause update problems on some installations. If an update repeatedly fails, remove that command from the sequence or install the server again in a different directory, then run the update there.

#1 Best Overall
Tibers Box 2 Lite
  • Import models,texture,emitters
  • Various functions

Install and launch on Windows

1. Download SteamCMD and choose a server folder

Extract SteamCMD to a folder you control, then decide where the Garry’s Mod files should live. The directory can be on another drive, but avoid locations that apply restrictive per-user permissions or are routinely synchronized by desktop backup software while the server is running.

2. Install app 4020

Open SteamCMD and run the official sequence, changing the path only if you want a different location:

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

steamcmd.exe +login anonymous +force_install_dir c:my_garrysmod_server +app_update 4020 validate +quit

When SteamCMD finishes, the destination should contain the server executable and a garrysmod directory. If the command reports an update or file error, retry without force_install_dir or use a new destination as described above.

3. Create a launch command

From the server directory, a basic Windows launch example is:

srcds.exe +maxplayers 20 -console +gamemode sandbox +map gm_construct +sv_setsteamaccount YOURLOGINTOKENHERE

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Replace YOURLOGINTOKENHERE with the GSLT you create later in this guide. The example starts the Sandbox gamemode on gm_construct, opens the console, and requests 20 player slots. Those values are examples, not a published capacity recommendation; choose a slot count that your CPU, memory, addons, and connection can sustain.

Rank #2
Allplay Mori Board Game, Full of Tricky, Clever Decisions, 3-5 Players
  • USE YOUR DICE WELL - It’s in the tagline of the game: “Dice Break The Rules.” Being able to choose not to follow the lead suit when it’s advantageous to you can be huge! Don’t ignore collecting dice.
  • MANIPULATE THE X CARDS - Having the most X’s is bad: they each count as one negative point. You might be able to feed your x cards to the perceived scoring leader.
  • HOLDING ONTO CARDS - Because you score cards left in hand, it can be a fun challenge to try and keep well-scoring cards not be pulled out by the trick-taking rules.
  • ART BY BETH SOBEL - "Mori" is the Latin word for death and the Japanese word for forest. Both of these interpretations are represented in the artwork of this card game.
  • PRAISE FOR MORI - "a fresh take on a familiar genre that will be an easy learn for fans of this type of card game." BGG User KRWoods1

4. Confirm the first start

A successful start should keep the server process open and load the requested map. Watch the console for download, token, or addon errors before inviting players. If the process closes immediately, test the launch without optional Workshop content, verify the token, and check that the executable is being run from the directory containing the Garry’s Mod files.

Install and launch on Linux

1. Install the files with SteamCMD

From the location where SteamCMD is available, the official Linux example is:

steamcmd +login anonymous +force_install_dir ../gmodds +app_update 4020 validate +quit

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

This places the server in a directory named gmodds relative to the current SteamCMD location. Use an absolute path or adjust the relative path if your layout differs.

2. Make the launcher usable

Facepunch’s Linux instructions provide an update_gmod.sh script that runs app_update 4020 validate. After creating or copying the script, make it executable with chmod +x update_gmod.sh. If the script was edited or downloaded on Windows, run dos2unix update_gmod.sh to remove Windows line endings before executing it.

3. Handle 32-bit library errors

On a 64-bit Linux system, SteamCMD can report a missing linux32/steamcmd file or related compatibility error. The Linux guide notes that 32-bit libraries may be required. Install the 32-bit compatibility packages for your distribution, then rerun SteamCMD and validate the app.

4. Start the server

From the directory containing the launcher, use:

./srcds_run -game garrysmod +maxplayers 32 +map gm_construct

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Green monster persecution
  • 3d first person horror adventure.
  • Adrenaline Rush: Experience the thrill of the chase and the exhilaration of evading a relentless pursuer.
  • With multiple paths to take and secrets to uncover, each playthrough offers a new experience.
  • Sound experience

srcds_run starts the Source dedicated-server binary with the Garry’s Mod game directory. The example requests 32 slots and loads gm_construct. Add the token and gamemode arguments when you are ready for public or community use, for example:

./srcds_run -game garrysmod +maxplayers 32 +gamemode sandbox +map gm_construct +sv_setsteamaccount YOURLOGINTOKENHERE

The launcher can restart the process after a crash, but it does not keep a server running after a machine reboot or after the terminal session is closed. Use a service manager or a scheduled startup method for production operation; the official Linux guide demonstrates an @reboot crontab entry.

Create and configure the required GSLT

A Steam Game Server Login Token identifies your server to Steam. The official GSLT instructions require the base-game App ID field to be 4000, even though the dedicated-server download uses app ID 4020. Create a separate, unique token for each server instance.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Open Steam’s Game Server Login Token management page while signed in to the account that will own the token.
  2. Enter 4000 as the base-game App ID.
  3. Create a token with a memo that identifies the server, such as its environment or community name.
  4. Copy the token once it is displayed and store it in a protected configuration file or launch script. Do not publish it in screenshots, chat, or a repository.
  5. Pass it to the server with +sv_setsteamaccount YOURLOGINTOKENHERE.

An invalid or expired token can prevent startup. If the server worked previously and then stops at launch, check for a mistyped, revoked, or expired token before changing maps or reinstalling files. If you operate multiple servers, verify that each command line uses its own token.

Select a gamemode and map

Use +gamemode with the gamemode’s folder name and +map with the map filename without the .bsp extension. For example:

  • +gamemode sandbox selects the Sandbox gamemode folder.
  • +map gm_construct loads gm_construct, not gm_construct.bsp.

You can change or reload a map while the server is operating with:

changelevel gm_flatgrass

Run that command in the server console or through whatever authenticated console administration method you use. If a map is supplied by an addon, make sure the addon is mounted before attempting the change; otherwise the server may reject the map or return clients to the previous level.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Add Workshop collections and addons

Load a collection at startup

Pass the collection ID with:

+host_workshop_collection WORKSHOPID

The collection must be public or unlisted for srcds to access it. A private collection will not be available to the server. At startup, the server downloads and mounts the collection’s items, so the first launch can take longer than later launches.

Keep collection content consistent

Workshop items can change independently of your launch script. By default, the server can update mounted addons automatically. To disable that behavior, set:

host_workshop_autoupdate 0

Disabling updates can make restarts more predictable, but it also leaves the server on older addon or map files. Stale content can prevent clients from joining or can create mismatched gameplay. If you disable automatic updates, schedule a deliberate review and update window instead of leaving the collection unattended.

Use the newer ID-file format when appropriate

Facepunch documents cfg/srcds_workshop_ids.txt as a newer Workshop configuration format available with version 2026.09.22 or newer. If your server reports that it supports this format, place the required Workshop IDs in that configuration file and follow the format documented for your installed version. Do not assume an older installation understands the newer file; continue using the startup collection parameter where the file format is unavailable.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Update safely and plan recovery

Stop before updating

Stop the server process before running SteamCMD. Updating files while srcds is still using them can cause the update to fail or leave a mixed installation. Once the process is stopped, run:

steamcmd +login anonymous +force_install_dir /path/to/gmodds +app_update 4020 validate +quit

On Windows, use the Windows executable and a Windows path. If force_install_dir triggers errors, omit it and run SteamCMD from the server directory, or reinstall into a new folder.

Automate Linux updates carefully

The Linux update_gmod.sh approach is useful for repeatable maintenance because it records the same app_update 4020 validate operation each time. Schedule it during a maintenance window, stop the server first, and start the server only after SteamCMD exits successfully. Keep a backup of configuration files and a known-good copy of the previous installation so you can restore service if a new update or addon causes a regression.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Survive crashes and reboots

srcds_run can keep a Linux server alive after a crash, but it is not a complete service supervisor. It will not start the server after a reboot or when the terminal closes. The official guide shows an @reboot crontab entry; whichever method you choose, test it by rebooting a non-production instance and confirming that the correct working directory, token, map, and Workshop settings are loaded.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Use experimental branches only when you need them

SteamCMD can install Garry’s Mod experimental branches with these beta names:

  • -beta dev
  • -beta prerelease
  • -beta x86-64

Include the branch option in the app update command when you install or update that branch. Beta branches may be unstable and can change addon or plugin behavior. To return to stable, explicitly select -beta public validate; merely removing the -beta option is not sufficient to switch back.

Make the server reachable without exposing it unnecessarily

The game process must be allowed through the host firewall, and any router or cloud security group in front of it must permit the traffic required by your server configuration. Restrict administration interfaces to trusted addresses, use strong credentials for any remote console tool, and do not publish the GSLT. If players can see the server but cannot join, compare the advertised address with the host’s actual reachable address, then inspect firewall and forwarding rules before changing the game configuration.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Keep the console attached during initial testing. It lets you distinguish a network rejection from a missing map, a Workshop download failure, a token error, or a process crash. Once the configuration is stable, move the launch command into a controlled script or service so every restart uses the same arguments.

Troubleshooting by symptom

Symptom Likely cause What to do
SteamCMD cannot update app 4020 A problematic force_install_dir, locked files, or a damaged install Stop the server, retry without force_install_dir, or install into a new directory and run app_update 4020 validate.
Linux reports missing linux32/steamcmd files Missing 32-bit compatibility libraries on a 64-bit host Install the distribution’s 32-bit libraries, then rerun SteamCMD and validate.
The process exits at startup Invalid or expired GSLT, a bad argument, or missing server files Check the token, confirm base-game App ID 4000 was used, verify the executable and working directory, and remove optional arguments one at a time.
Players cannot join after a Workshop change Private collection, stale addon files, or a map/content mismatch Make the collection public or unlisted, verify the collection ID, decide whether to allow automatic updates, and restart after content has mounted.
changelevel fails Incorrect map name or an addon map that is not mounted Use the map name without .bsp and confirm the Workshop item or local map is available before changing level.
Linux server returns after a crash but not after reboot srcds_run is a crash wrapper, not a boot service Add a tested startup mechanism such as the documented @reboot crontab entry or a service manager.
Stable files do not return after removing a beta flag Steam retained the selected branch Run an update with -beta public validate explicitly.

Self-hosting versus managed hosting

Running the files yourself provides direct console and filesystem access, but you own patching, backups, firewall rules, and reboot recovery. A managed host can reduce routine administration, but verify exactly which controls it exposes before committing your community to it.

Decision factor Self-hosted server Managed server questions to ask
Operating system You choose Windows or Linux and maintain it. Which operating systems and Garry’s Mod branches are supported?
CPU and RAM headroom You size the machine for the selected gamemode, slots, scripts, and Workshop collection. Are CPU limits shared or dedicated, and can resources be increased?
Player slots You set +maxplayers and monitor actual load. Are slot limits fixed, and what happens when the plan is upgraded?
Workshop support You control collection IDs, update policy, and local backups. Can you use public or unlisted collections and the current Workshop ID-file format?
GSLT You create and protect one unique token per server. Where is the token entered, and can you replace it without opening a support ticket?
Backups and restore You define backup frequency, retention, and off-host copies. What is backed up, how often, and how quickly can a restore be performed?
Updates and reboots You schedule SteamCMD updates and test reboot recovery. Are updates automatic, can you defer them, and is crash/reboot recovery included?
Network controls You manage firewall, forwarding, and administration access. Can you control firewall rules, addresses, and remote-console access?
Console access Full local or remote shell and server-console access. Do you receive an interactive console or only a start/stop panel?
Total monthly cost Includes hardware or virtual-machine rental, storage, bandwidth, and your maintenance time. Compare the complete recurring price with backups, extra slots, storage, and support charges.

The official documentation does not provide a universal hardware minimum or independent player-capacity benchmark. Any provider promising a fixed number of players should explain the gamemode, addon load, CPU allocation, and test conditions behind that number.

Quick Recap

Bestseller No. 1
Tibers Box 2 Lite
Tibers Box 2 Lite
Import models,texture,emitters; Various functions
Bestseller No. 3
Green monster persecution
Green monster persecution
3d first person horror adventure.; Sound experience
Bestseller No. 4
SaleBestseller No. 5

First-start checklist

  • SteamCMD installed and able to log in anonymously.
  • App 4020 downloaded and validated into the intended directory.
  • Windows launch uses srcds.exe; Linux launch uses srcds_run.
  • GSLT created with base-game App ID 4000, unique to this server, and supplied with +sv_setsteamaccount.
  • +gamemode contains the gamemode folder name.
  • +map contains a valid map name without .bsp.
  • Any Workshop collection is public or unlisted, and its ID is correct.
  • Firewall and forwarding rules allow players to reach the host while administration remains restricted.
  • Linux scripts are executable, converted with dos2unix when necessary, and tested after a reboot.
  • Updates are performed only after stopping the server, with configuration and data backups available.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.