CS2 Practice Config: Commands for Nade & Aim Practice
CS2 Practice Config: Commands for Nade & Aim Practice

Good aim and grenade knowledge in Counter-Strike 2 do not develop overnight. If you want to consistently land your first shots, control recoil, and throw reliable smokes and flashes, regular practice on a local server can make a major difference. However, standard match settings are not ideal for training: ammo runs out, rounds are too short, you have to return to the buy zone, and analyzing grenade trajectories can be difficult.
CS2 practice config solves these problems by turning a regular local server into a dedicated training environment.
Below, we will explain how to create a practice config in CS2, which commands are useful for grenade and aim training, and how to build a complete practice.cfg that can be launched with a single command.
"1. CS2 Practice Config: Commands for Nade & Aim Practice","1.1. What Is a Practice Config in CS2?","1.2. How to Start a Practice Server","1.3. Essential CS2 Practice Config Commands","1.4. Commands for Grenade Practice in CS2","1.5. Noclip for Fast Movement","1.6. How to Instantly Remove Smokes","1.7. How to Practice Aim and Spray Control","1.8. Practicing Against Bots","1.9. Complete CS2 Practice Config","1.10. Where to Install practice.cfg","1.11. Useful Binds for a Practice Server","1.12. How to Practice Grenades Effectively"
What Is a Practice Config in CS2?
A practice config is a .cfg file containing Counter-Strike 2 console commands. Instead of entering a dozen commands manually before every training session, you can save them in one file and execute:
exec practice
CS2 will then automatically apply all the settings.
A practice config is especially useful for:
Learning smoke, flash, HE, and Molotov lineups
Testing new grenade throws
Practicing spray control
Learning wallbangs
Practicing prefires
Training peeks against bots
Learning new positions on maps
Testing CS2 mechanics
Most advanced practice commands require sv_cheats 1, so you should use this config on a local practice server or a server you control. These features cannot normally be enabled in Competitive or Premier matches.
How to Start a Practice Server
The easiest option is to open CS2, go to Play → Practice, select the map you want, and start the match. Make sure Developer Console is enabled in the game settings. Once the map loads, you can usually open the console with the ~ key.
Start with:
sv_cheats 1
This command enables access to practice features such as noclip, grenade previews, and several other server tools.
You can then enter commands manually or execute a previously created config.
Essential CS2 Practice Config Commands
Start with the basic server configuration:
sv_cheats 1
bot_kick
mp_limitteams 0
mp_autoteambalance 0
mp_warmup_end
mp_freezetime 0
mp_roundtime 60
mp_roundtime_defuse 60
mp_buytime 9999
mp_buy_anywhere 1
mp_maxmoney 60000
mp_startmoney 60000
sv_infinite_ammo 1
ammo_grenade_limit_total 5
mp_restartgame 1
This setup removes bots and team balancing, ends the warmup, disables freeze time, extends the round duration, gives you plenty of money, allows buying almost anywhere and at any time, and enables unlimited ammunition. A similar set of commands remains the foundation of modern CS2 practice configs.
sv_infinite_ammo 1
Enables unlimited ammunition, allowing you to repeat exercises without constantly buying or reloading your equipment.
This is especially useful for spray practice – you can keep shooting at a wall or target and focus entirely on your mouse movement and recoil control.
mp_buy_anywhere 1
Allows you to purchase weapons and equipment outside the standard buy zone.
Combine it with:
mp_buytime 9999
This eliminates the need to return to spawn every time you need new equipment.
mp_roundtime_defuse 60
Sets a long round duration on bomb defusal maps. You can explore the map and practice lineups without restarting the match every few minutes.
Commands for Grenade Practice in CS2
For utility practice, several additional commands are particularly useful.
Preview Grenade Trajectories
Use:
sv_grenade_trajectory_prac_pipreview 1
This command enables a practice preview of the grenade trajectory, helping you see where the grenade will travel and where it will land. It is one of the most useful tools when learning new smoke lineups.
You can also increase the amount of time the trajectory remains visible:
sv_grenade_trajectory_prac_trailtime 10
In this example, the trail remains visible for 10 seconds.
Rethrow the Last Grenade
Another extremely useful command is:
sv_rethrow_last_grenade
It repeats the last grenade throw with the same trajectory. This allows you to inspect a lineup from another position or quickly see how a particular smoke, flash, or Molotov affects a player standing in a specific location.
Instead of opening the console after every throw, create a bind:
bind "mouse5" "sv_rethrow_last_grenade"
Pressing Mouse5 will now repeat the last grenade. You can replace the key with any button you prefer.
How to Get Specific Grenades
You can use console commands to give yourself any type of utility:
give weapon_smokegrenade
give weapon_flashbang
give weapon_hegrenade
give weapon_molotov
give weapon_incgrenade
give weapon_decoy
These commands make it easy to quickly assemble the equipment you need for a training session.
You can also use:
ammo_grenade_limit_total 5
to increase the total number of grenades you can carry during practice.
Noclip for Fast Movement
When practicing grenades, you often need to move back and forth between the throwing position and the landing point. Instead of running across the map every time, use:
noclip
This mode allows you to fly freely around the map and move through walls.
It is more convenient to bind it to a key:
bind "v" "noclip"
For example, after throwing a smoke, press V, fly to the bombsite, and check whether the smoke leaves any gaps.
noclip requires sv_cheats to be enabled.
How to Instantly Remove Smokes
When repeatedly testing the same position, waiting for every smoke to disappear wastes time.
You can remove active smokes with:
ent_fire smokegrenade_projectile kill
Practice configs often bind this command to a dedicated key. For example:
bind "F6" "ent_fire smokegrenade_projectile kill; stopsound"
After pressing F6, the active smoke disappears, allowing you to immediately repeat the attempt.
How to Practice Aim and Spray Control
A practice config is useful for more than grenades. A local server is also a convenient environment for testing recoil control, wallbangs, and shooting accuracy.
One of the most useful commands is:
sv_showimpacts 1
It displays bullet impact locations. This makes it much easier to understand where your spray is actually going and how accurately you are controlling recoil.
You can also add:
sv_showimpacts_time 10
to keep the impact markers visible for longer.
For spray practice, this combination works well:
sv_infinite_ammo 1
sv_showimpacts 1
sv_showimpacts_time 10
Pick up an AK-47 or M4, find a clean wall, and fire several full sprays. First, observe the weapon's natural recoil pattern. Then try to compensate for it with your mouse movement.
Practicing Against Bots
A static wall can help you understand recoil, but bots are more useful for practicing prefires, crosshair placement, and peeks.
Add a bot with:
bot_add_ct
or:
bot_add_t
Then stop the bots from moving:
bot_stop 1
To place a bot in a specific position, point your crosshair at the desired location and enter:
bot_place
This setup is particularly useful for practicing common angles. Place a bot in a typical defensive position, return behind cover, and repeat the peek several times.
The combination of bot_add, bot_stop, and bot_place is also useful for testing flashes and other grenades against an actual player model.
You can bind bot placement to a key:
bind "F8" "bot_place"
Complete CS2 Practice Config
If you practice regularly, it is much more convenient to combine the commands into a single file.
Here is an example of a complete practice.cfg:
// CS2 PRACTICE CONFIG
// Server
sv_cheats 1
bot_kick
mp_limitteams 0
mp_autoteambalance 0
mp_warmup_end
mp_freezetime 0
mp_roundtime 60
mp_roundtime_defuse 60
mp_buytime 9999
mp_buy_anywhere 1
mp_maxmoney 60000
mp_startmoney 60000
// Ammo & grenades
sv_infinite_ammo 1
ammo_grenade_limit_total 5
// Grenade practice
sv_grenade_trajectory_prac_pipreview 1
sv_grenade_trajectory_prac_trailtime 10
// Aim & spray
sv_showimpacts 1
sv_showimpacts_time 10
// Useful binds
bind "F5" "sv_rethrow_last_grenade"
bind "F6" "ent_fire smokegrenade_projectile kill; stopsound"
bind "F7" "noclip"
bind "F8" "bot_place"
mp_restartgame 1Current practice guides use a very similar combination of settings: long rounds, unlimited ammunition, grenade previews, bullet impacts, and quick binds for rethrow, noclip, and bot placement.
Where to Install practice.cfg
Create a regular text file and name it:
practice.cfg
Place it in the CS2 configuration folder. With a standard Steam installation, the folder is located inside the game's directory:
...\steamapps\common\Counter-Strike Global Offensive\game\csgo\cfg
After starting a practice match, open the console and enter:
exec practice
CS2 will execute all commands stored in the file. This method lets you launch the same practice setup before every session in just a few seconds.
Useful Binds for a Practice Server
For convenience, you can keep four essential commands bound to dedicated keys:
bind "F5" "sv_rethrow_last_grenade"
bind "F6" "ent_fire smokegrenade_projectile kill; stopsound"
bind "F7" "noclip"
bind "F8" "bot_place"This creates a simple practice control setup:
F5 – rethrow the last grenade;
F6 – remove active smoke;
F7 – toggle noclip;
F8 – place a bot at your crosshair.
These binds make practice much faster because you rarely need to return to the console.
CS2 Viewmodel Settings: Best Commands & Pro Examples
How to Practice Grenades Effectively
The practice config saves time, but your results still depend on how you use it.
Do not try to memorize dozens of random lineups in a single session. Choose one map and start with several grenades that are genuinely useful in matches: important execute smokes, a few effective pop flashes, and Molotovs for common defensive positions.
A practical routine looks like this:
Stand in the lineup position.
Throw the grenade.
Check its trajectory and landing point.
Use
noclipto inspect the result from the other side.Use your rethrow bind and watch the grenade from the opponent's position.
Repeat the throw without the trajectory preview.
Continue until you can execute the lineup correctly several times in a row without assistance.
To test a flash, you can place a stationary bot using bot_place. For smokes, inspect the result from both sides to make sure there are no dangerous gaps.