CS2 Practice Server Configuration for Teams
Take your team's practice to the next level with a properly configured CS2 training server. This guide covers essential practice configs, grenade training setups, and competitive scrimmage management.
Why Use a Practice Server?
Dedicated practice servers enable:
- >Grenade practice with trajectory visualization
- >Retake scenarios with bots
- >Team scrims with proper pause functionality
- >Prefire training with bot targets
- >Smoke practice without round limits
Essential Practice Config
Main Practice Config
Create practice.cfg in game/csgo/cfg/:
Config
// ========================================
// CS2 Practice Server Configuration
// ========================================
// Server Settings
sv_cheats 1
sv_infinite_ammo 2
sv_grenade_trajectory_prac_pipreview true
sv_grenade_trajectory_prac_trailtime 8
sv_showimpacts 1
sv_showimpacts_time 10
// Round & Time Settings
mp_roundtime 60
mp_roundtime_defuse 60
mp_maxrounds 1000
mp_timelimit 0
mp_freezetime 0
mp_warmup_end
// Money & Buy
mp_startmoney 16000
mp_buy_anywhere 1
mp_buytime 99999
mp_maxmoney 16000
// Team Settings
mp_limitteams 0
mp_autoteambalance 0
mp_friendlyfire 1
mp_teammates_are_enemies 0
// Game Rules
mp_respawn_on_death_ct 1
mp_respawn_on_death_t 1
mp_ignore_round_win_conditions 1
// Bot Settings
bot_kick
bot_add_ct
bot_add_t
bot_difficulty 3
bot_chatter off
// Speed & Movement
host_timescale 1
cl_sim_grenade_trajectory 1
// Practice-specific
mp_warmuptime 0
mp_do_warmup_period 0
echo "==================================="
echo " PRACTICE MODE ENABLED"
echo "==================================="
echo " Commands:"
echo " .bot - Add bot to crosshair"
echo " .nobots - Remove all bots"
echo " .clear - Clear grenades"
echo " .save - Save position"
echo " .tele - Teleport to saved"
echo "==================================="
---
Grenade Practice Setup
Nade Training Config
Create grenade_practice.cfg:
Config
// Grenade Practice Mode
exec practice
// Enable trajectory
sv_grenade_trajectory_prac_pipreview true
sv_grenade_trajectory_prac_trailtime 10
sv_grenade_trajectory_time_spectator 10
// Throwing helpers
bind f "noclip" // Toggle noclip
bind g "cl_sim_grenade_trajectory" // Simulate nade
// Quick nade binds (adjust keys)
bind h "give weapon_smokegrenade"
bind j "give weapon_flashbang"
bind k "give weapon_hegrenade"
bind l "give weapon_molotov"
bind p "give weapon_decoy"
echo "Grenade practice mode loaded"
Usage Commands
| Command | Description |
|---|---|
cl_sim_grenade_trajectory | Show grenade arc |
sv_grenade_trajectory_prac_pipreview 1 | Persistent trajectory |
give weapon_smokegrenade | Get smoke |
give weapon_flashbang | Get flash |
give weapon_hegrenade | Get HE |
give weapon_molotov | Get molly |
Retake Practice Config
Create retake.cfg:
Config
// ========================================
// Retake Practice Configuration
// ========================================
exec practice
// Reset settings
mp_roundtime 1.5
mp_roundtime_defuse 1.5
mp_freezetime 5
mp_ignore_round_win_conditions 0
mp_respawn_on_death_ct 0
mp_respawn_on_death_t 0
// Economy
mp_startmoney 10000
mp_buytime 15
// Bot setup
bot_kick
bot_difficulty 3
echo "RETAKES MODE"
echo "Use: .ct or .t to add bots"
Quick Bot Spawns
Add to your autoexec or bind:
Config
// Bot spawn binds (numpad)
bind kp_end "bot_add_t" // 1 - Add T
bind kp_downarrow "bot_add_ct" // 2 - Add CT
bind kp_pgdn "bot_kick" // 3 - Kick bots
bind kp_leftarrow "bot_place" // 4 - Place at crosshair
bind kp_5 "bot_goto_selected" // 5 - Teleport bot
---
Scrim Config
Competitive Scrim Config
Create scrim.cfg:
Config
// ========================================
// Scrim/Match Configuration
// ========================================
// Server
sv_cheats 0
sv_lan 0
sv_competitive_official_5v5 1
// Rounds
mp_maxrounds 24
mp_halftime 1
mp_roundtime 1.92
mp_roundtime_defuse 1.92
mp_freezetime 15
mp_timelimit 0
// Economy
mp_startmoney 800
mp_maxmoney 16000
mp_buytime 20
mp_buy_during_immunity 0
// Teams
mp_limitteams 1
mp_autoteambalance 0
mp_friendlyfire 1
mp_falldamage 1
// Pausing
sv_pause_on_console_open 0
mp_clan_ready_signal 0
// Overtime
mp_overtime_enable 1
mp_overtime_maxrounds 6
mp_overtime_startmoney 10000
// GOTV
tv_enable 1
tv_delay 105
tv_name "Scrim GOTV"
// Match Setup
mp_warmup_end
mp_restartgame 1
echo "SCRIM CONFIG LOADED"
echo "Ready for competitive play"
Pause Config
Create pause.cfg:
Config
// Pause Configuration
mp_pause_match
say "PAUSE CALLED - Type .unpause when ready"
Create unpause.cfg:
Config
mp_unpause_match
say "GAME RESUMED"
---
Useful Practice Binds
Movement Practice
Config
// Movement Practice
alias +jumpthrow "+jump; -attack; -attack2"
alias -jumpthrow "-jump"
// Jump-throw bind (for smokes)
bind "v" "+jumpthrow"
// Noclip toggle
bind "f" "noclip"
// Save/Load position
alias "savepos" "writeip; con_logfile cfg/savedpos.log; getpos; con_logfile console.log"
alias "loadpos" "exec savedpos.log"
bind "F5" "savepos"
bind "F6" "loadpos"
Quick Utility
Config
// Full Utility Loadout
alias "util_full" "give weapon_smokegrenade; give weapon_flashbang; give weapon_flashbang; give weapon_hegrenade; give weapon_molotov"
// Specific grenades
alias "smoke" "give weapon_smokegrenade"
alias "flash" "give weapon_flashbang"
alias "he" "give weapon_hegrenade"
alias "molotov" "give weapon_molotov"
alias "decoy" "give weapon_decoy"
Weapon Binds
Config
// Practice Weapons
alias "ak" "give weapon_ak47"
alias "m4" "give weapon_m4a1"
alias "awp" "give weapon_awp"
alias "deagle" "give weapon_deagle"
alias "usp" "give weapon_usp_silencer"
alias "glock" "give weapon_glock"
---
Bot Commands for Practice
Bot Management
Config
// Bot Commands
bot_add // Add bot to smaller team
bot_add_ct // Add CT bot
bot_add_t // Add T bot
bot_kick // Remove all bots
bot_kick ct // Remove CT bots
bot_kick t // Remove T bots
bot_place // Place bot at crosshair
bot_goto_selected // Teleport to selected bot
// Bot Behavior
bot_stop 1 // Bots don't move
bot_dont_shoot 1 // Bots don't shoot
bot_difficulty 3 // Set difficulty (0-3)
bot_chatter off // No bot chat
bot_defer_to_human_goals 1 // Bots follow player
Prefire Practice Setup
Config
// Prefire Setup
exec practice
bot_stop 1
bot_dont_shoot 1
bot_add_t
bot_place
// Repeat for multiple positions
---
Map-Specific Configs
Create map configs in cfg/ folder:
de_dust2.cfg:
Config
// Dust2 specific settings
say "Map: Dust 2"
// Add specific bot spawns or other settings
de_inferno.cfg:
Config
// Inferno specific settings
say "Map: Inferno"
---
Server Commands Reference
Essential Commands
| Command | Description |
|---|---|
changelevel de_dust2 | Change map |
mp_restartgame 1 | Restart round |
status | Show server info |
users | List connected players |
kick "name" | Kick player |
banid 0 STEAMID | Ban player |
rcon_password xxx | Set RCON password |
Cheat Commands (sv_cheats 1)
| Command | Description |
|---|---|
noclip | Fly through walls |
god | Invincibility |
notarget | Enemies ignore you |
r_drawothermodels 2 | Wallhack (practice only) |
host_timescale 2 | Speed up time |
thirdperson | Third person view |
GOTV Recording
Recording Demos
Config
// Start recording
tv_record match_name
tv_stoprecord
// Auto-record on match start
tv_autorecord 1
// Playback
playdemo match_name
GOTV Settings
Config
// GOTV Configuration
tv_enable 1
tv_port 27020
tv_delay 105 // 105 seconds (tournament standard)
tv_delaymapchange 1 // Delay map change for GOTV
tv_maxclients 128 // Max spectators
tv_name "Server GOTV"
tv_title "Practice Server"
tv_password "" // No password for public
tv_relaypassword "" // Relay password
---
Complete Practice Session Setup
Step 1: Start Server
Bash
./cs2 -dedicated -ip 0.0.0.0 -port 27015 +map de_dust2 +game_type 0 +game_mode 1 -tickrate 128 -maxplayers 12
Step 2: Load Practice Config
rcon_password your_password
rcon exec practice
Step 3: Practice Workflow
- >
exec grenade_practice - >Use trajectory preview
- >Save positions with F5
- >
exec retake - >Add bots with bot_add_t
- >Practice site retakes
- >
exec scrim - >Ready up and play
Step 4: Cleanup
rcon exec server.cfg // Reset to normal
rcon changelevel de_inferno // New map
---
Advanced: ESL Config
For official matches, use ESL configs:
Config
// ESL Match Configuration
exec gamemode_competitive
mp_maxrounds 24
mp_halftime 1
mp_roundtime 1.92
mp_freezetime 15
mp_friendlyfire 1
mp_overtime_enable 1
mp_overtime_maxrounds 6
mp_overtime_startmoney 10000
tv_enable 1
tv_delay 120
// Anti-cheat
sv_cheats 0
sv_pure 1
sv_consistency 1
mp_restartgame 3
say "LIVE AFTER 3 RESTARTS"
---
Troubleshooting
Grenade Trajectory Not Showing
sv_cheats 1
sv_grenade_trajectory_prac_pipreview true
cl_sim_grenade_trajectory 1
Bots Not Spawning
bot_quota_mode normal
bot_quota 10
bot_add
Configs Not Executing
game/csgo/cfg/exec configname without .cfg---
Conclusion
With these configs, your CS2 server becomes a complete training environment. Key takeaways:
- >Use
practice.cfgas your base - >Customize binds for your team's needs
- >Set up proper pause/unpause for scrims
- >Record demos with GOTV for review
.prac, .scrim, .nade.