# Gamemode vs Operator Config — What You Can and Can't Tweak (/docs/sbox/gamemode-vs-operator-config)



People hosting their first s\&box server often look for `tickrate`, `max_players`, or `RCON` and get told "those don't exist." That's half right. They exist — they're just not operator-side knobs. The engine exposes them to the **gamemode** (the package you load with `+game`), and the gamemode either ships sensible defaults or lets its own UI tune them. This page maps the engine's actual config surface so you know which side of the line each setting is on.

What the operator controls [#what-the-operator-controls]

These are yours. Set them via launch flags, the panel, or files in your server install:

| Setting                          | How you set it                                                                             |
| -------------------------------- | ------------------------------------------------------------------------------------------ |
| Which game to host               | `+game <ident>` — see [Launch Parameters](/docs/sbox/launch-parameters)                    |
| Starting map                     | Optional second arg to `+game`                                                             |
| Hostname (lobby title)           | `+hostname <name>`                                                                         |
| Persistent Steam ID              | `+net_game_server_token <token>` — see [Server Token](/docs/sbox/server-token)             |
| Engine branch                    | SteamCMD `-beta staging` or panel toggle — see [Staging Branch](/docs/sbox/staging-branch) |
| Admin claims per Steam account   | `users/config.json` — see [User Permissions](/docs/sbox/user-permissions)                  |
| When to update the server binary | Steam Update in the panel, or SteamCMD — see [Updating](/docs/sbox/updating-server)        |
| Backup/restore snapshots         | Cloud Backup / Cloud Restore in the panel                                                  |

That's the entire operator surface. Everything below is the gamemode's job.

What the gamemode controls [#what-the-gamemode-controls]

These are real, documented settings in `Sandbox.Engine` — but they're set in the gamemode's code or its in-game UI, not by you on the launch line. If you need one of them changed, the gamemode's publisher is who you talk to.

LobbyConfig [#lobbyconfig]

The lobby the server creates is configured by the gamemode via `Sandbox.Network.LobbyConfig`:

| Property                | What it controls                                                                      |
| ----------------------- | ------------------------------------------------------------------------------------- |
| `MaxPlayers`            | Max players. **Default comes from the game package** — there is no operator override. |
| `Privacy`               | `Public`, `Private`, or `FriendsOnly`.                                                |
| `Hidden`                | Whether the lobby appears in the server list. (Still queryable programmatically.)     |
| `Name`                  | Lobby name. Defaults to the value of `+hostname` when not set by the gamemode.        |
| `DestroyWhenHostLeaves` | P2P-only — auto-destroy the lobby when the host disconnects.                          |
| `AutoSwitchToBestHost`  | P2P-only — periodically switch to the best-pinged candidate as host.                  |

NetworkingSettings [#networkingsettings]

The engine-level networking config a gamemode bakes in via `Sandbox.NetworkingSettings`:

| Property                     | What it controls                                                                                                                                              |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `UpdateRate`                 | The network tick rate — how often the server pushes updates to clients. **This is the closest thing s\&box has to "tickrate."** Gamemode-set, not a CLI flag. |
| `DestroyLobbyWhenHostLeaves` | Disband the lobby when the host leaves.                                                                                                                       |
| `AutoSwitchToBestHost`       | Periodically switch to the best host candidate.                                                                                                               |
| `ClientsCanSpawnObjects`     | Default permission for clients to create networked objects. Anti-griefing.                                                                                    |
| `ClientsCanRefreshObjects`   | Default permission for clients to refresh objects they own.                                                                                                   |
| `ClientsCanDestroyObjects`   | Default permission for clients to destroy objects they own.                                                                                                   |

Per-connection overrides [#per-connection-overrides]

Even when the gamemode sets defaults via `NetworkingSettings`, it can override them per-connection at runtime through the `Connection` class — for example, marking one player's `CanSpawnObjects` to `false` to silence a griefer. This is a gamemode capability, not an operator one.

What doesn't exist on either side [#what-doesnt-exist-on-either-side]

Some things people search for genuinely aren't there yet:

* **RCON** — no protocol. Use the panel's **Web Console** for live access.
* **Engine-level map cycle** — the engine doesn't rotate maps. Some gamemodes implement their own rotation; most don't.
* **`server.cfg` style file** — there is no global engine config file you can edit between launch flags and `users/config.json`.
* **Workshop / addon folder** — you load exactly one game package per server. See [Migrating from GMod](/docs/sbox/migrating-from-gmod).
* **Public, exhaustive ConVar list** — gamemodes define their own narrow ConVars; the engine exposes very few that operators would care about.

Common operator → gamemode handoffs [#common-operator--gamemode-handoffs]

When a player asks you to change something, here's where to send them:

| "Can you change..."                 | Who actually owns it                                                                                             |
| ----------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| Player slot count                   | Gamemode publisher (`LobbyConfig.MaxPlayers`).                                                                   |
| Server tickrate                     | Gamemode publisher (`NetworkingSettings.UpdateRate`).                                                            |
| Whether it's friends-only           | Gamemode publisher (`LobbyConfig.Privacy`), or set up [server token](/docs/sbox/server-token) + private invites. |
| Anti-griefing (stop spawn-spamming) | Gamemode (per-connection toggles).                                                                               |
| Hostname                            | You (`+hostname`).                                                                                               |
| Add an admin                        | You (`users/config.json`).                                                                                       |
| Switch to a different gamemode      | You (`+game`).                                                                                                   |

The split is consistent: **structural identity of the server is operator-owned; runtime gameplay rules are gamemode-owned.**

Related Guides [#related-guides]

* [Launch Parameters](/docs/sbox/launch-parameters)
* [Admin Commands & Permission Flags](/docs/sbox/admin-commands)
* [User Permissions](/docs/sbox/user-permissions)
* [Migrating from GMod](/docs/sbox/migrating-from-gmod)
* [Troubleshooting](/docs/sbox/troubleshooting)
