Playing Garry's Mod With Friends
There are four ways to get a group into the same Garry's Mod world, and they are not interchangeable. Picking the wrong one is why sessions end with someone unable to join, someone else seeing purple textures, and the world disappearing when the host goes to bed.
The one question that decides it. Does the world need to exist when you are not playing? If yes, you want a dedicated server. If no, hosting from your own game is simpler and free.
The four options
| Steam invite | Host from your game | Your own dedicated server | Rented server | |
|---|---|---|---|---|
| Setup | None | None | SteamCMD, config files, port forwarding | None |
| Who pays the performance cost | The host | The host, running game and server at once | The machine it runs on | The provider |
| World exists when you log off | No | No | Yes | Yes |
| Friends need your addons | Yes, and they must fetch them | Yes, and they must fetch them | The server can deliver them | The server can deliver them |
| Realistic group size | A handful | A handful | As many as the hardware allows | As many as the plan allows |
| Cost | Free | Free | Free, plus your electricity and your router | Monthly |
1. Invite through Steam
The lowest-friction option. Start a game, open the Steam overlay, invite from your friends list. Steam handles the connection, so nobody has to know an address and you do not have to touch your router.
The limits are the same as any listen server: your machine is running both the game and the server, so your own frame rate and everyone's ping depend on it, and the world ends when you close the game. It suits an evening of sandbox messing about and nothing longer.
2. Host from your own game, with an address
Start a new game and set it to allow other players. This is still a listen server, so it carries the same costs as above, but friends can connect directly rather than through your friends list.
This is where most "my friend cannot join" problems come from. Two settings decide it:
sv_lanmust be 0 for anyone outside your own network to connect. If it is 1, the server refuses everything from the internet, which looks exactly like a broken connection.- Your router has to forward the game port, 27015 by default, on both UDP and TCP. Source uses the same port for gameplay and for the queries that make a server visible.
If you cannot forward ports, because of a shared connection or carrier-grade NAT, direct hosting will not work no matter what you change in game. Steam invites still will, and a rented server will, because the listening happens somewhere else.
3. Run your own dedicated server
A dedicated server is a separate program from the game. It has no graphics, it keeps running when you close Garry's Mod, and it does not steal performance from your own session. Installed through SteamCMD, configured through garrysmod/cfg/server.cfg and startup flags.
Worth doing if you have a spare machine and want to learn how it works. Full walkthrough in dedicated-server setup, and the settings that matter in startup flags and server.cfg.
The honest downside: it is your machine, your router, your uptime and your backups. A server on the computer you also game on is a listen server wearing a costume.
4. Rent one
The same dedicated server, on hardware that is already reachable from the internet and already configured. No port forwarding, nothing running on your own machine, and the world is there when someone logs in at three in the morning. You pay monthly for that.
Worth it when the group is more than a few people, when you have a Workshop collection you want delivered automatically, or when you are tired of being the person everyone waits for.
The problem every option shares: content
This catches groups on every one of the four routes. Your friends do not automatically have your addons. Your machine has every file because you subscribed to them over months. A friend joining for the first time has none of it, and the game will show them ERROR signs and purple checkerboards rather than telling them why.
How you solve it depends on the route:
- Steam invite or listen server: there is no delivery mechanism. Put your addons in a public Workshop collection and have everyone subscribe to it before you start. Do this once, properly, and most of the evening's problems disappear.
- Dedicated server, yours or rented: point the server at a collection with
host_workshop_collectionand joining clients download it themselves. This is the main practical reason groups move to a dedicated server.
Either way, content that comes from another Source game, Counter-Strike: Source most often, cannot be delivered by anyone. Each player has to own and mount it. Check that before you build a map list around it.
Settings worth getting right on day one
| Setting | Why |
|---|---|
hostname | What your server is called in the browser and in your friends' history. Set it before anyone joins, so reconnecting works. |
sv_password | Turns a public server into a private one. The simplest way to keep a friends-only session friends-only. |
maxplayers | Set it to the group you actually have. It is fixed at startup, and a high number reserves resources for players who never arrive. |
sv_alltalk | Whether everyone hears everyone, or only teammates. For a friends' sandbox server you almost certainly want it on. |
rcon_password | Your admin channel. An empty one does not mean "safe", it means rcon is off and you have no remote control at all. |
The convar reference the game itself is built against is Facepunch's: the Garry's Mod console variable list.
Related Garry's Mod guides
- Dedicated-server setup
- Server hardware requirements
- Startup flags and server.cfg
- Connection troubleshooting
- Missing textures and ERROR models
- Workshop collections and addons
Want the world to be there whenever anyone logs in, without running it on your own machine? Managed Garry's Mod hosting starts in minutes, delivers your Workshop collection to every player, and needs nothing from your router.