> CS2 Practice Server Configuration for Teams

Set up a CS2 practice server with essential configs for team scrims, grenades practice, and competitive training. Includes ready-to-use configs.

Intermediate
30 minutes

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

CommandDescription
cl_sim_grenade_trajectoryShow grenade arc
sv_grenade_trajectory_prac_pipreview 1Persistent trajectory
give weapon_smokegrenadeGet smoke
give weapon_flashbangGet flash
give weapon_hegrenadeGet HE
give weapon_molotovGet 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

CommandDescription
changelevel de_dust2Change map
mp_restartgame 1Restart round
statusShow server info
usersList connected players
kick "name"Kick player
banid 0 STEAMIDBan player
rcon_password xxxSet RCON password

Cheat Commands (sv_cheats 1)

CommandDescription
noclipFly through walls
godInvincibility
notargetEnemies ignore you
r_drawothermodels 2Wallhack (practice only)
host_timescale 2Speed up time
thirdpersonThird 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

  • 1.Grenade Practice:
    • >exec grenade_practice
    • >Use trajectory preview
    • >Save positions with F5
  • 2.Retake Practice:
    • >exec retake
    • >Add bots with bot_add_t
    • >Practice site retakes
  • 3.Team Scrim:
    • >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

  • 1.Check file is in game/csgo/cfg/
  • 2.Ensure correct filename
  • 3.Use exec configname without .cfg
  • ---

    Conclusion

    With these configs, your CS2 server becomes a complete training environment. Key takeaways:

    • >Use practice.cfg as your base
    • >Customize binds for your team's needs
    • >Set up proper pause/unpause for scrims
    • >Record demos with GOTV for review
    Pro tip: Create a config for each practice type and bind them to easy-to-remember commands like .prac, .scrim, .nade.