Skip to content
CS2 Crosshair Code

All CS2 Crosshair Commands

Every crosshair cvar CS2 exposes, with the range the console accepts, the value the game ships with, and what it changes on screen.

All of these run in the developer console. Turn it on under Settings, Game, Enable Developer Console, then open it with the tilde key. Values with a decimal point are accepted as written, for example cl_crosshairthickness 0.5. The settings menu exposes a narrower range than the console for size and gap, which is why some pro values look impossible to set through the UI.

If you would rather not type any of this, build the crosshair visually in the generator and export a code, or paste an existing code into the decoder to see the exact commands behind it.

Shape

Command Range Default What it does
cl_crosshairstyle 0 to 5 0 Crosshair type. 0 to 3 are Classic dynamic variants that expand as you move and shoot, 4 is Classic Static, 5 is Legacy.
cl_crosshairsize 0 to 25.5 (UI 0 to 10) 5 Length of each bar. The settings menu slider stops at 10, the console accepts up to 25.5.
cl_crosshairgap -12.8 to 12.7 (UI -5 to 5) 1 Distance between the bars and the centre. It is an offset from a base distance of 4 pixels, so -4 makes the bars touch the centre. Pros go as low as -7 through the console.
cl_crosshairthickness 0 to 25.5 (UI 0 to 3) 0.5 Width of each bar. The game rounds the result to whole pixels.
cl_crosshairdot 0 or 1 0 Draws a dot in the centre of the crosshair.
cl_crosshair_drawoutline 0 or 1 0 Turns the black outline around each bar on or off.
cl_crosshair_outlinethickness 0 to 3, in steps of 0.5 1 How thick the outline is. Only has an effect when the outline is on.
cl_crosshair_t 0 or 1 0 T-style crosshair. Removes the top bar and leaves left, right and bottom.
cl_crosshairgap_useweaponvalue 0 or 1 0 Uses a gap value defined by the weapon you are holding instead of your own gap setting.
cl_fixedcrosshairgap -12.8 to 12.7 3 Gap used by the fixed crosshair, the one shown while scoped or aiming with certain weapons.

Colour and alpha

Command Range Default What it does
cl_crosshaircolor 0 to 5 1 Colour preset. 0 red (250, 50, 50), 1 green (50, 250, 50), 2 yellow (250, 250, 50), 3 blue (50, 50, 250), 4 cyan (50, 250, 250), 5 custom.
cl_crosshaircolor_r 0 to 255 50 Red channel of the custom colour. Only used when cl_crosshaircolor is 5.
cl_crosshaircolor_g 0 to 255 250 Green channel of the custom colour. Only used when cl_crosshaircolor is 5.
cl_crosshaircolor_b 0 to 255 50 Blue channel of the custom colour. Only used when cl_crosshaircolor is 5.
cl_crosshairalpha 0 to 255 200 Opacity of the crosshair. 255 is fully solid.
cl_crosshairusealpha 0 or 1 1 When 0 the alpha value is ignored, the crosshair is forced to alpha 200 and drawn with additive blending, which makes it glow on dark backgrounds.

Dynamic behaviour

Command Range Default What it does
cl_crosshair_dynamic_splitdist 0 to 127 7 How far the bars split apart on dynamic styles.
cl_crosshair_dynamic_splitalpha_innermod 0 to 1 1 Alpha multiplier for the inner part of the split bars.
cl_crosshair_dynamic_splitalpha_outermod 0 to 1 0.5 Alpha multiplier for the outer part of the split bars.
cl_crosshair_dynamic_maxdist_splitratio 0 to 1 0.3 Share of the maximum distance at which the bars finish splitting.
cl_crosshair_recoil 0 or 1 0 CS2 only. The crosshair follows your spray pattern instead of staying at the centre of the screen.

Not in share codes

Command Range Default What it does
crosshair 0 or 1 1 Master toggle. Set to 0 to hide the crosshair completely.
cl_crosshair_friendly_warning 0 or 1 1 Shows a warning marker on the crosshair when a teammate is in your line of fire.
cl_crosshair_sniper_width 0 to 20 1 Thickness of the thin scoped sniper crosshair lines.
cl_crosshair_sniper_show_normal_inaccuracy 0 or 1 0 Adds movement inaccuracy to the scoped sniper crosshair display.
apply_crosshair_code a share code none Applies a full crosshair share code at once.

A ready-to-paste config

This is the shape most professional players land on: a small, static, solid green crosshair with the bars almost touching the centre. Paste the whole block into the console, or drop it into your autoexec.cfg.

cl_crosshairstyle 4
cl_crosshairsize 1
cl_crosshairgap -4
cl_crosshairthickness 1
cl_crosshair_drawoutline 0
cl_crosshaircolor 1
cl_crosshairalpha 255
cl_crosshairusealpha 1
cl_crosshairdot 0
cl_crosshair_t 0

From there, three values do most of the work. Raise cl_crosshairsize to 2 or 3 if the crosshair feels too easy to lose, raise cl_crosshairgap towards 0 if you want to see more of the centre, and turn cl_crosshair_drawoutline on if the crosshair vanishes on bright walls.

Useful binds

Toggle the crosshair following your spray, which is handy while learning a recoil pattern:

bind "F4" "toggle cl_crosshair_recoil 0 1"

Swap between two saved crosshairs, for example a rifle crosshair and a bigger one for the AWP:

bind "F5" "apply_crosshair_code CSGO-aNQn2-upV5w-M8dOd-OOwcf-2pFKO"
bind "F6" "apply_crosshair_code CSGO-hzGdv-OVFPn-OarUo-OSZCY-wwXsO"

Hide the crosshair for screenshots and bring it back with the same key:

bind "F7" "toggle crosshair 0 1"

Binds typed into the console last only for that session. To keep them, put the lines in autoexec.cfg and add +exec autoexec to your Steam launch options. Full instructions are in our guide on importing a crosshair code.

Picking values

Knowing the ranges is only half of it. For what actually works in a match, including size and gap guidance by resolution and colour choices per map, read best CS2 crosshair settings, or start from a pro crosshair code and adjust from there.

Frequently asked questions

Which crosshair commands are saved in a share code?

Everything under shape, colour and dynamic behaviour on this page. The master crosshair toggle, the friendly fire warning and the two sniper commands are not part of the format and have to be set separately.

Why does the console accept values the settings menu will not?

The menu sliders use a narrower range than the cvars themselves. Size goes to 25.5 in the console but stops at 10 in the menu, and gap goes to -12.8 in the console but stops at -5 in the menu.

What does a negative gap actually do?

The gap is an offset from a base distance of 4 pixels. A gap of -4 puts the inner ends of the bars against the centre, -3 leaves a single pixel of space, and positive values push the bars further out.

Do the dynamic split commands affect a static crosshair?

No. cl_crosshair_dynamic_splitdist and the split alpha values only apply to styles 0 to 3 and 5. On style 4 they do nothing, which is why most players never change them.

How do I make crosshair commands stick between sessions?

Put them in autoexec.cfg in the game csgo/cfg folder and add +exec autoexec to your Steam launch options, or just import a share code, which the game saves to your settings automatically.