---
title: "CS2 Practice Commands: Nade Practice Config, Clearing Smokes and Map Guides"
description: "Every CS2 practice command checked against the current build: a ready-to-paste nade practice config, rethrow, noclip, clearing smokes and MatchZy .prac."
url: "https://www.gameserverkings.com/knowledge-base/counter-strike-2/practice-commands/"
category: "Counter-Strike 2"
category_url: "https://www.gameserverkings.com/knowledge-base/counter-strike-2/"
published: "2026-09-28T03:14:09.224Z"
updated: "2026-09-28T04:56:54.127Z"
source_format: "markdown"
site: "GameServerKings"
---

# CS2 Practice Commands: Nade Practice Config, Clearing Smokes and Map Guides

CS2 practice commands only work when the server allows them. Almost every nade practice command (`noclip`, `sv_rethrow_last_grenade`, `sv_infinite_ammo`, clearing a smoke) is flagged as a cheat in the retail build, so it does nothing until `sv_cheats 1` is set on the server. The settings that make practice comfortable are not cheats at all: grenade trails, buy-anywhere and endless rounds are ordinary convars. So there are two layers, and people who mix them up end up asking why `noclip` "doesn't work".

This guide gives you both layers, checked against the current CS2 build (1.41.8.5, 25 September 2026). You get a practice config to paste, the commands grouped by what you are practising, a way to clear smokes without restarting the round, and how to turn on Valve's map guides on your own server. If you would rather use chat commands like `.rethrow` and `.savenade`, the MatchZy section covers the plugin route.

## Where Each Command Has to Be Typed

A CS2 command runs in one of two places. Get this wrong and the command silently fails.

| Type it in | Commands | Why |
|---|---|---|
| **Server console** (the panel's **Console** tab, or `rcon` from your game) | `sv_cheats`, `exec`, `mp_*`, `sv_*`, `bot_*`, `ent_remove_all`, `host_timescale`, `sv_rethrow_last_grenade` | Server-side commands and convars |
| **Your own game console** while connected | `noclip`, `god`, `kill`, `setpos`, `setang`, `hurtme`, `getpos`, binds | Commands the game lets a connected player run for their own character, provided the server has cheats on |

On a GSK server the **Console** tab is already attached to the server process, so there is no `rcon` prefix and no password to send. To run server commands from inside the game instead, open the **Startup** tab, set **Enable RCON** to `1` (the egg only adds `-usercon` to the launch line when it is on) and set an **RCON Password**. [Counter-Strike 2 server commands](/knowledge-base/counter-strike-2/how-to-add-admins-and-commands/) covers RCON setup in full.

`sv_cheats` is replicated to every client, which means everyone on the server gets cheats while it is on. That is fine for a private practice server. Don't turn it on for a public one.

## The Practice Config

Save this as `game/csgo/cfg/practice.cfg`, then run `exec practice` in the Console tab. Each value is checked against the current convar list. The layout follows the practice config that MatchZy ships.

``` title="game/csgo/cfg/practice.cfg"
// cheats layer
sv_cheats 1
sv_infinite_ammo 1

// no bots, no team limits
bot_quota 0
bot_kick
mp_limitteams 0
mp_autoteambalance 0

// endless round, instant respawn
mp_warmup_end
mp_freezetime 0
mp_roundtime 60
mp_roundtime_defuse 60
mp_ignore_round_win_conditions 1
mp_respawn_on_death_ct 1
mp_respawn_on_death_t 1

// money and buying
mp_startmoney 60000
mp_maxmoney 60000
mp_buytime 9999
mp_buy_anywhere 1
ammo_grenade_limit_total 5

// nade and spray feedback
sv_grenade_trajectory_prac_pipreview 1
sv_grenade_trajectory_prac_trailtime 8
sv_showimpacts 1
sv_showimpacts_time 10

// stand on a teammate for boost spots
mp_solid_teammates 2

// map guides (see below)
sv_allow_annotations_access_level 2
sv_annotation_limits_max_rounds_per_half -1

mp_restartgame 1
```

What the less obvious lines do:

| Convar | Value | Effect |
|---|---|---|
| `sv_grenade_trajectory_prac_pipreview` | `1` | Picture-in-picture camera that follows the grenade to where it lands |
| `sv_grenade_trajectory_prac_trailtime` | `8` | Seconds the flight path stays drawn. `8` is the maximum the build allows |
| `ammo_grenade_limit_total` | `5` | Lets you carry one of every grenade. The engine default is `3` |
| `mp_buy_anywhere` | `1` | Buy anywhere, both teams. `2` is T only and `3` is CT only |
| `sv_showimpacts` | `1` | Client (red) and server (blue) impact boxes, for spray practice |
| `mp_solid_teammates` | `2` | Lets you stand on a teammate's head |
| `mp_ignore_round_win_conditions` | `1` | Round never ends, even when a team is wiped |

`bot_quota 0` comes before `bot_kick` on purpose. The quota is what keeps bots topped up, and on the egg's default Competitive mode Valve's `gamemode_competitive.cfg` sets `bot_quota 1`.

> [!WARNING] `sv_grenade_trajectory_prediction` is not a CS2 convar
> Many practice configs still include `sv_grenade_trajectory_prediction 1`. It is absent from every CS2 convar dump since October 2024, so the server prints an unknown-command error and carries on. Use the two `sv_grenade_trajectory_prac_*` convars above instead.

To go back to normal play, restart the server from the panel. That relaunches it with the egg's startup settings and a fresh config. If you only change the map, turn cheats off by hand first with `sv_cheats 0`.

## Nade Practice Commands

These are the commands you will use most while learning lineups.

| Command | Where | What it does |
|---|---|---|
| `sv_rethrow_last_grenade` | Server | Throws the last grenade thrown on the server again, from the same spot, so you can watch where it lands |
| `noclip` | Your console | Fly through walls to reach a throw spot or watch a landing. `noclip 0` forces it off |
| `getpos` | Your console | Prints your exact position and view angles, so you can note a lineup |
| `setpos <x> <y> <z>` | Your console | Teleport to coordinates |
| `setang <pitch> <yaw>` | Your console | Snap your view to exact angles |
| `host_timescale <n>` | Server | Speeds up the server clock. `host_timescale 4` makes a smoke bloom and fade quickly. Set it back to `1` afterwards |
| `god` | Your console | Invulnerable, so an HE or molotov doesn't kill you while you test it |

Put the ones you use constantly on keys. Binds are typed in your own game console:

```
bind "n" "noclip"
bind "g" "god"
bind "p" "getpos"
```

`sv_rethrow_last_grenade` and `host_timescale` are server commands. Run them from the Console tab or with an `rcon` prefix. A bind like `bind "c" "rcon sv_rethrow_last_grenade"` works once you have authenticated with `rcon_password`.

### Saving a lineup with getpos

Stand on the spot, aim at the lineup, and run `getpos`. The console prints your position and angles. Paste that output into a text file, one line per lineup, so later you can teleport there and be aiming at the right place. This is the whole mechanism behind the "setpos lineup" lists people share for each map.

## How to Clear Smokes and Molotovs

There is no native "clear smokes" command. You remove the grenade entities themselves with `ent_remove_all`, a cheat command run from the server console:

```
ent_remove_all smokegrenade_projectile
ent_remove_all molotov_projectile
ent_remove_all inferno
```

`smokegrenade_projectile` is an active smoke, `molotov_projectile` is a molotov or incendiary still in the air, and `inferno` is the fire on the ground. MatchZy's `.clear` command removes the same three entity types, which is a good sign this is the reliable method. Put the three lines in `game/csgo/cfg/clear.cfg` and you can clear everything with `exec clear`.

## Aim, Movement and Spray Practice

The same server works for more than utility:

| Command | Where | Use |
|---|---|---|
| `sv_showimpacts 1` / `sv_showimpacts_time 10` | Server | See where every bullet landed, client and server |
| `sv_showbullethits 1` | Server | Shows hits and near misses |
| `sv_infinite_ammo 1` | Server | Your active weapon never runs dry |
| `mp_teammates_are_enemies 1` | Server | Friends on the same team can duel |
| `sv_autobunnyhopping 1` | Server | Auto re-jump while holding jump. Useful for movement maps, not for learning real bhop timing |
| `buddha 1` | Server | You take damage but don't die. MatchZy's practice config uses it instead of `god` |
| `hurtme <n>` | Your console | Take a set amount of damage, for practising at low HP |

## Map Guides on Your Own Server

Since November 2024 CS2 has had **map guides**: in-world markers that show a grenade lineup, where to stand, and where to aim. Offline you turn them on under **Play → Practice → Load Map Guides**. On a dedicated server they are controlled by two convars that arrived in the 18 March 2026 update:

| Convar | Values |
|---|---|
| `sv_allow_annotations_access_level` | `0` off, `1` limited view, `2` full and editable |
| `sv_annotation_limits_max_rounds_per_half` | Default `5`. `-1` removes the round limit |

The practice config above sets `2` and `-1`, so guides are fully available for the whole session. Guides are loaded client-side from the pause menu or with `annotation_load`. Valve ships starter guides for the Active Duty maps, and community guides are on the Steam Workshop.

## Practice Mode with MatchZy

MatchZy is a CounterStrikeSharp plugin, mainly for running matches, but it has a full practice mode that turns all of the above into chat commands. If you already run it, or several people practise together, it is the faster route. Installation is covered in [How to install plugins on a Counter-Strike 2 server](/knowledge-base/counter-strike-2/how-to-install-plugins/) and [How to run 5v5 competitive matches](/knowledge-base/counter-strike-2/how-to-run-competitive-matches/).

Type `.prac` in chat to start practice mode and `.exitprac` to return to match mode. The practice commands:

| Command | Does |
|---|---|
| `.rethrow` (`.rt`) | Rethrow your last grenade. Also `.rethrowsmoke`, `.rethrowflash`, `.rethrownade`, `.rethrowmolotov` |
| `.last` / `.back <n>` | Teleport to where you threw your last grenade, or the nth one in your history |
| `.savenade <name>` / `.loadnade <name>` | Save a lineup by name and load it later |
| `.clear` | Remove all active smokes, molotovs and incendiaries |
| `.ff` | Fast-forward server time 20 seconds, so a smoke can finish |
| `.noflash` | Your own flashes don't blind you |
| `.bot` / `.crouchbot` / `.nobots` | Place a bot where you stand, crouched, or remove all bots |
| `.spawn <n>` / `.ctspawn <n>` / `.tspawn <n>` | Teleport to a numbered competitive spawn |
| `.timer` | Start and stop a timer, for timing a run-out or a smoke's arrival |
| `.traj` / `.impacts` / `.solid` | Toggle the grenade preview, bullet impacts, and solid teammates |
| `.dry` | Dry-run mode, a live round without the match starting |

MatchZy's own practice config lives in `csgo/cfg/MatchZy/prac.cfg`. Edit that file, not `server.cfg`, if you want to change how its practice mode behaves.

## FAQ

### Why does `noclip` say it can't be used?

The server has `sv_cheats` at `0`. Set `sv_cheats 1` in the Console tab. Typing it in your own console while connected to a dedicated server does nothing, because `sv_cheats` is controlled by the server.

### Do practice commands need VAC turned off?

No. `sv_cheats` works with VAC on. The **Enable VAC** variable in your Startup tab only controls whether the server launches with `-insecure`.

### Can I practise nades without cheats?

Partly. Grenade trails, the picture-in-picture preview, buy-anywhere, long rounds and respawns are all ordinary convars. Rethrowing, noclip, infinite ammo and clearing smokes are not.

### Why do bots keep joining my practice server?

Your game mode's config sets a bot quota, and it runs again when the map changes. Set `bot_quota 0` before `bot_kick`, and run both again after a map change.

## What to Read Next

- [Counter-Strike 2 server commands](/knowledge-base/counter-strike-2/how-to-add-admins-and-commands/): RCON, kick and ban commands, and the wider convar list
- [Counter-Strike 2 configuration](/knowledge-base/counter-strike-2/configuration-overview/): which config file does what
- [CS2 bot commands](/knowledge-base/counter-strike-2/bot-commands/): adding bots to practise against, and removing them for good
- [How to add Steam Workshop maps for Counter-Strike 2](/knowledge-base/counter-strike-2/how-to-add-workshop-maps/): load a practice map (a prefire or aim map) from the Workshop

---

Made with 💜 by GameServerKings
