The best Garry’s Mod server configuration for a private group is a small, predictable baseline—not a magic set of extreme rates. Start with a dedicated server running Sandbox, a clear hostname, a password, a player limit that matches your friends, one known map, and a short Workshop collection. Put process-start options in the launch script, runtime ConVars in the normal configuration files, and tune networking only after observing a busy session with your actual addons.
This approach is easier to troubleshoot than copying a large public-server configuration. It also gives you a rollback point when a game update, map, or addon changes behavior.
What settings should a private Garry’s Mod server use first?
Use a dedicated Sandbox server with a recognizable name, a private password, a group-sized player cap, and a single known map. Keep administration limited to trusted people and begin with only the Workshop addons you can identify and test.
A practical starting profile
- Gamemode:
sandbox, a neutral choice for building, tools, and mixed activities. - Map: one map your group has already tested; change maps later with the server’s orderly map-change command.
- Hostname: a name that tells friends exactly which server to join.
- Privacy: set a password and share it only with the intended group.
- Player cap: set it to the number of players your host and group actually support rather than choosing a public-server maximum.
- Addons: one short, documented Workshop collection before adding legacy or experimental content.
- Administration: grant operator privileges only to people who need them, and keep a record of who has access.
These choices are a baseline for a private Sandbox group. Roleplay, PvP, and survival modes often require a different gamemode folder, map set, addon list, and rules; do not treat this profile as a drop-in configuration for them.
How do I install and start a dedicated GMod server?
Install and update the server with SteamCMD, then launch the server executable with the documented startup parameters. Garry’s Mod uses app ID 4020; the documented setup also requires a Steam Game Server Login Token.
Install or update with SteamCMD
- Install SteamCMD on the machine that will host the server.
- Run SteamCMD and log in as appropriate for the dedicated-server download.
- Use the Garry’s Mod app ID
4020to install or update the server files. - Exit SteamCMD after the update completes, then keep the install directory as the working directory for your launch script.
Schedule updates during a maintenance window. Updating while friends are playing can interrupt the process and can change the behavior of maps or addons before you have a known-good backup.
Build a launch script
Facepunch’s documented launch examples use srcds.exe with process-start parameters such as +maxplayers, +gamemode, +map, and +sv_setsteamaccount. A Windows batch file can therefore follow this pattern:
srcds.exe +maxplayers 8 +gamemode sandbox +map gm_construct +sv_setsteamaccount YOUR_TOKEN
Replace the player count, map, and token with your own values. Keep the token private; do not paste it into screenshots, public posts, or an unprotected script repository. The documented setup also exposes sv_location for the server’s location setting, which you can add when your deployment needs it.
Use the equivalent executable and shell syntax for your operating system, but preserve the same separation: launch arguments establish the process, while server configuration files and runtime commands control the running instance.
Which settings belong in the launch command and which belong in server.cfg?
Put startup-only or process-defining options in the launch script. Put ordinary runtime ConVars in the server’s configuration workflow, commonly server.cfg or a gamemode-specific configuration file.
Launch-script settings
+maxplayersfor the player limit established when the process starts.+gamemodefor the gamemode folder to load.+mapfor the initial map.+sv_setsteamaccountfor the Steam Game Server Login Token required by the documented setup.+host_workshop_collectionfor a Workshop collection that should be mounted at startup.-noworkshopor-noaddonswhen isolating Workshop or legacy-addon problems.
Runtime configuration
Use configuration files or the server console for values that can be applied after startup, such as a hostname, password, and network rate limits. A command-line argument in the form +<ConVar Name> <value> sets a ConVar after startup, but the command-line reference warns that server.cfg is too late for at least one startup-only requirement. If a setting affects which files or systems are loaded, keep it in the launch script instead of assuming a later config line will work.
Check the current build before copying a guide
ConVars can change between game builds and gamemodes. From the server console, use find to search for a name or keyword and cvarlist to inspect the variables exposed by the current build. This prevents an old guide from silently supplying a removed, renamed, or gamemode-specific setting.
How should I choose the gamemode, map, and privacy settings?
Choose the gamemode by the activity your group wants, then pair it with the maps and addons that mode documents. For a general-purpose private session, Sandbox is the least restrictive starting point.
Sandbox for mixed groups
Sandbox supports building and general tools without imposing a role-specific ruleset. Start it with +gamemode sandbox and a known map such as +map gm_construct, then add maps only after the initial session is stable.
Specialized modes
Roleplay, PvP, survival, and other specialized modes should be selected by their exact folder name. Their documentation may require a particular map rotation, collection, or additional server files. Confirm those requirements before changing the launch command; a mode can appear to start while missing a map or dependency it needs during play.
Changing maps safely
Use changelevel MAPNAME for an orderly map change rather than killing and restarting the process for every rotation. Test the destination map with the active addon set, because a map can load correctly on its own but fail when a collection adds scripts or entities.
Hostname and password
A clear hostname helps friends distinguish your server from public listings. Set a password through the documented password ConVar and distribute it privately. The documentation exposes the controls but does not prescribe a particular password policy, so choose one appropriate to your group and change it if it leaks.
How do I install Workshop addons on a dedicated server?
Create a Workshop collection, make it public or unlisted so the dedicated server can access it, and add +host_workshop_collection WORKSHOPID to the startup command. The server downloads and mounts the collection when it starts.
Collection setup
- Create or select a Workshop collection containing the maps, weapons, tools, and scripts your group needs.
- Set the collection visibility to public or unlisted; a private collection is not available to the dedicated-server process.
- Copy the collection’s numeric ID.
- Add
+host_workshop_collection WORKSHOPIDto the launch script, replacingWORKSHOPIDwith that number. - Restart the server and watch the console for download and mount messages before inviting players.
Collections can be nested, so a top-level collection may include other collections. That convenience also increases the chance of an unexpected dependency; keep a written list of what the top-level collection includes.
Decide whether to allow automatic updates
Facepunch documents host_workshop_autoupdate 0 as a way to disable automatic Workshop updates. Disabling updates can prevent an addon from changing unexpectedly during your group’s play period, but it can also leave the server on stale maps or content. Record the choice in your maintenance notes and update deliberately during a test window.
Version-sensitive Workshop file
The Workshop documentation says cfg/srcds_workshop_ids.txt is available in Garry’s Mod version 2026.09.22 or newer. Treat that as version-sensitive: check the file after updates rather than assuming an older installation has it or that its behavior will remain unchanged.
Why can players still miss addon files after the server mounts them?
Mounting an addon on the server does not prove that every client has the files required to display or run it. Choose a client-download method and test it with a clean client before your first group session.
| Method | What it requires | When it fits | Main trade-off |
|---|---|---|---|
| WorkshopDL | Workshop-hosted content and a collection the server can access | The preferred path for Workshop addons | Content remains tied to Workshop availability and collection maintenance |
| FastDL | A separate web server containing the files and the sv_downloadurl setting |
Custom files that are not distributed through Workshop | You must maintain a second server and keep its file tree synchronized |
| ServerDL | sv_allowdownload enabled on the game server |
Small, simple cases where no web host is available | The documented limit is 64 KB/s, making it very slow for large content packs |
Facepunch describes ServerDL as obsolete because it is extremely slow at 64 KB/s and advises avoiding it. For a collection containing large maps or many models, use WorkshopDL where possible or set up FastDL correctly rather than making every player wait on ServerDL.
Diagnose missing content
- Confirm the item is in the collection and that the collection is public or unlisted.
- Restart the server and verify that the item downloads and mounts without an error.
- Join with a client that has not previously downloaded the addon; this catches missing client-delivery rules.
- If the content is not Workshop-hosted, verify the web-server path and
sv_downloadurlfor FastDL, or confirmsv_allowdownloadonly when accepting ServerDL’s speed limitation. - Remove the suspect addon temporarily and retest to distinguish a delivery failure from a script or dependency conflict.
What tickrate and network settings should a GMod server use?
Start with the documented default tickrate of 66.6666 and change it only when observation shows a reason. The documented tickrate range is 30–128; those bounds describe supported settings, not a promise that the highest value is best for your host or group.
Rate-related controls
The ConVars reference exposes controls including sv_maxrate, sv_minrate, sv_maxupdaterate, and sv_minupdaterate. These variables interact with client connections, server CPU, and available bandwidth, so copying a public server’s extreme values can create choke, loss, or unnecessary load on a smaller host.
A safe tuning method
- Begin with the default tickrate and conservative rate limits.
- Run a busy session using the real map and Workshop collection, not an empty test map.
- Observe player latency, choke or loss, server CPU utilization, and outbound bandwidth.
- Change one variable family at a time—for example, updaterate limits before changing several rate values together.
- Repeat the same type of session and compare observations.
- Keep a rollback copy of the previous launch script and configuration before each change.
No reviewed official source establishes one universal “best” tickrate or rate profile. The right value depends on the group’s connection quality, the host’s CPU and network headroom, the player count, and the addon workload.
How should I compare two possible server configurations?
Compare configurations by the workload and maintenance they create, not by a single tickrate number or a long list of copied ConVars.
| Comparison axis | Questions to answer |
|---|---|
| Gamemode goal | Does the mode support the activity—building, roleplay, PvP, or survival—and does it require a specific folder or map? |
| Player count | Does the cap match the group and leave CPU, memory, and network headroom? |
| Addon load | How many items are installed, which dependencies do they have, and how easy is it to isolate one that breaks? |
| Content delivery | Is the content on Workshop, or will FastDL and a separate web server be required? |
| Host capacity | Can the machine sustain the chosen map, scripts, tickrate, and player count during a busy session? |
| Privacy and administration | Are the password, hostname, operator list, and access records appropriate for the group? |
| Maintenance effort | Who updates the game and collection, tests changes, and restores the last known-good version? |
A small Sandbox collection may be the simplest option for friends, while a specialized mode with many dependencies can require more testing even at the same player count.
How do I administer and maintain the server safely?
Back up the files that define the server, update during a planned window, and keep a known-good copy you can restore if an addon or game update causes trouble.
Back up these items
- The launch script, including the collection ID and any startup flags.
server.cfgand gamemode-specific configuration files.- The Workshop collection ID and a written inventory of its items.
- FastDL files and the
sv_downloadurlvalue, if used. - Any custom maps, scripts, or other content not reproduced by Workshop.
- A note of the last working game build and addon state.
Use a maintenance window
- Stop the server cleanly and copy the current configuration and launch files.
- Update the dedicated-server files with SteamCMD.
- Review Workshop changes and decide whether to allow or defer addon updates.
- Start the server with the known collection and confirm the gamemode and map load.
- Join with a client, test essential tools and maps, and check downloads.
- Keep the previous files available until the group has completed a normal session.
Limit operator access
Operator privileges can change maps, execute commands, and alter the experience for everyone connected. Give access only to trusted administrators, record who has it, and remove it when someone no longer helps maintain the server.
How can I isolate an addon or Workshop failure?
Start by determining whether the failure comes from Workshop loading, legacy addons, a particular item, or the base gamemode. Use the documented launch flags to create a controlled comparison.
- Save the current launch script and configuration so you can restore them exactly.
- Restart with
-noworkshopto test whether Workshop content is responsible. - If legacy content is suspected, restart with
-noaddons. - Test the base gamemode and map with no optional content.
- Re-enable the Workshop collection, then add or remove suspect items in small groups until the failure returns.
- Check
findandcvarlistfor the current build’s available controls before applying a setting from an older guide.
This process takes longer than deleting the whole collection, but it identifies the smallest change that caused the problem and preserves a usable configuration for the rest of the group.
What common mistakes make a private GMod server unreliable?
Most avoidable failures come from mixing startup and runtime settings, adding too much content at once, or changing rates without measuring the result.
- Putting a startup-only requirement in
server.cfg: move process-defining options to the launch script. - Using a private Workshop collection: switch it to public or unlisted so the dedicated server can access it.
- Assuming server mounting equals client delivery: test with a clean client and choose WorkshopDL or FastDL deliberately.
- Relying on ServerDL for large packs: its documented 64 KB/s limit makes it unsuitable for substantial content.
- Copying extreme tickrate or rate values: return to the documented default and tune while watching CPU, bandwidth, latency, choke, and loss.
- Adding dozens of addons before the first test: keep the initial collection short enough that one failure can be isolated.
- Updating during play: use a maintenance window and retain the last known-good files.
- Giving everyone operator access: limit permissions and keep an access record.
What should I write down before inviting the group?
Record enough information that another trusted administrator can reproduce the server without guessing.
- The server hostname, password policy, player cap, gamemode, and initial map.
- The launch command, including app-related flags, collection ID, and token location without exposing the token itself.
- The Garry’s Mod build date and whether
cfg/srcds_workshop_ids.txtis present when using version 2026.09.22 or newer. - The Workshop collection’s visibility, update policy, nested collections, and known dependencies.
- The selected download method and any FastDL web-server path.
- The current tickrate and rate settings, plus observations from the last busy session.
- The backup location and the steps to restore the previous configuration.
A short maintenance record turns a private server from a one-person experiment into a repeatable setup that the group can keep running.
Frequently Asked Questions
Can I run a private GMod server without a dedicated machine?
The documented setup is for a dedicated server process installed and updated with SteamCMD. A separate machine is not specified as mandatory, but the host must have enough CPU, memory, storage, and network headroom for the selected map, player count, and addons.
Why does my Workshop collection load on one map but not another?
Maps and gamemodes can require different assets or scripts, and nested collections may introduce dependencies that only appear on a particular map. Test the destination map with the full collection and inspect the server console for the first missing or failing item.
Should I disable Workshop auto-updates permanently?
No single policy fits every group. Setting host_workshop_autoupdate 0 can prevent surprise changes, but it can also leave stale maps or content; review updates deliberately during maintenance and re-enable automatic updates when that trade-off is acceptable.
What is the fastest way to return to a working configuration?
Stop the server, restore the backed-up launch script and configuration, and use the recorded collection and content-delivery settings. If the cause is unknown, start with -noworkshop or -noaddons to confirm whether optional content is involved before restoring items.