A CS2 practice server is one of the most useful tools available for actually improving, and most players underuse it. No enemies, no round timer pressure, no teammates watching. Just the map, the commands, and whatever mechanic needs work. This guide covers how to get a local server running, which commands matter, and how to build a config that loads everything automatically.
How to launch a CS2 practice server
Getting an offline server running in CS2 takes about thirty seconds. From the main menu, open the console with the tilde key (~), then type map [mapname] and hit enter. For example, map de_dust2 loads Dust2 in an offline session with no bots and no time limits by default. The game treats this as a local server, which means sv_cheats commands work without needing a dedicated server.
Alternatively, use the Play menu: select Practice, choose your map, and launch. The console method is faster once the habit is built. Either way, the result is the same — a local session where the full command set is available.
Essential CS2 practice server commands
These are the commands that actually change how a practice session works. Almost every command below requires sv_cheats 1 enabled first, run that before anything else. Note that sv_cheats only functions on offline or local servers, or on servers where you have admin access.
- sv_cheats 1 — unlocks cheat-protected commands; required for most of the commands below, and only works on offline sessions or servers where you have admin rights
- bot_kick — removes all bots from the server immediately
- bot_add_ct / bot_add_t — adds a single bot to the specified team, useful for building specific practice scenarios such as 1v1s or retake setups rather than running a full bot match
- mp_warmup_end — skips straight into the round instead of waiting out the warmup timer
- mp_roundtime 60 — sets round length in minutes, useful when you want extended time to repeat a lineup or drill without the round ending mid-practice
- mp_freezetime 0 — removes the freeze period at round start
- sv_infinite_ammo 1 — removes ammo limits entirely, letting you practice recoil patterns repeatedly without reloading or running dry (requires sv_cheats 1)
- ammo_grenade_limit_total [number] — lets you carry extra utility for lineup practice sessions without needing to restock (requires sv_cheats 1)
- noclip — lets you fly freely through the map with no collision, useful specifically for visually confirming where a smoke or Molotov lineup actually lands from outside normal player movement constraints (requires sv_cheats 1)
- god — makes you immune to damage, useful when practicing peeks or positioning against bots without dying interrupting the rep (requires sv_cheats 1)
- cl_showfps 1 — displays your frame rate on screen; pair with net_graph 1 for a more detailed breakdown including ping, FPS, and tick/network info, which is handy if you want to sanity-check that performance on your practice server isn’t skewing your results compared to matchmaking
Run these in sequence after loading the map, or build them into a config file (like smoke.cfg into cfg file so you can run ‘exec smoke’) and they execute automatically every session.
A practical starting sequence for solo practice
For a solo aim or utility practice session, the following sequence gets you into a clean, bot-free server with an extended round and unlimited ammo, a solid baseline before layering in noclip for lineup-checking or bot_add commands for specific duel scenarios:
- sv_cheats 1
- bot_kick
- mp_warmup_end
- mp_roundtime 60
- sv_infinite_ammo 1
Building a practice config file
A config file is a plain text file that runs a list of console commands automatically when called. Instead of typing ten commands every time a practice server loads, one command executes all of them. This is how serious players structure offline sessions.
Creating the file
Navigate to the CS2 config folder: Steam/steamapps/common/Counter-Strike Global Offensive/game/csgo/cfg. Create a new text file and name it something like practice.cfg. Inside the file, list each command on its own line, no special formatting needed. A basic starting point:
- sv_cheats 1
- bot_kick
- mp_warmup_end
- mp_roundtime 60
- mp_freezetime 0
- sv_infinite_ammo 1
- ammo_grenade_limit_total 5
- god
- cl_showfps 1
Loading the config
In-game, open the console and type exec practice. CS2 reads the file and runs every command in order. If the file is named differently, match the name exactly without the .cfg extension in the exec command. The config can be updated at any time by editing the text file.
Commands for grenades, aim, and movement drills
Different training goals need different command setups. Grenade lineup work, spray pattern practice, and movement drills each benefit from a slightly different configuration.
Grenade lineups
For smoke and flash practice, the most useful commands are sv_grenade_trajectory_prac_pipreview 1 (shows a live arc preview as the grenade is aimed) and sv_grenade_trajectory_prac_trailtime 10 (keeps the thrown path visible for 10 seconds after release). Combined with ammo_grenade_limit_total 5 and sv_infinite_ammo 1, lineups can be tested and repeated without any inventory management. noclip is useful here to inspect where a smoke actually landed from above or behind cover.
Spray pattern and aim
For spray control work, sv_infinite_ammo 1 removes reloads entirely. Workshop maps like Recoil Master handle the visual feedback side better than vanilla offline servers, but the commands still apply when practicing on actual competitive maps. Pair god with bot_add_t to bring in stationary targets without taking damage while repositioning.
Movement drills
Counter-strafing and position practice benefit from mp_roundtime 60 so there’s no pressure to reset. Use bot_kick to clear the server, then work angles and peeking positions cleanly. noclip helps when checking exact pixel-level exposure at a corner before committing to a peek in a real match.
Common setup issues and how to fix them
Most problems with CS2 practice server setup come down to a few predictable causes. Here are the ones that come up most often and what actually fixes them.
Commands not working: Almost always a missing sv_cheats 1. Run it first, then re-enter the commands. If sv_cheats itself returns an error, the session may have launched in a mode that restricts it, close and relaunch as an offline server via the console or Practice menu.
Config not loading: Check the file path. The cfg folder must be inside gamecsgocfg, not the legacy CS:GO directory. Also confirm the file is saved as a .cfg file, not .cfg.txt, Windows sometimes hides extensions. Rename if needed.
Round ending mid-drill: mp_roundtime needs to be set high enough, and mp_roundtime_defuse may also need updating depending on the map type. Set both to 60 to be safe.
Bots respawning after bot_kick: Add bot_quota 0 to the config. This prevents CS2 from automatically refilling bot slots after they’re removed.
Once the config is dialed in, a practice session loads in under a minute and runs exactly the same way every time. That consistency is what makes offline work actually translate to competitive matches. Pairing a solid practice routine with optimized CS2 graphics and game settings ensures your in-game performance reflects the work you put in offline.

