Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon 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 Now×
VGSOURCES
Get listed

dedicated serversPATCH 2026.10.15

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

By VGSources Team 10 min read

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

To host a Garry’s Mod dedicated server, install the server through SteamCMD with app ID 4020, create a unique Steam Game Server Login Token (GSLT) for base-game app ID 4000, and start the correct executable for your operating system. Windows uses srcds.exe; Linux uses srcds_run. The procedure below covers installation, first launch, gamemodes, maps, Workshop collections, updates, crash recovery, and the platform limits you need to plan for.

What you need before installing

A dedicated server is a separate Garry’s Mod server process. Players connect to it without the host running the normal Garry’s Mod client. SteamCMD is the command-line version of Steam used to download and validate that server.

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.
  • A Windows or Linux machine that can remain online while people play.
  • Permission to install software and open the game server’s required network ports in the machine firewall and, if applicable, the router.
  • A Steam account that can create a Steam Game Server Login Token (GSLT).
  • A decision about the initial gamemode, map, player-slot limit, and Workshop content.

There is no published universal hardware minimum or independent benchmark that establishes how many players a particular CPU or amount of memory can support. CPU and memory demand vary substantially with the gamemode, scripts, maps, and addons, so size the machine from observed server load rather than an unsupported “maximum players” claim.

SteamCMD, app IDs, and the server files

Item Value or command What it means
SteamCMD Command-line Steam client Downloads, validates, and updates dedicated-server files.
Garry’s Mod dedicated-server app 4020 Use this ID with app_update.
GSLT base-game App ID 4000 Use this value when creating the token for a Garry’s Mod server.
Windows executable srcds.exe Starts the dedicated server on Windows.
Linux launcher srcds_run Starts the dedicated server and can restart it after a crash.

The standard SteamCMD sequence is an anonymous login, an optional installation directory, an update of app 4020, and then exit:

#1 Best Overall
Tibers Box 2 Lite
  • Import models,texture,emitters
  • Various functions
steamcmd.exe +login anonymous +force_install_dir c:my_garrysmod_server +app_update 4020 validate +quit

validate checks the downloaded files and replaces damaged or missing files. The force_install_dir option is convenient, but the official guidance warns that it can cause update problems. If an update repeatedly fails, remove that option and install into another folder.

Install the server on Windows

1. Install SteamCMD and choose a server directory

Extract SteamCMD to a folder you control, then decide where the Garry’s Mod server should live. Avoid a directory that is synchronized, routinely cleaned, or protected by restrictive permissions. The directory in the command below is only an example.

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

2. Download and validate Garry’s Mod

Open Command Prompt in the SteamCMD folder and run:

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

SteamCMD creates the server files under the selected directory. If you omit force_install_dir, use SteamCMD’s interactive form instead:

login anonymous
force_install_dir c:my_garrysmod_server
app_update 4020 validate
quit

When troubleshooting updates, try the interactive form without force_install_dir, or reinstall into a different directory. Do not run an update while the server process is still using the files.

3. Start a basic server

From the server directory, launch a console server with a 20-player limit, Sandbox, and the stock gm_construct map:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
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
srcds.exe +maxplayers 20 -console +gamemode sandbox +map gm_construct +sv_setsteamaccount <your token>

Replace the token placeholder with the GSLT described below. Keep the console window available while testing so you can read startup errors and issue commands.

Install the server on Linux

1. Download with SteamCMD

From a shell, install into a directory such as ../gmodds relative to the SteamCMD directory:

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

As on Windows, stop the server before updating. A running process can keep files open and cause the update to fail or leave a mixed version behind.

2. Make the launcher and maintenance script usable

The Linux guidance includes an update_gmod.sh script that runs app_update 4020 validate. After creating or copying the script, make it executable and normalize Windows line endings if necessary:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
chmod +x update_gmod.sh
dos2unix update_gmod.sh

If SteamCMD reports a missing linux32/steamcmd file on a 64-bit installation, install the distribution’s 32-bit compatibility libraries and run SteamCMD again. The exact package names depend on the Linux distribution.

3. Start the Linux server

From the directory containing the server files, use:

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 -game garrysmod +maxplayers 32 +map gm_construct

srcds_run keeps the process alive after a crash, but it does not start the server after a reboot or after the terminal closes. Run it inside a service manager or terminal multiplexer for production use; the official Linux instructions also show an @reboot crontab entry as a simple reboot method:

@reboot /path/to/gmodds/srcds_run -game garrysmod +maxplayers 32 +map gm_construct

Replace the path with the absolute path to your installation. Test the reboot behavior deliberately rather than assuming a detached shell will survive a restart.

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

Create and apply a Steam Game Server Login Token

Since the May 2020 update, Garry’s Mod dedicated servers should use a GSLT. Create the token through Steam’s game-server account management interface, set the base-game App ID to 4000, and use a separate unique token for every server instance.

Token requirements

  • The base-game App ID field is 4000, not the dedicated-server download ID.
  • Each server needs its own token. Do not reuse one token across multiple instances.
  • Pass the token at launch with +sv_setsteamaccount.
  • An invalid or expired token can prevent the server from starting correctly.

Windows launch with a token

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

Linux launch with a token

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

Keep tokens out of screenshots, public configuration repositories, and shared chat. If a token is exposed, revoke it and issue a replacement.

Select a gamemode and map

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

+gamemode sandbox +map gm_construct

The same parameters work on Windows and Linux. To change or reload a map while the server is running, enter:

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

If a custom gamemode or map fails to load, check the spelling, confirm that its files are present on the server, and read the console output for the first missing-file or mount error. A client having the content locally does not repair a server-side installation problem.

Add Workshop content

Use a Workshop collection

Create a Steam Workshop collection containing the addons, then make the collection public or unlisted. The server process must be able to access the collection; a private collection is not suitable. Add its numeric ID at launch:

+host_workshop_collection WORKSHOPID

At startup, the server downloads and mounts the collection. A complete example is:

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

Use the equivalent parameters with srcds_run on Linux. Keep the collection organized and remove abandoned or incompatible addons; a server can start while a particular addon later causes Lua errors, missing assets, or client download failures.

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

Use the newer Workshop ID configuration

A newer configuration format, cfg/srcds_workshop_ids.txt, is documented for version 2026.09.22 and later. If your server is on that version or newer, use the documented file format to maintain Workshop IDs in configuration instead of putting every ID on the command line.

Control automatic updates

Set host_workshop_autoupdate 0 to disable automatic addon updates. This gives you change control, but it also means the server can retain stale maps or content and clients may no longer be able to join. If you disable automatic updates, schedule a review and update cycle.

Make the server reachable

The process must be allowed through the operating-system firewall, and a server behind a router may require port forwarding to the machine’s private address. The exact game and query ports depend on your launch configuration and any other services on the host, so document the ports you choose and open only those ports. Test from a different network rather than relying on a connection from the same machine.

  • Give the host a stable local address if you use router forwarding.
  • Allow the dedicated-server executable through the firewall on the intended network profile.
  • Check that another server instance is not already bound to the same configured ports.
  • Share the public address only after testing from outside the local network.

If the server appears in a local browser but not to remote players, investigate the firewall, router forwarding, public address, and provider-level filtering before changing gamemode or Workshop settings.

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.

Update and reboot safely

Routine update sequence

  1. Warn players and stop the server cleanly.
  2. Back up configuration files, custom scripts, and any world or data files your gamemode uses.
  3. Run SteamCMD with app_update 4020 validate.
  4. Review the console for download or validation errors.
  5. Start the server with the same gamemode, map, Workshop, and GSLT parameters.
  6. Connect with a test account before announcing that the server is open.

Stopping first is important: updating while the process is running can fail. On Linux, place the update command in the maintenance script, but do not let an automated job update files underneath a live process.

Plan for reboots

srcds_run can restart after a crash, but it is not a reboot supervisor. Use a service manager, a monitored process, or the documented @reboot crontab approach. Whichever method you choose, confirm that it preserves the working directory, token, Workshop parameters, and log location.

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

Experimental branches and macOS support

Choose a branch deliberately

SteamCMD can select experimental branches with:

-beta dev
-beta prerelease
-beta x86-64

These branches may be unstable. To return to the stable public branch, explicitly select:

-beta public validate

Simply removing -beta is not sufficient to switch back. Record the branch in your update procedure so a later validation does not silently leave the server on an unintended build.

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

macOS is not an available server platform

Dedicated-server files for macOS are no longer shipped. Use a supported Windows or Linux host instead; running the normal macOS client does not replace a dedicated-server installation.

Troubleshoot common failures

Symptom Likely cause Action
SteamCMD update fails after changing folders force_install_dir interaction or a running server Stop the server, retry without force_install_dir, or install into a new directory, then run app_update 4020 validate.
Startup rejects the account token Wrong App ID, reused token, invalid token, or expired token Create a token for base-game App ID 4000, use a unique token for this instance, and replace it if expired.
Linux reports missing linux32/steamcmd Missing 32-bit compatibility libraries on a 64-bit system Install the distribution’s 32-bit libraries, then rerun SteamCMD.
Server starts but players cannot join a Workshop map Collection is private, content is stale, or an addon failed to mount Make the collection public or unlisted, review the startup log, and update or remove the failing content.
Players lose the server after a reboot No reboot supervisor Configure a service manager or an @reboot entry and test it with a controlled restart.
Map or gamemode is not found Incorrect folder/map name or missing server files Use the gamemode folder name, omit .bsp from the map value, and verify the files on the server.
Server is visible locally but not remotely Firewall, router forwarding, address, or upstream filtering Check the configured ports and forwarding from an outside network; verify that only one process owns the ports.

Self-hosting versus managed hosting

A self-hosted machine gives you direct console and filesystem access, while a managed service trades some control for provider-operated infrastructure. The right choice depends on whether you want to maintain the operating system and recovery process yourself.

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
Decision area Self-hosted server Managed server
Operating-system support You choose and maintain Windows or Linux; macOS dedicated files are unavailable. The provider supplies a supported operating-system image; verify that it supports the branch and addons you need.
CPU and memory headroom You select capacity, but there is no universal published player or hardware benchmark; measure your own gamemode and addon load. Capacity is limited by the selected plan; confirm upgrade options and resource isolation.
Player slots Set with +maxplayers and validate performance under real load. Usually controlled by the plan or panel; confirm the allowed slot count.
Workshop collections You manage collection visibility, IDs, updates, and failed addons. Confirm that the panel exposes collection IDs and supports the current Workshop configuration format.
GSLT configuration You create, secure, rotate, and pass the token with +sv_setsteamaccount. Check whether you supply the token yourself and where the panel stores it.
Backup and restore You design the backup schedule and test restores. Review retention, restore procedure, and whether configuration and addon data are included.
Updates You stop the server and run SteamCMD validation or an update script. Determine whether updates are automatic, scheduled, or manual, and whether you can pin a branch.
Crash and reboot recovery You configure srcds_run, a service manager, or cron. Ask whether the provider restarts the process and the machine after failure.
Network and port controls You control firewall rules, router forwarding, and port allocation. Confirm exposed ports, dedicated addresses, and any provider firewall restrictions.
Console access Full local or remote shell and console access. Often a web console or restricted terminal; verify command and file access.
Total monthly cost Depends on electricity, hardware, bandwidth, and administration. Depends on the chosen plan, location, backups, and extras; no universal price applies.

Pre-launch checklist

  • SteamCMD installed and app 4020 validated successfully.
  • Server starts with the correct executable: srcds.exe on Windows or srcds_run on Linux.
  • A unique GSLT was created with base-game App ID 4000 and supplied through +sv_setsteamaccount.
  • +gamemode uses the correct folder name and +map uses the map filename without .bsp.
  • Workshop collections are public or unlisted, and their IDs are configured with +host_workshop_collection or the supported cfg/srcds_workshop_ids.txt format.
  • Firewall and router rules were tested from outside the host network.
  • Updates are performed with the server stopped, and backups exist before changes.
  • Linux reboot recovery is configured and tested; Windows has an equivalent startup or service plan if unattended operation is required.
  • The chosen branch is recorded, especially when using dev, prerelease, or x86-64.

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.

dedicated serversGame Server AdministrationGarry's ModLinux gamingSteamCMDWindows gaming

Leave a reply

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

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.

Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Outdated Drivers Are Slowing You DownFree scan - exact matches

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.