Counter-Strike 2 Field guide

Practice and competitive modes on your CS2 server

Toggle your CS2 dedicated server between 5v5 competitive play and grenade practice drills on the fly via RCON and custom scripts.

Practice and competitive modes on your CS2 server

Switching a dedicated Counter-Strike 2 server rapidly between a grenade utility practice environment and an official 5v5 competitive match is essential for team training sessions. Restarting the server process or manually altering startup arguments wastes valuable practice time; the correct architecture uses isolated, executable configuration scripts.

This guide targets self-hosted Linux CS2 dedicated server administrators. As of October 28, 2026, competitive matchmaking rules map to +game_type 0 +game_mode 1, while practice setups take advantage of Source 2's native trajectory preview cvars.

Game mode integer mappings and launch arguments#

In Counter-Strike 2, game modes are designated by integer pairs supplied during server initialization:

Game Modegame_typegame_modeDescription
Competitive01Standard 5v5 rules, overtime, purchase armor
Casual0010v10, free armor, friendly fire disabled
Wingman022v2 tactical play on single bomb-site maps
Deathmatch12Free-for-all respawns, open weapon selection
Custom30Full parameter control through script files

Example startup command for a baseline competitive server:

bash
./game/bin/linuxsteamrt64/cs2 -dedicated \
  -port 27015 \
  +game_type 0 \
  +game_mode 1 \
  +map de_mirage \
  -maxplayers 12

Crafting the practice configuration (practice.cfg)#

For grenade line-up drills, flashbang timing, and position training, create game/csgo/cfg/practice.cfg:

bash
cat << 'EOF' > /srv/cs2/game/csgo/cfg/practice.cfg
sv_cheats 1
bot_kick
mp_warmup_end
mp_freezetime 0
mp_roundtime 60
mp_roundtime_defuse 60
mp_maxmoney 60000
mp_startmoney 60000
mp_buytime 99999
mp_buy_anywhere 1
sv_infinite_ammo 1
ammo_grenade_limit_total 5
sv_showimpacts 1
sv_showimpacts_time 10
sv_grenade_trajectory_prac_pipreview 1
sv_grenade_trajectory_prac_trailtime 8
mp_restartgame 1
EOF

The cvar sv_grenade_trajectory_prac_pipreview 1 enables Source 2's native picture-in-picture window, displaying real-time camera views of where your grenade lands while aiming.

Dynamic mode switching: executing practice.cfg for utility training and comp.cfg for match play with automated round restart.

Crafting the competitive match configuration (comp.cfg)#

To restore regulation rules, create game/csgo/cfg/comp.cfg, which disables cheats and reapplies tournament standards:

bash
cat << 'EOF' > /srv/cs2/game/csgo/cfg/comp.cfg
sv_cheats 0
exec gamemode_competitive.cfg
mp_freezetime 15
mp_warmup_pausetimer 0
mp_warmup_start
bot_quota 0
mp_restartgame 1
EOF

Executing exec gamemode_competitive.cfg restores Valve's baseline timer, economic, and armor configurations, while sv_cheats 0 guarantees competitive integrity.

Switching modes dynamically via console or RCON#

Toggle between modes in real time from the in-game developer console or an external RCON tool without restarting the server daemon.

To activate practice mode:

bash
rcon exec practice.cfg

To initialize a competitive match:

bash
rcon exec comp.cfg

The server instantly reapplies variables and executes mp_restartgame 1 to reset round states in one second.

If you coordinate tournament servers and team training using Nexardo, maintain shared configuration templates across your fleet: rapid profile switching keeps practice schedules on track before official matches.

Sources#