Counter-Strike 2 developer console with commands

Best CS2 Console Commands for Practice, Gameplay and FPS

Practice server, sv_cheats, grenades, bots, the new crosshair commands, HUD, radar, network and FPS, plus four ready configs

Counter-Strike 2 has thousands of console commands, and most players need maybe fifty of them. This guide is about those fifty: the ones I actually use for practice, for real matches and for checking performance. Every command and default value here is checked against the current CS2 build, after the September 2026 update that renamed the crosshair commands.

Looking for one specific command? Type it in the search box below the contents, it filters every table on the page. For a full list of everything in the game, use my CS2 console commands database.

How CS2 Console Commands Work

The current build lists about 4,300 variables and 1,250 commands. Around half of them are development-only and hidden from players, and a lot of the rest are tools, servers or internal stuff. A command can also exist and still do nothing for you, because it depends on where you are. There are three kinds:

Your settings

Crosshair, HUD, radar, viewmodel, sensitivity, binds. They're saved to your config and work everywhere, matchmaking and Premier too.

Server rules

mp_*, most sv_* and bot_*. They work only where you are the host: Practice, a private match you started, your own server.

Cheat-protected

Need sv_cheats 1 first, so they also work only on your own server. In the tables below they have a cheat mark.

How to Open the Console in CS2

  1. Open Settings → Game.
  2. Set Enable Developer Console (~) to Yes.
  3. Press ~ (the key under Esc) in the menu or in game.
CS2 game settings with Enable Developer Console set to Yes
Settings → Game → Enable Developer Console

If the key doesn't open it, your keyboard layout may use that key for something else. Bind Toggle Console to another key in the Keyboard / Mouse settings. In the console, find plus a word lists every command that has it in the name or description. I use it all the time to check whether some command from an old guide still exists.

Valve's own reference is the List of Counter-Strike 2 console commands and variables on the Valve Developer Community. It's long and not always up to date, but it's the closest thing to an official list.

Best CS2 Practice Commands

Practice starts on a local server: Play → Practice, any mode and map, GO. Then these commands take out the waiting: no warmup, no freeze time, money for everything, long rounds. In the Default column I give the value Competitive uses, because that's what you get in Practice. Casual and Deathmatch set their own.

Practice Server Commands

Command Values Default What it does
mp_warmup_start - - Starts warmup.
mp_warmup_end - - Ends warmup right away.
mp_warmup_pausetimer 0 / 1 0 1 keeps you in warmup until you set it back to 0. Handy for long practice.
mp_warmuptime 5 - N (sec) 120 Warmup length. Changing it restarts warmup.
mp_restartgame N (sec) 0 Restarts the match after N seconds.
mp_freezetime 0 - 60 (sec) 15 Freeze time at the start of a round.
mp_roundtime 0.1 - 60 (min) 1.92 Round length in minutes.
mp_roundtime_defuse 0 - 60 (min) 1.92 Round length on bomb maps. 0 means use mp_roundtime.
mp_roundtime_hostage 0 - 60 (min) 1.92 Same for hostage maps.
mp_maxrounds 0 - N 24 Rounds in a match, 0 = no limit.
mp_timelimit 0 - N (min) 0 Time per map, 0 = no limit.
mp_ignore_round_win_conditions 0 / 1 0 The round doesn't end when a team dies or the bomb explodes. One endless round.
mp_buytime 0 - N (sec) 20 How long you can buy after the round starts.
mp_buy_anywhere 0 - 3 0 Buy outside the buy zone: 1 both teams, 2 only T, 3 only CT.
mp_startmoney 0 - N 800 Money at the start of the match.
mp_maxmoney 0 - N 16000 Money cap.
mp_afterroundmoney 0 - N 0 Money added to everyone after each round.
mp_c4timer 10 - N (sec) 40 Time from the plant to the explosion.
mp_friendlyfire 0 / 1 1 Team damage.
mp_respawn_on_death_t / mp_respawn_on_death_ct 0 / 1 0 Instant respawn after death for that side.
mp_limitteams 0 - 30 2 How many players one team can have over the other, 0 = no limit. More in my auto balance guide .
mp_autoteambalance 0 / 1 1 Moves players between teams to keep them even.
sv_showimpacts 0 - 3 0 Bullet impact marks: 1 client (red) and server (blue), 2 client only, 3 server only.
sv_showimpacts_time 0 - 10 (sec) 4 How long impact marks stay.
sv_showbullethits 0 - 2 0 1 shows hits and near misses, 2 only hits.
sv_specnoclip 0 / 1 1 Spectators fly through walls.

sv_cheats Commands

These unlock after sv_cheats 1. Valve made them for developers and mappers, but for practice they're gold: fly to a spot, freeze the bots, see your exact coordinates for a lineup. Online the game just ignores them, so there's no ban risk, they simply don't work there.

Command Values Default What it does
sv_cheats 0 / 1 0 Unlocks cheat-protected commands on a server you host.
noclip cheat toggle, 0 / 1 - Fly through walls and floors.
god cheat toggle, 0 / 1 - You take no damage.
buddha cheat 0 / 1 0 You take damage but can't die.
kill cheat - - Kills your player. In CS2 this one needs sv_cheats 1.
sv_infinite_ammo cheat 0 / 1 0 Your active weapon never runs out of ammo, grenades too.
sv_regeneration_force_on cheat 0 / 1 0 Health comes back after damage.
cl_showpos cheat 0 / 1 0 Shows your position, view angles and speed at the top of the screen. The base of every lineup.
cl_drawhud cheat 0 / 1 1 Turns the whole HUD off, for clean screenshots.
cl_ent_bbox cheat entity - Draws boxes around entities, players included, through walls. Legal wallhack for learning angles.
cl_ent_clear_debug_overlays cheat - - Removes those boxes.
cl_disable_ragdolls cheat 0 / 1 0 No ragdolls after death. Now cheat-protected, so it works only offline.

CS2 Grenade Practice Commands

Grenade practice is about repeating one throw until it lands the same every time. The trail shows the flight path, the preview window shows the landing spot before you throw, and rethrow lets you go stand where the smoke lands and watch it come in. The ready nades.cfg with all of this is in the configs section.

Command Values Default What it does
sv_grenade_trajectory_prac_pipreview 0 / 1 0 Small picture-in-picture window that shows where the grenade will land before you throw.
sv_grenade_trajectory_prac_trailtime 0 - 8 (sec) 0 How long the flight path stays on screen after a throw.
sv_grenade_trajectory_time_spectator 0 - 8 (sec) 0 The same trail, for spectators.
ammo_grenade_limit_total 0 - N 3 How many grenades you can carry in total.
sv_rethrow_last_grenade cheat - - Throws your last grenade again from the same spot, so you can watch it from where it lands.
sv_infinite_ammo cheat 0 / 1 0 With 1 you get the grenade back right after the throw.

CS2 Bot Commands

Bots are the easiest way to get a repeatable fight: you control how many there are, how good they are, where they stand and whether they shoot back. Two things trip people up. Bot difficulty only applies to bots added after you change it, and CS2 adjusts their level every round unless you turn that off with sv_auto_adjust_bot_difficulty 0.

CS2 Expert and Elite bot templates with bot names and weapon roles
Expert and Elite bot profiles: add them by name to get that exact bot
Command Values Default What it does
bot_add t / ct, level, name - Adds one bot. Without a team the game picks the side that needs it.
bot_add_t / bot_add_ct level, name - Adds one bot to that side: bot_add_ct expert . With a bot name you get that exact profile, that's how you get Elite bots .
bot_kick all, t / ct, name - Kicks all bots, one side or one bot by name.
bot_quota 0 - N 10 How many bots the game keeps on the server.
bot_quota_mode normal / fill / match normal Practice uses fill: bots fill the server up to the quota. normal means exactly that many bots.
bot_difficulty 0 - 3 1 0 easy, 1 normal, 2 hard, 3 expert. Only for bots added after you set it. Competitive sets 2.
sv_auto_adjust_bot_difficulty 0 / 1 1 The game changes bot level every round by comparing their score to yours. 0 keeps the level you set.
bot_autodifficulty_threshold_low / bot_autodifficulty_threshold_high -20 - 20 -2 / 0 Score gap that makes bots harder or easier when auto difficulty is on.
bot_join_team any / T / CT any Which side new bots join.
bot_knives_only / bot_pistols_only / bot_snipers_only - - Bots use only knives, pistols or snipers.
bot_all_weapons - - Bots use all weapons again.
bot_stop cheat 1 / t / ct 0 Bots freeze in place.
bot_dont_shoot cheat 0 / 1 0 Bots move but don't shoot.
bot_zombie cheat 0 / 1 0 Bots stay idle and don't attack.
bot_ignore_players cheat 0 / 1 0 Bots don't see human players.
bot_crouch cheat 0 / 1 0 All bots crouch.
bot_mimic cheat 0 / player 0 Bots copy the movement of the player with that index, bot_mimic 1 is usually you.
bot_place cheat - - Puts a bot where you aim.

For uneven setups like 1v5 or 5v10 you also need mp_limitteams 0 and mp_autoteambalance 0. My auto balance guide has a builder that writes the whole setup for you. Bot profiles, names and behaviour are covered in Bots in Counter-Strike 2.

CS2 Crosshair Commands After the September 2026 Update

In September 2026 Valve rebuilt the crosshair. Length, thickness and gap are now in real pixels and the game rescales them when you change resolution. There are ten styles instead of the old few, an outline with its own color, and old crosshair share codes stopped working. Several commands were renamed or removed, so crosshair configs from before the update half work at best.

cl_crosshairsize
→ cl_crosshair_length, now in pixels
cl_crosshairthickness
→ cl_crosshair_thickness, in pixels
cl_crosshairgap
→ cl_crosshair_gap, in pixels
cl_crosshairalpha
→ cl_crosshaircolor_a
removed
cl_crosshaircolor (use R, G, B), cl_crosshairusealpha , cl_crosshair_outlinethickness (outline is now 0 off, 1 full, 2 half), cl_crosshairgap_useweaponvalue

Crosshair Commands

Command Values Default What it does
cl_crosshairstyle 0 - 9 7 0 Dynamic Cross, 1 Dynamic Circle, 2 Dynamic Cross (Legacy), 3 Static Circle, 4 Static Cross, 5 Static Cross (Shot Feedback), 6 Dot Only, 7 Dynamic Quad, 8 Static Square, 9 Static Quad.
cl_crosshair_length 0 - 255 (px) 8 Bar length in pixels. Replaces cl_crosshairsize.
cl_crosshair_thickness 0 - 32 (px) 2 Bar thickness, minimum 1 pixel. Replaces cl_crosshairthickness.
cl_crosshair_gap px 4 Gap between the center and the bars. Replaces cl_crosshairgap.
cl_crosshairdot 0 / 1 0 Center dot.
cl_crosshair_t 0 / 1 0 T-style: no top bar.
cl_crosshair_drawoutline 0 - 2 1 Outline: 0 off, 1 full, 2 half.
cl_crosshaircolor_r / cl_crosshaircolor_g / cl_crosshaircolor_b 0 - 255 0 / 255 / 0 Crosshair color in RGB. The old color presets are gone.
cl_crosshaircolor_a 0 - 255 255 Opacity. Replaces cl_crosshairalpha and cl_crosshairusealpha.
cl_crosshairoutline_r / cl_crosshairoutline_g / cl_crosshairoutline_b / cl_crosshairoutline_a 0 - 255 0 / 0 / 0 / 255 Outline color and opacity. New, before the outline was always black.
cl_crosshair_recoil 0 / 1 1 The crosshair follows recoil.
cl_crosshair_dynamic_splitdist 0 - 127 3 Style 2 only: where the bars split while moving and shooting.
cl_crosshair_dynamic_spread_limit 0 - 255 255 How far dynamic bars can spread.
crosshair 0 / 1 1 Turns the crosshair off and on.
cl_crosshair_friendly_warning 0 / 1 1 Warning sign when you aim at a teammate.
cl_crosshair_sniper_width 1 - N 1 Thickness of the sniper scope lines.
cl_sniper_auto_rezoom 0 / 1 1 Scope back in after a sniper shot.
cl_sniper_delay_unscope 0 / 1 0 Small delay before unscoping after a shot.
cl_ironsight_usecrosshaircolor 0 / 1 0 AUG and SG 553 scope dot uses your crosshair color.
cl_ironsight_dot_scale 0.1 - 2 1 Size of that scope dot.
cl_show_observer_crosshair 0 - 2 2 Show the crosshair of the player you spectate: 0 off, 1 friends and party, 2 everyone.
cl_observed_bot_crosshair 0 - 2 2 When you spectate a bot: 0 your crosshair, 1 yours only when you can take over, 2 the default one.

The easiest way to set it up is still the in-game Crosshair and Scope menu, it shows the result live. Commands are for your config, so the crosshair stays the same after a reinstall or on another PC. More on styles and pro crosshairs in my CS2 crosshair guide.

Viewmodel Commands

Command Values Default What it does
viewmodel_offset_x -2 - 2.5 1 Weapon left and right.
viewmodel_offset_y -2 - 2 1 Weapon forward and back.
viewmodel_offset_z -2 - 2 -1 Weapon up and down.
viewmodel_fov 60 - 68 60 Viewmodel field of view. Values under 60 no longer work.
viewmodel_presetpos 1 / 2 1 Preset position: 1 Desktop, 2 Classic.
switchhands / switchhandsleft / switchhandsright - - Weapon to the other hand, the left or the right one.
cl_prefer_lefthanded 0 / 1 0 Left hand by default. Details in how to switch weapon hand.

CS2 HUD and Radar Commands

These don't change the game, they change how fast you read it. The radar matters most: a radar that shows the whole map without spinning gives you info at a glance, and that's worth more than any FPS tweak.

CS2 HUD settings with scale, color and notifications
HUD settings in game
CS2 radar settings with rotation, zoom and size
Radar settings in game

HUD Commands

Command Values Default What it does
hud_scaling 0.9 - 1.1 1 Size of the whole HUD.
cl_hud_color 0 - 12 0 0 team color, 1 white, 2 bright white, 3 light blue, 4 blue, 5 purple, 6 red, 7 orange, 8 yellow, 9 green, 10 aqua, 11 pink, 12 teammate color.
cl_teamid_overhead_mode 0 - 3 3 Above teammates: 0 nothing, 1 pips, 2 plus name, 3 plus equipment.
hud_showtargetid 0 / 1 1 Name of the player you aim at.
cl_draw_only_deathnotices 0 / 1 0 Only the crosshair and the kill feed stay on screen. Made for videos.
cl_weapon_selection_rarity_color 0 / 1 0 Weapon selection shows the rarity color of your skins.
cl_force_spec_hud_color_to_team 0 / 1 1 While spectating, the HUD takes the team or teammate color.
cl_teamcounter_playercount_instead_of_avatars 0 / 1 0 Player counts instead of avatars at the top.
cl_hide_avatar_images 0 / 1 0 Hides the avatars of other players.
cl_allow_animated_avatars 0 / 1 1 Animated Steam avatars.
ui_steam_overlay_notification_position topleft / topright / bottomleft / bottomright bottomleft Where Steam pop-ups appear.

Radar Commands

Command Values Default What it does
cl_radar_always_centered 0 / 1 1 Keeps you in the center of the radar. 0 shows more of the map near the edges.
cl_radar_rotate 0 / 1 1 Radar turns with your view. 0 keeps it fixed to the map.
cl_radar_scale 0.25 - 1 0.7 Radar zoom. Lower shows more of the map.
cl_radar_scale_alternate 0.25 - 1 1 Second zoom level for the toggle key.
cl_radar_scale_dynamic 0 / 1 0 Zooms out by itself to fit everything spotted on the map.
cl_hud_radar_scale 0.8 - 1.3 1 Radar size on screen.
cl_radar_icon_scale_min 0.4 - 1.25 0.6 Minimum size of player icons.
cl_radar_square_with_scoreboard 0 / 1 1 Square full-map radar while the scoreboard is open.
cl_radar_square_always 0 / 1 0 Square radar all the time.
cl_hud_radar_background_alpha 0 - 1 0.627 Radar background opacity.
cl_hud_radar_blur_background 0 / 1 1 Blur under the radar, visible when the background isn't fully opaque.
cl_hud_radar_map_additive 0 / 1 1 Blends the map picture over the background.

My radar: cl_radar_rotate 1, cl_radar_always_centered 0, cl_radar_scale 0.5, cl_hud_radar_scale 1.1. A clean HUD setup step by step is in CS2 HUD customization.

CS2 Network and Telemetry Commands

net_graph is gone in CS2. Its job is done by telemetry: small indicators in the corner for FPS, ping and packet loss. Each _show command takes 0 never, 1 only when things are bad, 2 always. The network settings themselves are mostly fine at default, CS2 handles them better than old configs do.

CS2 telemetry overlay with FPS, ping, packet loss and jitter
Telemetry with all graphs on
Command Values Default What it does
rate 98304 - 1000000 786432 Max bytes per second you can receive. The default is fine for almost everyone, 1000000 is the max.
cl_interp_ratio 0 - 19 0 Interpolation ticks. CS2 ships with 0, most players never need to touch it.
cl_interp - - In CS2 it only prints the interpolation time the game actually uses. You can't set it anymore.
mm_dedicated_search_maxping 25 - 350 150 Max ping for matchmaking servers. See how to set max ping in CS2.
cl_hud_telemetry_frametime_show 0 - 2 1 FPS and frame time in the HUD.
cl_hud_telemetry_frametime_poor 1 - 100 (ms) 100 Frame time above this counts as poor.
cl_hud_telemetry_ping_show 0 - 2 1 Ping in the HUD.
cl_hud_telemetry_ping_poor ms 100 Ping above this counts as poor.
cl_hud_telemetry_net_misdelivery_show 0 - 2 1 Percent of lost or late packets.
cl_hud_telemetry_net_misdelivery_poor 0 - 100 (%) 2 Loss above this counts as poor.
cl_hud_telemetry_net_detailed 0 - 2 0 Breakdown: loss, late delivery and peak jitter.
cl_hud_telemetry_net_quality_graph_show 0 - 2 0 Graph of jitter, loss and packet reordering.
cl_hud_telemetry_serverrecvmargin_graph_show 0 - 2 0 Graph of how early or late your commands reach the server.

What each graph means and when to worry is in my CS2 telemetry guide.

CS2 FPS Commands: What They Really Do

Let me be straight: there are no secret FPS commands in CS2. FPS comes from your hardware, drivers, Windows and video settings. What console commands can do is take away small bits of work (UI, tracers, ragdolls) and help you find where a stutter comes from. Sometimes that gives a few frames, more often just smoother frame times.

The Online column matters here. Some popular "FPS commands" are cheat-protected or controlled by the server, so in matchmaking they do nothing at all.

Command Values Default Online What it really does
fps_max 0 - N 400 yes FPS cap in game, 0 = no cap. Uncapped gives more average FPS, a cap a bit under what your PC holds often gives smoother frame times.
fps_max_ui 0 - N 200 yes FPS cap in menus. Keeps the GPU calm while you sit in the menu.
cl_showfps 0 - 4 0 yes 1 FPS, 2 smoothed FPS, 3 server ms, 4 FPS plus a log file. More in how to show FPS in CS2 .
engine_low_latency_sleep_after_client_tick 0 / 1 0 yes Moves the low latency sleep after the client tick. Works only with NVIDIA Reflex or AMD Anti-Lag 2 on in video settings.
r_drawtracers_firstperson 0 / 1 1 yes Your own bullet tracers. Less noise during sprays.
r_show_build_info 0 / 1 1 yes Build info in the corner. No FPS effect, just a cleaner screen.
cl_autohelp 0 / 1 1 yes In-game hints.
cl_hide_avatar_images 0 / 1 0 yes Hides other players' avatars, a bit less UI work.
cl_allow_animated_avatars 0 / 1 1 yes Animated avatars off, fewer UI updates.
cl_ragdoll_limit -1 - N 20 yes Max ragdolls at once. Lower helps a little on weak CPUs.
cl_disable_ragdolls 0 / 1 0 offline No ragdolls at all. Cheat-protected now, so useless in matchmaking.
func_break_max_pieces 0 - 15 15 server Debris from breakable objects. The server decides this one, so it changes only on your own server.

If you have real FPS problems, start with my CS2 FPS guide and how to fix FPS drops and stutters. How FPS and your monitor's Hz work together is in FPS and refresh rate, with CS 1.6 for comparison.

Other Useful CS2 Console Commands

The everyday ones: finding commands, connecting, configs, binds, sound and chat.

Command Values Default What it does
find text - Searches commands by name and description: find radar. The fastest way to check if a command still exists.
help command - Prints the description of a command.
cvarlist - - Prints every command and variable.
clear - - Clears the console.
echo text - Prints text. I put it at the end of configs to see that they ran.
status - - Server, map and players with their SteamIDs.
connect ip:port - Connects to a server.
disconnect - - Leaves the server.
quit - - Closes the game.
map map name - Loads a map on a local server: map de_dust2.
exec file name - Runs a cfg file from the cfg folder.
host_writeconfig - - Saves your current settings to disk right now.
bind / unbind key, command - Puts a command on a key or removes it. Full guide in my bind tutorial .
binddefaults - - Resets all keys to default.
alias name, commands - Your own command made of others: alias "qq" "quit".
toggle variable, values - Switches a variable between values, great for binds: toggle cl_radar_scale 0.4 0.7.
sensitivity 0.0001 - 8 1.25 Mouse sensitivity.
zoom_sensitivity_ratio 0.01 - 3 1 Sensitivity while scoped.
volume 0 - 1 1 Master volume.
snd_voipvolume 0 - 2 1 Voice chat volume.
cl_mute_enemy_team 0 / 1 0 Mutes chat and voice from the enemy team.
cl_mute_all_but_friends_and_party 0 - 2 0 Only friends and party can talk to you: 1 outside Competitive, 2 in all modes.

How to Create and Load a CS2 Config

A config is a text file with commands, one per line. Instead of typing twenty commands every time you run one: exec bots. CS2 looks for them here:

...\steamapps\common\Counter-Strike Global Offensive\game\csgo\cfg\
CS2 cfg folder inside the Steam library
The cfg folder when the Steam library is on D:\Games\SteamGames\
  1. Create a text file in that folder, for example config.txt.
  2. Put your commands, binds or scripts inside.
  3. Rename it to config.cfg. Turn on file extensions in Explorer, so it doesn't end up as config.cfg.txt.

If your Steam library is somewhere else or you're not sure which folder is right, see my CS2 config location guide. Then there are three ways to run it.

From the Console

exec config

Good for practice configs you load when you need them.

From Launch Options

Steam → Library → right-click Counter-Strike 2 → Properties → General → Launch Options, and add this at the end of the line:

+exec config
Steam launch options for CS2 with +exec config.cfg
The config runs every time the game starts

What else is worth putting in launch options (not much) is in my CS2 launch options guide.

With autoexec.cfg

autoexec.cfg runs by itself every time CS2 starts. It doesn't exist by default, you create it in the same cfg folder. I keep only the always-on stuff there and load other configs from it:

cl_showfps 1
exec config
Testing autoexec.cfg in CS2 with the FPS counter in the main menu
The FPS counter in the main menu means autoexec.cfg ran

Why cl_showfps 1? It's a quick test. The counter shows up right in the main menu, so you know autoexec worked without loading a map. Remove it later if you want. More on cfg files in the CS2 config guide, and if you'd rather click than type, the CS2 Config Generator builds an autoexec for you.

Ready-to-Use CS2 Practice and Gameplay Configs

Four configs I use. Copy one, save it as a .cfg with the name in the frame, and load it with exec. Lines starting with // are comments, the game skips them.

Gameplay Config for a Clean HUD and Stable FPS (config.cfg)

Not a "+50 FPS" config. It turns off small things that cost the engine work and add screen noise: tracers, avatars, hints, extra ragdolls. On most PCs the average FPS barely moves, but the drops in big fights get smaller. Radar and HUD are set for reading the game fast. The crosshair part uses the new commands, put your own values there or make them in the in-game menu.

// General
volume 0.6
sensitivity 1.9
mm_dedicated_search_maxping 75
cl_sniper_auto_rezoom 0

// FPS: 0 = no cap. If you get micro stutters, try a cap a bit under your usual FPS
fps_max 0
fps_max_ui 120
r_drawtracers_firstperson 0
r_show_build_info 0
cl_autohelp 0
cl_hide_avatar_images 1
cl_allow_animated_avatars 0
// numbers instead of avatars at the top, remove // to use
//cl_teamcounter_playercount_instead_of_avatars 1
cl_ragdoll_limit 5
cl_teamid_overhead_mode 1
hud_showtargetid 0

// Network
rate 1000000

// Telemetry: 0 never, 1 only when poor, 2 always
cl_hud_telemetry_frametime_show 1
cl_hud_telemetry_ping_show 1
cl_hud_telemetry_net_misdelivery_show 1
cl_hud_telemetry_net_detailed 0
cl_hud_telemetry_net_quality_graph_show 0
cl_hud_telemetry_serverrecvmargin_graph_show 0

// HUD and radar
cl_hud_color 0
cl_weapon_selection_rarity_color 1
cl_radar_rotate 1
cl_radar_always_centered 0
cl_radar_scale 0.5
cl_hud_radar_scale 1.1
cl_radar_scale_dynamic 0
cl_radar_icon_scale_min 0.7
cl_radar_square_with_scoreboard 0
cl_radar_square_always 0
cl_hud_radar_background_alpha 0.627
cl_hud_radar_blur_background 1
cl_hud_radar_map_additive 1

// Crosshair (new commands, small static green cross)
crosshair 1
cl_crosshairstyle 4
cl_crosshair_length 6
cl_crosshair_thickness 2
cl_crosshair_gap 2
cl_crosshairdot 0
cl_crosshair_t 0
cl_crosshair_drawoutline 1
cl_crosshaircolor_r 0
cl_crosshaircolor_g 255
cl_crosshaircolor_b 0
cl_crosshaircolor_a 255
cl_crosshair_recoil 0
cl_crosshair_sniper_width 2

echo config.cfg executed

Bot Practice Config (bots.cfg)

Offline practice against strong bots. You on T with 6 easy bots, against 13 expert CTs. That's 20 players, so start a Casual match, Competitive has only 10 slots. Run it after the map loads, and again after every map change, because loading a map resets the bot quota. For other team sizes use the builder in the auto balance guide.

The binds at the bottom are commented out. They all use the same key c only to show the idea, only the last bind on a key works. Pick your own keys and remove the //.

// Server
mp_warmuptime 5
mp_freezetime 3
mp_limitteams 0
mp_autoteambalance 0
mp_buytime 120
mp_buy_anywhere 1
mp_maxmoney 16000
mp_startmoney 5000
mp_roundtime 2.5
mp_roundtime_defuse 2.5
mp_maxrounds 24
mp_c4timer 40
mp_friendlyfire 1
sv_showimpacts 2
sv_showimpacts_time 5
sv_showbullethits 1

// Bots: clear, keep the count fixed, keep the level fixed
bot_kick
bot_quota_mode normal
sv_auto_adjust_bot_difficulty 0
// 6 easy T + you vs 13 expert CT
bot_add_t easy
bot_add_t easy
bot_add_t easy
bot_add_t easy
bot_add_t easy
bot_add_t easy
bot_add_ct expert
bot_add_ct expert
bot_add_ct expert
bot_add_ct expert
bot_add_ct expert
bot_add_ct expert
bot_add_ct expert
bot_add_ct expert
bot_add_ct expert
bot_add_ct expert
bot_add_ct expert
bot_add_ct expert
bot_add_ct expert
mp_restartgame 1

// Binds: change the key, remove // to use
//bind "c" "toggle sv_cheats" // cheats on / off
//bind "c" "sv_cheats 1; noclip" // fly
//bind "c" "sv_cheats 1; toggle sv_regeneration_force_on" // health regeneration
//bind "c" "sv_cheats 1; toggle cl_showpos" // coordinates on screen
//bind "c" "toggle cl_draw_only_deathnotices" // only crosshair and kill feed
//bind "c" "sv_cheats 1; toggle cl_drawhud" // no HUD at all

echo bots.cfg executed

Grenade Practice Config (nades.cfg)

For learning smokes, flashes and molotovs, normal and jump throws. Endless warmup, money and grenades, the flight trail, and three binds: fly, coordinates, rethrow. Each bind is on its own key here, change them to whatever is comfortable.

// Server
sv_cheats 1
mp_warmup_start
mp_warmup_pausetimer 1
mp_buytime 3600
mp_buy_anywhere 1
mp_maxmoney 16000
mp_startmoney 16000

// Grenades
sv_infinite_ammo 1
ammo_grenade_limit_total 5
sv_grenade_trajectory_prac_pipreview 1
sv_grenade_trajectory_prac_trailtime 8
sv_showimpacts 1

// Binds: change the keys if you need them for something else
bind "F6" "noclip" // fly on / off
bind "F7" "toggle cl_showpos" // coordinates on / off
bind "F8" "sv_rethrow_last_grenade" // throw the last grenade again

echo nades.cfg executed

The binds stay saved after you leave practice. They do nothing online, but if you want the keys back, unbind them with unbind F6 and so on.

Bunnyhop Practice Config (bunny.cfg)

Only for movement practice. No stamina loss, fast air acceleration, auto jump while you hold space. This is nothing like real matchmaking movement, it's for feeling how air strafing works.

mp_warmup_start
mp_warmup_pausetimer 1
mp_buytime 3600
mp_buy_anywhere 1
mp_maxmoney 16000
mp_startmoney 16000
sv_maxspeed 1000
sv_enablebunnyhopping 1
sv_autobunnyhopping 1
sv_staminajumpcost 0
sv_staminalandcost 0
sv_airaccelerate 100

echo bunny.cfg executed

To go back to normal movement, load another map or set sv_airaccelerate 12, sv_maxspeed 320, sv_enablebunnyhopping 0, sv_autobunnyhopping 0, sv_staminajumpcost 0.08 and sv_staminalandcost 0.05.

CS:GO Commands That No Longer Work in CS2

Old configs and "FPS boost" lists are still full of CS:GO commands. CS2 doesn't have them at all, so the console prints "Unknown command" or just skips the line in a config. I checked each of these against the current build:

net_graph
Gone. Replaced by telemetry, see the network section above.
cl_forcepreload
Gone. Source 2 loads assets on its own.
mat_queue_mode
Gone. Rendering threads are managed by the engine.
r_dynamic
Gone. Lighting is part of the new renderer.
cl_disablehtmlmotd
Gone. CS2 has no HTML MOTD on servers.
cl_player_proximity_debug
Gone from the current build, even with sv_cheats.
cl_crosshairsize, cl_crosshairgap...
Renamed in September 2026, see the crosshair section.

The rule I use: if find doesn't show a command, it doesn't exist. If it exists but nothing changes after you set it, it's either server-controlled or cheat-protected.

CS2 Launch Options Myths

Launch options run once when the game starts. They're for startup behaviour, not performance. Most "FPS launch options" come from CS:GO or even 1.6 and do nothing in CS2:

Option What it did before In CS2
-novid Skipped the intro video in CS:GO No intro video to skip
-threads N Set the number of CPU threads The engine picks threads itself, forcing it rarely helps and can hurt
-nojoy Turned off joystick support Joystick is already off by default
-fullscreen, -windowed, -noborder Forced the display mode Set it in video settings instead
-freq, -refresh Forced the refresh rate CS2 detects it. Only useful to force a lower rate on purpose
-tickrate 128 Tickrate of your own server in CS:GO CS2 runs at 64 tick with subtick, this does nothing
+cl_forcepreload 1 Preloaded assets in CS:GO The command doesn't exist anymore
+fps_max 0 Removed the FPS cap Works, but it's just a console command run at startup

What actually works is in my launch options guide, and more old beliefs about the game are checked in CS2 myths and mechanics.

Conclusion

Console commands in CS2 don't unlock hidden performance. They give you control: a practice server that doesn't waste your time, bots that do what you need, a crosshair and radar set up once and saved in a config. The useful set is small, and most of what floats around in old guides either was renamed or doesn't exist anymore.

If you only take three things from this: check commands with find, keep practice setups in separate configs instead of autoexec, and update your crosshair config after the September update.

CS2 Console Commands FAQ

How do I open the console in CS2?

Settings → Game → Enable Developer Console (~) → Yes. Then press the ~ key.

Do console commands work in matchmaking and Premier?

Your own settings do: crosshair, HUD, radar, viewmodel, binds. Server rules like mp_* and anything that needs sv_cheats work only on a server you host.

Can I get banned for using console commands?

No. The console is part of the game. Commands that aren't allowed on a server are just ignored there.

Why doesn't my crosshair command work anymore?

The September 2026 update renamed them. cl_crosshairsize is now cl_crosshair_length, cl_crosshairgap is cl_crosshair_gap, cl_crosshairthickness is cl_crosshair_thickness, and the values are in pixels now.

Can console commands increase FPS in CS2?

Not much. They can remove small overhead and make frame times a bit more even. Real FPS comes from hardware, drivers and video settings.

How do I check if a command exists in CS2?

Type find and part of the name in the console, for example find crosshair. If it's not in the list, CS2 doesn't have it.

Which commands need sv_cheats 1?

The ones marked "cheat" in the tables above: noclip, god, kill, cl_showpos, sv_infinite_ammo, sv_rethrow_last_grenade, bot_stop, bot_dont_shoot and others. In CS2 even kill and cl_disable_ragdolls are on that list.

Should I put everything into autoexec.cfg?

No. Keep the always-on settings there and put practice setups into separate configs you load with exec when you need them.

More CS2 Guides

Leave a Reply

Your email address will not be published. Required fields are marked *