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.
Godlike.Host offers hosted Garry's Mod servers with its own game panel, SFTP access and free DDoS protection, if you would rather not host it yourself.
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.
| # | Preview | Product | Price | |
|---|---|---|---|---|
| 1 |
|
Tibers Box 2 Lite | Buy on Amazon | |
| 2 |
|
Allplay Mori Board Game, Full of Tricky, Clever Decisions, 3-5 Players | $24.00 | Buy on Amazon |
| 3 |
|
Green monster persecution | Buy on Amazon | |
| 4 |
|
Clockwork Game Design | $76.29 | Buy on Amazon |
| 5 |
|
Sandbox Games (Video Games) | $8.71 | Buy on Amazon |
As an Amazon Associate I earn from qualifying purchases.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstall- 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
- 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.
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:
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Rank #2
- 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:
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →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
- 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.
Recommended Free Tools
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:
Rank #4
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.
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.
Best Value
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.
Update and reboot safely
Routine update sequence
- Warn players and stop the server cleanly.
- Back up configuration files, custom scripts, and any world or data files your gamemode uses.
- Run SteamCMD with
app_update 4020 validate. - Review the console for download or validation errors.
- Start the server with the same gamemode, map, Workshop, and GSLT parameters.
- 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.
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.
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
| 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
4020validated successfully. - Server starts with the correct executable:
srcds.exeon Windows orsrcds_runon Linux. - A unique GSLT was created with base-game App ID
4000and supplied through+sv_setsteamaccount. +gamemodeuses the correct folder name and+mapuses the map filename without.bsp.- Workshop collections are public or unlisted, and their IDs are configured with
+host_workshop_collectionor the supportedcfg/srcds_workshop_ids.txtformat. - 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, orx86-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.

