Counter-Strike 2 game modes and server.cfg explained
A Counter-Strike 2 server can run competitive matches, relaxed casual games, deathmatch warmups and more. Two things decide what you get: the game mode you start it with, and the settings in your server.cfg. This guide explains both, so you can run exactly the kind of server you want.
Game type and game mode
CS2 uses a pair of numbers to choose the mode, game_type and game_mode. They are given when the server starts:
+game_type 0 +game_mode 1 +map de_dust2
| Mode | game_type | game_mode |
|---|---|---|
| Casual | 0 | 0 |
| Competitive | 0 | 1 |
| Wingman | 0 | 2 |
| Arms Race | 1 | 0 |
| Demolition | 1 | 1 |
| Deathmatch | 1 | 2 |
On a managed panel, the start-up page usually has fields for these, so you can change them without typing the whole line. Changing the mode needs a restart, and often a map change.
Choosing the map
The starting map is set with +map, for example +map de_mirage. For a map from the Steam Workshop, use +host_workshop_map followed by the workshop ID:
+host_workshop_map 123456789
A rotation lets your server change maps by itself. Many servers use a plugin or a map list, so players are not stuck on one map all night. See How to install CounterStrikeSharp on CS2 for plugin options.
The config file
The file server.cfg lives in the game's cfg folder, at game/csgo/cfg/ in a typical installation. It runs each time the server loads a map. Open it in the file manager and add one setting per line:
hostname "My CS2 Server | Competitive"
sv_password ""
rcon_password "a-long-random-password"
sv_cheats 0
mp_maxrounds 24
mp_roundtime 1.92
bot_quota 0
sv_lan 0
What the common ones do:
hostnameis the name in the server browser.sv_passwordis the join password. Leave it empty for a public server.rcon_passwordprotects remote administration. Use a long random value, and read What RCON is and how to use it safely.sv_cheatsshould be 0 on any server where players compete. Cheats let players use commands like noclip.mp_maxroundssets the number of rounds in a match.mp_roundtimeis the length of each round in minutes.bot_quotais how many bots fill empty slots. Set 0 for no bots.sv_lanmust be 0 for a server that people on the internet can join.
Many more mp_ settings exist for money, freeze time, buy time and friendly fire. Change a few at a time and test with a friend.
Listing the server
For a server to appear in the public list, it needs a login token tied to your Steam account. Getting a Game Server Login Token for CS2 explains how.
Practical setups
Competitive practice: game type 0, mode 1, mp_maxrounds 24, no bots, a password if only your team plays.
Casual hangout: game type 0, mode 0, a larger player cap, bots on to fill empty seats.
Warmup deathmatch: game type 1, mode 2, a short rotation of maps, respawns on.
If you run several kinds, ask yourself whether one server should do it all. A server that switches between serious matches and play often confuses people and breaks your config. Two servers, one for each, are usually easier to run well.
When changes do not apply
- You changed the file but nothing happened. Many settings only load at map start, so change the map or restart.
- A setting reverts. A plugin or a mode config may override it. The game mode loads its own config files, and
server.cfgruns after. Look for lines later in the chain that set the same value. - The server will not start. A mistake in the start-up line is the usual cause. Check the console, as described in How to read your server logs.
Keep a copy of server.cfg before you edit it. And Editing config files without breaking them covers common mistakes with quotes and encodings.
Still stuck? Open a ticket on Discord - run /ticket in any channel, pick a department, and include your Server ID or Invoice ID so we can jump straight in.