We are your new 5-Star Hosting Company. At least according to ★ Trustpilot

Following along with a Counter-Strike 2 server? Deploy yours in minutes.

All servers come with a 24-Hour Trial, Free Backups, and 40Gbps DDoS Protection included!

Use code SAVE15 to take 15% OFF Your First Invoice with ChicagoServers! Limited Time!
Counter-Strike 2 guide

CS2 server.cfg and Game Modes: game_type, game_mode, Mapgroups, Cvars

By the ChicagoServers team · Updated · 12 min read

Most of what makes one CS2 server feel different from another lives in plain text files: server.cfg for settings that apply everywhere, optional gamemode_*_server.cfg files for settings that belong to one mode, and a pair of numbers, game_type and game_mode, that decide which mode loads at all. Mix them up and your changes silently get overwritten, which is a very common complaint among admins.

This guide explains what each file does, which number pairs map to which mode, how mapgroups and the map cycle work, and which cvars to change first. Mode defaults below were read from the configuration files that ship with the game and the game mode definitions, checked on 2026-11-03. Valve changes those files in updates, so confirm important values on your own server by typing the cvar name on the Console tab, or search with find mp_.

Quick answer
  • server.cfg lives in game/csgo/cfg/ inside the server install. On ChicagoServers, edit it on the Configs tab (Server settings (server.cfg)). Mode-specific overrides are gamemode_<mode>_server.cfg files in the same folder; the Configs tab has mode-only configs for Competitive, Casual and Deathmatch.
  • Choose the mode with the Game mode field on the Startup tab. The game identifies modes by game_type and game_mode pairs: Casual is 0/0, Competitive 0/1, Wingman 0/2, Arms Race 1/0, Demolition 1/1, Deathmatch 1/2, Custom 3/0.
  • Shipped competitive defaults: mp_maxrounds 24, mp_roundtime 1.92, mp_freezetime 15, mp_buytime 20, mp_startmoney 800. Casual and the other modes use different values.
  • Gameplay cvars set only in server.cfg or live from the console can be reset by the mode config on the next map load. Put them in the matching gamemode_*_server.cfg.
  • Switch maps live with changelevel on the Console tab. To change the mode for good, change Game mode (and Map) on Startup, then Save startup and Restart.
On this page
  1. Where server.cfg lives and how the config files fit together
  2. How to edit these settings on a ChicagoServers server
  3. game_type and game_mode: the mode table
  4. Set the mode in the panel, or change it while the server runs
  5. gamemode_*_server.cfg and the exec order
  6. Mapgroups and the map cycle
  7. Important cvars and their real defaults
  8. Bots, GOTV and sizing the server
  9. Common mistakes
  10. Frequently asked questions

Where server.cfg lives and how the config files fit together

In a standard install the server's configuration folder is game/csgo/cfg/. The game ships a server.cfg there that is essentially empty; its only content is a comment pointing at server_default.cfg. That makes it a clean place for your own settings. On ChicagoServers you do not have to find the folder for the main files: the Configs tab opens them for you.

FileFolderPurposeEdit it?
server.cfggame/csgo/cfg/Your settings that apply in every mode: region, GOTV, logging. The server name and passwords come from the Startup tabYes: Configs tab, Server settings (server.cfg)
autoexec.cfggame/csgo/cfg/Optional file run once at startup, community conventionOptional: Files tab
gamemode_casual.cfg, gamemode_competitive.cfg and so ongame/csgo/cfg/Valve's defaults for each modeNo, updates can overwrite them
gamemode_<mode>_server.cfggame/csgo/cfg/Your overrides for one mode. You create these files; they are not present by defaultYes: Configs tab for Competitive, Casual and Deathmatch; Files tab for other modes
gamemodes.txtPacked inside the game content archiveValve's list of modes, map groups and which configs each mode runs. Its header says not to modify it. You will not normally find it as a loose fileNo
gamemodes_server.txtgame/csgo/ (community convention)Your own mode and mapgroup definitions. Valve's header in gamemodes.txt refers you to a gamemodes_server.txt.example file as the starting point. Community documentation places it in this folderYes, advanced: Files tab
mapcycle.txtgame/csgo/ (the location most host documentation gives)Plain list of maps for rotationYes: Files tab

The rule that prevents most mistakes: edit server.cfg and the _server.cfg files, and leave Valve's own gamemode_*.cfg files alone. Valve updates replace the shipped files, and an edit you made there can disappear after the next game update. If you have not set up the server yet, start with the CS2 dedicated server setup guide.

How to edit these settings on a ChicagoServers server

  1. Pick the right place

    Name, passwords, map and mode are Startup fields. Everything else in server.cfg and the mode files is on the Configs tab.

  2. Open the Configs tab

    Sign in at panel.chicagoservers.co, open your server, then the Configs tab, and pick Server settings (server.cfg) or the mode-only config for Competitive, Casual or Deathmatch from the list.

  3. Edit and save

    Use the Settings view for the labelled fields, or switch to Text for the whole file and paste the snippets from this guide. Click Save.

  4. Restart

    Click Restart at the top of the page. Changes apply when the game next starts. A file that does not exist yet says so, and saving creates it.

Other files, such as mapcycle.txt, gamemodes_server.txt or a gamemode_<mode>_server.cfg for a mode without its own Configs entry, are edited on the Files tab: open the file in the editor and click Save, or use SFTP from the blue SFTP bar for bigger uploads.

game_type and game_mode: the mode table

CS2 identifies a mode by two numbers. The pairs below come from the game's own gamemodes.txt, and the five aliases at the bottom are the ones Valve's dedicated server page lists for the game_alias command.

Modegame_typegame_modeShipped config files (run in this order)
Casual00gamemode_casual.cfg, gamemode_casual_server.cfg
Competitive01gamemode_competitive.cfg, gamemode_competitive_server.cfg
Wingman (2v2)02gamemode_competitive2v2.cfg, gamemode_competitive2v2_server.cfg
Weapons Expert03gamemode_competitive.cfg, a weapons-expert config, then gamemode_competitive_server.cfg
Retakes05gamemode_casual.cfg, gamemode_casual_server.cfg, gamemode_retakecasual.cfg
Arms Race10gamemode_armsrace.cfg, gamemode_armsrace_server.cfg
Demolition11gamemode_demolition.cfg, gamemode_demolition_server.cfg
Deathmatch12gamemode_deathmatch.cfg, gamemode_deathmatch_server.cfg
Custom30gamemode_custom.cfg, gamemode_custom_server.cfg
  • game_alias accepts casual, competitive, wingman, deathmatch and custom, and sets both numbers at once.
  • The same file also defines older and special entries: Training, Cooperative (Guardian and Co-op Strike), Skirmish and Danger Zone. Some are leftovers from CS:GO. Do not build a community server around them unless you have tested them on the current build.
  • Premier is not in this table because it is Valve's own matchmaking mode. The shipped game mode definitions contain no Premier entry, so it is not something you select on a community server. Use Competitive, which plays the same objective rules without Valve's ranking system.

Set the mode in the panel, or change it while the server runs

On ChicagoServers, pick the mode in the Game mode field and the starting map in Map (or Map group) on the Startup tab, click Save startup, then Restart. The panel builds the start command from those fields, so you do not type launch parameters. For reference, Valve's wiki advises applying the mode values first and then changing the map, and community documentation reports that a map loaded before the values are set can start in the previously used mode.

Game-level equivalent of the Game mode and Map fields. You do not type this on ChicagoServers
# Competitive on Dust II
+game_type 0 +game_mode 1 +map de_dust2

# Deathmatch, using the alias form
+game_alias deathmatch +map de_dust2

Live, the same logic applies. Set the numbers or alias on the Console tab (type the command and press Send; RCON is handled for you), then change the map so the mode configs run:

Console tab
game_type 1
game_mode 2
changelevel de_dust2

// or, in one step with the alias
game_alias deathmatch
changelevel de_dust2
  • changelevel mapname moves everyone to a new map immediately and keeps the players connected. map mapname also loads a map. A console change lasts until the server restarts; the Startup fields decide what it starts with.
  • Workshop maps are loaded with host_workshop_map followed by the map's Workshop ID, according to community documentation, or with the Workshop map ID and Workshop collection ID fields on Startup. See the Workshop guide for collections.
  • Typing game_type or game_mode with no value prints the current setting. Use status to see the loaded map.

If you are running commands from an external tool, the RCON and admin commands guide explains the connection and the commands that matter most.

gamemode_*_server.cfg and the exec order

Each mode definition in Valve's gamemodes.txt lists the configs to run when a game of that mode starts: Valve's gamemode_<mode>.cfg first, then your gamemode_<mode>_server.cfg. Because yours runs second, it wins. Valve's CS:GO-era documentation, which is archived but still described as largely valid for CS2, gives the load sequence on every map load as: run the mode configs for the current game_type and game_mode, apply mode flag configs, then apply any skirmish config. (CS:GO also reset a whitelist of cvars first, but that file does not exist in CS2.)

That sequence explains a very common complaint. If you type mp_maxrounds 12 in the console, or put it in server.cfg, the mode config can put it back to its own value when the next map loads. The reliable fix is to write the value where it will be applied last:

Example override file for Competitive
// game/csgo/cfg/gamemode_competitive_server.cfg
mp_maxrounds 16
mp_overtime_enable 1
bot_quota 0
  • Use server.cfg for settings that are not mode specific: sv_region, GOTV and logging. The name and passwords are Startup fields on ChicagoServers.
  • Use gamemode_<mode>_server.cfg for everything that belongs to the rules of one mode: rounds, timers, money, bots and friendly fire. On ChicagoServers these are the mode-only configs on the Configs tab for Competitive, Casual and Deathmatch.
  • Community documentation disagrees on whether server.cfg runs before or after the mode configs on a map change. Do not depend on either. If a cvar keeps reverting, move it into the matching _server.cfg file.
  • Some mode filenames differ from the mode name. Wingman uses gamemode_competitive2v2_server.cfg, not a file with wingman in the name.

Mapgroups and the map cycle

A mapgroup is a named list of maps that a mode can draw from. The shipped gamemodes.txt defines many groups, including mg_active, mg_reserves, mg_hostage, mg_armsrace, mg_demolition, mg_deathmatch, the Casual groups mg_casualsigma, mg_casualdelta, mg_casualalpha and mg_casualcharlie, and single-map groups such as mg_de_dust2. Which maps sit in a group is Valve's decision and changes with updates, so do not copy a map list from a tutorial. Start the server with the group and watch which maps actually rotate.

Valve's dedicated server page does not document a launch option for mapgroups. Community container images and hosting documentation still pass +mapgroup with +map, and report that the starting map should belong to the chosen group. On ChicagoServers the Map group and Map fields on Startup hold these values. Treat it as something to test on your build:

Community-documented launch form. On ChicagoServers use the Map group and Map fields
+game_type 0 +game_mode 1 +mapgroup mg_active +map de_dust2
  • For a custom pool, copy Valve's example into gamemodes_server.txt (on the Files tab) and define your own group there, rather than editing gamemodes.txt.
  • For rotation, community documentation says a mapcycle.txt file in game/csgo/ (edit it on the Files tab) controls the rotation, with one map per line, and that mp_match_end_changelevel 1 advances the map when a match ends.
  • Keep mapgroup and mode consistent. A Deathmatch server pointed at a group of bomb-defusal maps loads, but the experience will be poor.

Important cvars and their real defaults

Defaults in the table are either engine-level values documented by Valve or empty values you are expected to set. Gameplay values are different for each mode, so those are in the second table.

CvarDefaultNotes
hostnameno useful defaultThe name in the server list. On ChicagoServers set Server name on Startup; a hostname line in server.cfg is overwritten at every start.
sv_passwordemptyEmpty means anyone can join. Community documentation uses an empty string as the default. Set Join password on Startup.
rcon_passwordemptyEmpty effectively leaves RCON unusable, so set a long random value in RCON password on Startup. Community guides also add -usercon on the launch line, which Valve does not document; it has no Startup field, so contact support if an external RCON client is refused with the right password.
sv_cheats0Leave it at 0 on any public server. It unlocks commands that wreck normal play.
sv_lan01 turns on LAN mode and disables Steam authentication and internet listing.
sv_region255 (world)Codes follow Valve's convention: 0 US East, 1 US West, 2 South America, 3 Europe, 4 Asia, 5 Australia, 6 Middle East, 7 Africa, 255 world.
tv_enable0 (off)Turns on GOTV. See the bots and GOTV section.
bot_quotaset by each mode configSee below.

These are the shipped gameplay values from Valve's own mode configs. A shorter round count or timer is the usual first change.

Modemp_maxroundsmp_roundtime (min)mp_freezetime (s)mp_buytime (s)mp_startmoneymp_warmuptime (s)
Competitive241.921520800120
Wingman161.51020800120
Casual153545100090
Demolition101.2560030
Deathmatch01000020
Arms Race01000020

A few notes on reading that table. mp_maxrounds is the total number of rounds, so Competitive's 24 is a first-to-13 match. Casual shortens defuse rounds with mp_roundtime_defuse 2.25, and Competitive sets mp_roundtime_defuse to the same 1.92. Deathmatch and Arms Race are time based, so round count is not used. Always check the actual file on your server, because Valve rebalances these values across updates.

Bots, GOTV and sizing the server

Bots surprise new admins. Valve's Casual and Arms Race configs ship bot_quota 10 with bot_quota_mode fill, and Deathmatch ships bot_quota 10 with fill_with_minimum. Competitive and Wingman use a quota of 1 in competitive mode. Community documentation describes fill as keeping the total at the quota by replacing bots as humans join. To remove bots, set the quota to zero in the mode's _server.cfg file (the mode-only config on the Configs tab), because a console change is reset on the next map.

Remove bots
// in gamemode_casual_server.cfg
bot_quota 0

// or live, once
bot_quota 0
bot_kick

GOTV, Valve's spectator and broadcast system, is controlled with the tv_ cvars. Set these in Server settings (server.cfg) on the Configs tab so they apply when the map loads:

server.cfg (GOTV example)
tv_enable 1
tv_port 27020
tv_delay 0
tv_autorecord 1
tv_password "viewer-pass" // optional: spectators will need this password; remove the line for open spectating
  • tv_enable is off unless you set it. The panel assigns your server's ports (see Startup, Network) and you do not open a firewall. If spectators need a GOTV port of their own, reserve one under Extra ports, use that number as tv_port and ask support if viewers still cannot connect.
  • tv_delay is a delay in seconds. Valve's mode configs set their own: 105 for Competitive, 60 for Wingman and 30 for Casual, Demolition and Deathmatch. Setting it in server.cfg may be overridden, so use the _server.cfg file if it reverts.
  • tv_autorecord 1 starts recording demos automatically. Community documentation notes that GOTV can disconnect while a server hibernates when empty.
  • Spectators typically connect to the GOTV port with connect ip:27020 from the client console.

Common mistakes

MistakeResultFix
Setting hostname, sv_password or rcon_password in server.cfgThe panel overwrites them from the Startup tab at every startChange Server name, Join password or RCON password on Startup.
Putting mp_ cvars only in server.cfgThe mode config overrides them on map loadMove them into gamemode_<mode>_server.cfg.
Editing Valve's gamemode_*.cfg filesYour changes vanish after an updateCreate the _server.cfg companion file instead (on the Configs tab for Competitive, Casual and Deathmatch).
Choosing a map but not the mode (or the reverse)The map loads in the previous modeSet both Game mode and Map on Startup, then Save startup and Restart. If you build a launch line yourself elsewhere, put the mode first and the map last.
Setting game_mode without game_typeThe result depends on the previous value: mode 2 is Wingman under type 0 but Deathmatch under type 1Always set both numbers, use game_alias, or pick the mode in the Game mode field.
Leaving sv_lan 1 on a public serverNo Steam authentication and no internet listingSet sv_lan 0 and add a login token in the Game server login token field.
Enabling sv_cheats 1 for testing and forgetting itCheat commands available to playersTurn it off and restart the map.
Using a weak or empty rcon_passwordAnyone who can reach the port could try to take controlUse a long random password in the RCON password field, never on a command line.
Expecting Premier on a community serverNo such mode exists to selectUse Competitive, with your own rules in the override file.

A configuration mistake is easy to undo when you can restore a copy. Before big changes on a Counter-Strike 2 server hosting plan, open the Backups tab and click Back up now with World and settings chosen. If an edit goes wrong, click Restore next to the backup under Your backups.

Frequently asked questions

Where is server.cfg on a CS2 dedicated server?

It is in game/csgo/cfg/ inside your server install. Valve ships a nearly empty copy there, so you can add your own settings to it. On ChicagoServers, open your server in the panel, then the Configs tab, and pick Server settings (server.cfg).

What are the game_type and game_mode values for each CS2 mode?

Casual is 0 and 0, Competitive 0 and 1, Wingman 0 and 2, Arms Race 1 and 0, Demolition 1 and 1, Deathmatch 1 and 2, and Custom 3 and 0. Set both before the map loads, or use game_alias. On ChicagoServers, pick the mode in the Game mode field on the Startup tab.

Why do my mp_ settings keep resetting?

The mode's own config runs when the map loads and can overwrite values from the console or from server.cfg. Put gameplay cvars in the matching gamemode_MODE_server.cfg file, which Valve's mode definition runs after its own defaults. On ChicagoServers the Configs tab has mode-only configs for Competitive, Casual and Deathmatch.

Can I run Premier on my own server?

No. Premier is a Valve matchmaking mode and there is no entry for it in the game mode definitions that ship with CS2. Community servers use Competitive, Casual, Wingman and the other modes in the table above.

How do I change the map and mode without restarting?

On the Console tab, set the new game_type and game_mode values (or game_alias), type each command and press Send, then run changelevel mapname. The mode configs run when the new map loads. For a Workshop map, community documentation points to host_workshop_map with the map's ID. The change lasts until the next restart; the Startup tab decides what the server starts with.

Why are there bots on my Casual server?

Valve's Casual config ships with bot_quota 10 and bot_quota_mode fill, so bots fill empty slots. Set bot_quota 0 in gamemode_casual_server.cfg (the Casual mode-only config on the Configs tab) to remove them permanently.

We are your new 5-Star Hosting Company. At least according to ★ Trustpilot

Following along with a Counter-Strike 2 server? Deploy yours in minutes.

All servers come with a 24-Hour Trial, Free Backups, and 40Gbps DDoS Protection included!

We offer quality support, a detailed knowledgebase, video tutorials on most topics, and even live support in case you prefer a live human.

Use code SAVE15 to take 15% OFF Your First Invoice with ChicagoServers! Limited Time!