You launch your GMOD server, join the game, and every prop is covered in purple and black textures. The floor is a pink checkerboard. The walls display a red "ERROR". Counter-Strike: Source content is missing. It's the number one problem with every new Garry's Mod server, and it's fixed in two minutes once you know where to look. This guide covers the complete installation of a GMOD dedicated server, from the SteamCMD download to configuring Workshop addons, including mounting the CSS content that 90% of maps use.
Key takeaways
- The dedicated server is free and downloads through SteamCMD (AppID
4020, anonymous login). - A GSLT token (Game Server Login Token) is required for the server to appear in the public list. Without it, the server works but is only reachable by direct connection.
- Port to open: UDP 27015.
- Windows and Linux are both natively supported. Most GMOD servers run on Linux.
- Counter-Strike: Source content must be mounted separately to avoid missing textures on most maps.
Requirements
- RAM: 2 to 4 GB is enough for most GMOD servers. DarkRP servers with lots of players and addons can climb to 6 GB.
- CPU: GMOD runs on the Source Engine, which is single-threaded. Per-core frequency matters more than core count.
- Storage: 5 to 10 GB for the base server + CSS content + addons. SSD recommended for loading times.
- System: 64-bit Windows or Linux (macOS is no longer supported for dedicated servers).
- A Steam account to generate the GSLT token (a free account is enough, but it must have a phone number linked).
Generating the GSLT token
The GSLT (Game Server Login Token) identifies your server to Steam. Without this token, your server will not be visible in the server list and its ranking will be penalized. Each server needs its own token.
- Log in at steamcommunity.com/dev/managegameservers.
- In "App ID of base game", enter
4000(Garry's Mod's AppID, not the dedicated server's). - Enter a memo (your server's name, so you can find it again).
- Click "Create". Copy the generated token.
The token is tied to your Steam account. If your account is banned or restricted, all your servers lose their token. Never share your token publicly (in a server.cfg uploaded to GitHub, for example).
Once the token is configured and the server is visible in the Steam list, you can also list it on our Garry's Mod server list to attract more players.
Installing the server with SteamCMD
Download SteamCMD and run:
steamcmd +login anonymous +force_install_dir C:\gmod-server +app_update 4020 validate +quit
AppID 4020 is the Garry's Mod dedicated server (not 4000, which is the client game). The download uses an anonymous login. Running the same command again later updates the server.
Mounting Counter-Strike: Source content
This is the step that prevents the purple/black textures and the "ERROR" on props. Most GMOD maps and addons use Counter-Strike: Source assets. Without these files, missing textures show up as a pink/black checkerboard.
Download CSS through SteamCMD:
steamcmd +login anonymous +force_install_dir C:\css-content +app_update 232330 validate +quit
Then, on your GMOD server, edit the garrysmod/cfg/mount.cfg file and add:
"cstrike" "C:\css-content\cstrike"
Restart the server. CSS textures are now available for all the maps and addons that use them.
Our advice - Mount CSS right at installation, before you even test your first launch with players. Even in Sandbox, most popular maps (gm_construct is an exception) use CSS content. If your players see missing textures, they'll leave before giving you a chance to explain.
First launch
Create a start.bat file (Windows) in the server folder:
srcds.exe -console -game garrysmod +gamemode sandbox +map gm_construct +maxplayers 16 +sv_setsteamaccount YOUR_GSLT_TOKEN
Or on Linux:
./srcds_run -game garrysmod -console +gamemode sandbox +map gm_construct +maxplayers 16 +sv_setsteamaccount YOUR_GSLT_TOKEN
Launch parameters
| Parameter | Description |
|---|---|
-console |
Launches in console mode (no graphical interface) |
-game garrysmod |
Specifies the game (required) |
+gamemode sandbox |
Game mode: sandbox, terrortown (TTT), darkrp, prop_hunt, murder, cinema, etc. |
+map gm_construct |
Starting map |
+maxplayers 16 |
Max number of players |
+sv_setsteamaccount |
Your GSLT token (required for the public list) |
+host_workshop_collection |
ID of the Workshop collection to load (see the addons section) |
The first launch generates the garrysmod/ folder structure with the configuration, data and log folders. Wait for the server to display "VAC secure mode enabled" in the console before connecting.
Configuring server.cfg
The garrysmod/cfg/server.cfg file contains the base configuration. If the file doesn't exist, create it. The most useful settings:
| Setting | Description | Example |
|---|---|---|
hostname |
Server name in the list | hostname "My GMOD Server" |
sv_password |
Password to join (empty = public) | sv_password "" |
rcon_password |
Password for remote administration (RCON) | rcon_password "MyPassword" |
sv_location |
Server location (ISO 3166-1 country code: fr for France, be for Belgium, eu for the European Union) |
sv_location "fr" |
sv_loadingurl |
URL of a custom loading page | sv_loadingurl "https://mysite.com/loading" |
sbox_maxprops |
Max number of props per player (Sandbox) | sbox_maxprops 150 |
sbox_noclip |
Allows noclip for everyone (1) or OPs only (0) | sbox_noclip 1 |
Always set a strong rcon_password. RCON gives full remote admin access to the server. A weak or missing password is a direct security hole.
Choosing a game mode
Garry's Mod draws its richness from its game modes. The mode determines the experience and the type of community your server attracts.
| Game mode | Description | Typical players |
|---|---|---|
| Sandbox | Total freedom: build, spawn props, experiment with physics | 8 to 24 |
| DarkRP | Urban roleplay: jobs, money, drugs, police, raids. The most popular GMOD mode. | 32 to 64 |
| TTT (Trouble in Terrorist Town) | Deduction game: traitors vs innocents. Similar to Mafia/Werewolf. | 8 to 24 |
| PropHunt | Hide and seek: one team turns into props, the other searches and shoots. | 8 to 24 |
| Murder | One murderer, one detective, innocents. Deduction and tension. | 8 to 16 |
| Cinema | Players watch videos together in a virtual movie theater. | 16 to 32 |
Our take - DarkRP is tempting because it's the most played mode, but it's also the most saturated. Hundreds of DarkRP servers are fighting over the same players. If you want to stand out without investing months of development, TTT and PropHunt are smarter choices: setup is simple, the community is loyal, and the competition is far less fierce. A good TTT server with 20 regular players is better than an empty 64-slot DarkRP server.
Adding Workshop addons
GMOD uses the Steam Workshop for addons (maps, weapons, models, tools, gamemodes). The cleanest procedure is to create a Workshop collection containing all your server's addons.
- Go to the Garry's Mod Steam Workshop and create a new collection.
- Add all the addons you want on your server.
- Get the collection ID (the number in the collection page's URL).
- Add to your launch command:
+host_workshop_collection COLLECTION_ID - You'll also need a Steam Web API key. Generate it at steamcommunity.com/dev/apikey.
- Add the key in server.cfg or in the launch command:
-authkey YOUR_API_KEY
Players automatically download the collection's addons when they join the server. Without the Workshop collection, players have to install each addon manually, which nobody does.
A common trap: adding an addon to the server but forgetting to add it to the Workshop collection. The server loads the addon, but players don't download it automatically and see missing textures or errors. The collection must always match exactly the addons installed on the server.
Administration with ULX
ULX (with ULib) is the most widely used administration system on GMOD servers. It adds admin commands, an in-game menu, and a group/permissions system (superadmin, admin, moderator, user).
- Download ULib and ULX from the Steam Workshop or GitHub.
- Place the folders in
garrysmod/addons/. - Restart the server.
- In game, open the console and type
ulx adduser YourUsername superadminto give yourself admin rights.
ULX lets you kick, ban, mute, slay, teleport, change the map, manage groups and run server commands from an in-game menu (default key: !menu in chat). It's the GMOD equivalent of LuckPerms + EssentialsX in the Minecraft ecosystem.
Network configuration
Garry's Mod communicates over UDP on port 27015 by default.
| Port | Protocol | Usage |
|---|---|---|
| 27015 | UDP | Game port (player connections + Steam query) |
| 27015 | TCP | RCON (if enabled, same port by default) |
Windows firewall:New-NetFirewallRule -DisplayName "GMOD Server" -Direction Inbound -Protocol UDP -LocalPort 27015 -Action Allow
Linux firewall (ufw): sudo ufw allow 27015
Linux firewall (iptables):sudo iptables -A INPUT -p udp --dport 27015 -j ACCEPTsudo iptables -A INPUT -p tcp --dport 27015 -j ACCEPT
If you host at home, forward UDP and TCP ports 27015 on your router to the local IP of the server machine.
Hosting: at home vs server host
Self-hosted: GMOD is one of the lightest servers to host (2-4 GB of RAM, the Source Engine is old and optimized). Fine for a Sandbox or TTT server with friends. The limits are the same as for any self-hosting: exposed IP, no DDoS protection, availability depending on your machine.
Server host: dedicated IP, 24/7 availability, DDoS protection, a panel with server.cfg configuration and addon management. For a community DarkRP server aiming for 32+ players, a host is the standard choice.
Frequently Asked Questions
Is the GMOD dedicated server free?
Yes. The server tool (AppID 4020) downloads for free through SteamCMD with an anonymous login. Only your players need to own Garry's Mod to connect.
Why do I have purple/black textures everywhere?
Counter-Strike: Source content is missing. Download it through SteamCMD (AppID 232330) and mount it in garrysmod/cfg/mount.cfg. It's the most common problem on GMOD servers and it's fixed in two minutes.
Is the GSLT token mandatory?
Technically no, the server runs without it. But without a token, it doesn't appear in the public server list and its ranking is penalized by Steam. Players will only be able to join it by direct connection (IP + port). For a public server, the token is essential.
How do I switch to DarkRP?
Download the DarkRP framework from GitHub, place it in garrysmod/gamemodes/, and change the launch parameter to +gamemode darkrp. DarkRP needs additional addons to be playable (jobs, weapons, HUD, door system). Most admins use DarkRP Modification (DarkRPMod) to customize jobs and rules without touching the framework's code.
Do players need to own CSS?
Players don't need to own Counter-Strike: Source. The content is mounted on the server side and downloaded by players on connection if you use a Workshop collection containing the necessary textures. Some servers also provide a "CSS Content Pack" as a Workshop addon so players automatically have all the textures.
How do I get my server to show up in the Steam list?
Three conditions: a valid GSLT token (+sv_setsteamaccount), UDP port 27015 open and reachable from outside, and the sv_location variable set in server.cfg (for example sv_location "fr" for France). If all three are met and the server still doesn't show up, wait a few minutes: propagation to the Steam list can take up to 5 minutes after startup.


No comments yet.