# Migrating from a Garry's Mod Server to s&box (/docs/sbox/migrating-from-gmod)



s\&box is Facepunch's spiritual successor to Garry's Mod, but the dedicated server is a fresh codebase on .NET, not Source Engine 1. If you've been running GMod servers for years, most of your operator instincts still apply — but several specific things you used in GMod either don't exist in s\&box or work very differently. This page maps the GMod-side concept to its s\&box equivalent (or to "this no longer exists, here's why").

Quick summary [#quick-summary]

| Garry's Mod                    | s\&box                                          | Notes                                                                                           |
| ------------------------------ | ----------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| `server.cfg`                   | **Doesn't exist**                               | All operator config is launch flags + `users/config.json`.                                      |
| `+gamemode sandbox`            | `+game facepunch.sandbox`                       | Idents are `org.name` lowercase; see [Finding Game Packages](/docs/sbox/finding-game-packages). |
| `+map gm_flatgrass`            | Second arg to `+game`                           | `+game facepunch.sandbox garry.flatgrass`.                                                      |
| `hostname "My Server"` ConVar  | `+hostname My Server`                           | Launch flag, not a ConVar.                                                                      |
| Steam Workshop addons          | Game packages on [sbox.game](https://sbox.game) | Single packages, no addon folder, no GMA files.                                                 |
| `addons/` folder               | **Doesn't exist**                               | Packages are streamed from sbox.game; no manual install.                                        |
| RCON                           | **Doesn't exist**                               | Use the panel **Web Console** instead.                                                          |
| `users.txt` (ULX/etc.)         | `users/config.json`                             | Same idea, JSON instead of plaintext. See [User Permissions](/docs/sbox/user-permissions).      |
| `sv_cheats 1`                  | ConVar with `Cheat` flag                        | The flag exists in `Sandbox.ConVarFlags`; gamemodes opt in.                                     |
| GSLT (game server login token) | `+net_game_server_token`                        | Same concept, same Steam page. See [Server Token](/docs/sbox/server-token).                     |
| ConVar discovery (`find ...`)  | Limited / gamemode-defined                      | s\&box doesn't have GMod's massive ConVar surface; see below.                                   |
| Map cycle / mapvote            | Gamemode-defined                                | No engine-level rotation; some gamemodes implement their own.                                   |

What carries over (in spirit) [#what-carries-over-in-spirit]

**The server-as-host-of-a-gamemode mental model.** You still pick a gamemode, pick a map, give it a name, run it, players join. The vocabulary changed but the workflow is recognizable.

**SteamCMD installs the binary.** App ID changes (`4020` for GMod → `1892930` for s\&box), but the `app_update ... validate +quit` flow is the same. See [Install the Server](/docs/sbox/install-server).

**Steam-account-based admin.** You still gate admin actions on a player's Steam ID. The file is JSON instead of `ulx_groups.txt`-style, and the permission concept is "claims" instead of "ranks," but the idea is the same: list the SteamID64s that get to do things.

**GSLT-style persistent server identity.** s\&box's `+net_game_server_token` plays the same role as GMod's GSLT — keep your server's Steam ID stable across restarts so favourites work.

What doesn't carry over [#what-doesnt-carry-over]

**No `server.cfg`.** Don't go looking for one. The entire operator surface is three launch flags (`+game`, `+hostname`, `+net_game_server_token`), one JSON file (`users/config.json`), and a branch choice (public vs staging). That's it. Anything beyond that is configured by the gamemode itself, not by you. See [Gamemode vs Operator Config](/docs/sbox/gamemode-vs-operator-config) for the full split.

**No `addons/` folder.** GMod's "drop a folder full of Lua/GMA files in and restart" model doesn't exist. s\&box loads exactly one game package at a time (the one you set with `+game`), and that package brings everything with it. If you used to layer DarkRP + a bunch of weapon addons + a custom map pack, in s\&box that would be one package authored by someone, with all those features built in.

**No Workshop.** sbox.game replaces it. There's no separate "subscribe to addons" UI — players who join your server stream the game package from sbox.game's cloud automatically.

**No RCON.** There's no documented RCON protocol for s\&box at time of writing. If you used RCON for remote admin, the panel's **Web Console** is the closest equivalent — it's a live in-browser console while the server is running. Programmatic remote admin doesn't exist yet.

**No giant ConVar list.** GMod exposes thousands of ConVars; s\&box exposes very few engine-level ones, and gamemodes define their own narrow set. Don't expect a `cl_updaterate` or `sv_friction` to tweak. The engine's `NetworkingSettings.UpdateRate` (the rough equivalent of tickrate) is set by the gamemode, not by you.

**No legacy Source map formats.** GMod loaded BSPs from CSS, HL2, etc. directly. s\&box maps are sbox.game packages and don't accept arbitrary BSPs from old games — though Facepunch has been adding mount paths for some Source content. If you were planning a "let's import our CSS map collection" weekend, check the gamemode's docs for what it accepts.

Translating a typical GMod launch line [#translating-a-typical-gmod-launch-line]

Old GMod-style:

```
srcds.exe -console -game garrysmod +map gm_flatgrass +maxplayers 16 +gamemode sandbox +host_workshop_collection 12345 +hostname "My GMod Server"
```

s\&box equivalent:

```
sbox-server.exe +game facepunch.sandbox garry.flatgrass +hostname "My s&box Server"
```

What you lose: `+maxplayers` (gamemode-controlled now), workshop collection (single package only), `srcds` flags. What you gain: a dramatically smaller config surface to maintain.

What about my GMod admins file? [#what-about-my-gmod-admins-file]

Pull the SteamID64s out of your `users.txt` / ULX config and drop them into `users/config.json` with whatever claims your s\&box gamemode recognises. Defaults are `kick`, `ban`, `restart`. If the gamemode supports custom claims (`economy.refund`, `world.edit`, etc.), check its docs. See [User Permissions](/docs/sbox/user-permissions).

Should I move my community over yet? [#should-i-move-my-community-over-yet]

s\&box is in active development. The dedicated server is real and runs, but the platform is still pre-release in places — `+net_game_server_token` only fully works at release, the gamemode ecosystem is much smaller than GMod's, and tooling like RCON/admin dashboards doesn't exist yet. Most operators are running s\&box servers for testing and friend groups, with their main GMod server still up. Plan accordingly.

Related Guides [#related-guides]

* [Install the Server](/docs/sbox/install-server)
* [Launch Parameters](/docs/sbox/launch-parameters)
* [User Permissions](/docs/sbox/user-permissions)
* [Server Token](/docs/sbox/server-token)
* [Gamemode vs Operator Config](/docs/sbox/gamemode-vs-operator-config)
* [Finding Game Packages](/docs/sbox/finding-game-packages)
