Skip to content
CS2 Crosshair Code

2026 Updated for the CS2 crosshair update: every code here uses the new CS… format. Have an old CSGO- code? Convert it

All CS2 Crosshair Commands (2026 Update)

Every crosshair cvar CS2 exposes after the September 2026 crosshair update, 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. The update moved the crosshair to whole pixels and renamed the size commands, so cl_crosshairsize is now cl_crosshair_length and cl_crosshairgap is now cl_crosshair_gap. Old configs that use the old names no longer change anything. The settings menu exposes a narrower range than the console for gap, which is why some 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 9 7 Crosshair type. 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 (the default), 8 Static Square, 9 Static Quad.
cl_crosshair_length 0 to 255 px 8 Length of each bar in pixels. Replaces cl_crosshairsize.
cl_crosshair_gap -3840 to 3840 px (UI -10 to 128) 4 Space between the bars and the centre in pixels. 0 and 1 both close the cross and each step above adds a pixel. Only style 2 honours negative values. Replaces cl_crosshairgap.
cl_crosshair_thickness 0 to 32 px 2 Width of each bar in whole pixels. Also sets the size of the centre dot.
cl_crosshairdot 0 or 1 0 Draws a dot in the centre of the crosshair.
cl_crosshair_t 0 or 1 0 T-style crosshair. Removes the top bar on the cross styles and leaves left, right and bottom.
cl_crosshair_screen_height 240 to 65535 1080 The screen height the pixel sizes are meant for. CS2 scales the crosshair from this to your resolution, so a code looks the same size on any monitor.

Outline

Command Range Default What it does
cl_crosshair_drawoutline 0, 1 or 2 1 Outline mode: 0 off, 1 a one-pixel border around each bar, 2 a half outline on the top and left edges only.
cl_crosshairoutline_r 0 to 255 0 Red channel of the outline colour. The outline is no longer always black.
cl_crosshairoutline_g 0 to 255 0 Green channel of the outline colour.
cl_crosshairoutline_b 0 to 255 0 Blue channel of the outline colour.
cl_crosshairoutline_a 0 to 255 255 Opacity of the outline. 255 is fully solid.

Colour and alpha

Command Range Default What it does
cl_crosshaircolor_r 0 to 255 0 Red channel of the crosshair colour. There are no colour presets any more.
cl_crosshaircolor_g 0 to 255 255 Green channel of the crosshair colour.
cl_crosshaircolor_b 0 to 255 0 Blue channel of the crosshair colour.
cl_crosshaircolor_a 0 to 255 255 Opacity of the crosshair. 255 is fully solid. Replaces cl_crosshairalpha.

Dynamic behaviour

Command Range Default What it does
cl_crosshair_dynamic_spread_limit 0 to 255 255 Caps how far the dynamic styles (0, 1 and 7) open up with inaccuracy.
cl_crosshair_dynamic_splitdist 0 to 127 3 How far the bars split apart on Dynamic Cross (Legacy).
cl_crosshair_dynamic_splitalpha_innermod 0 to 1 0 Alpha multiplier for the inner part of the split bars.
cl_crosshair_dynamic_splitalpha_outermod 0.3 to 1 1 Alpha multiplier for the outer part of the split bars.
cl_crosshair_dynamic_maxdist_splitratio 0 to 1 1 Share of the maximum distance at which the bars finish splitting. On Static Quad it sets the size of the four arcs.
cl_crosshair_recoil 0 or 1 1 The crosshair follows your spray pattern instead of staying at the centre of the screen. On by default since the update.

Scope dot

Command Range Default What it does
cl_ironsight_dot_scale 0.1 to 2 1 Size of the dot on scoped weapons, from 0.1 to 2.
cl_ironsight_usecrosshaircolor 0 or 1 0 Draws the scope dot in your crosshair colour instead of the default.

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. Only the new CS… format is accepted.

Renamed or removed in the September 2026 update

Old command Use instead What it does
cl_crosshairsize cl_crosshair_length Renamed. Values are now pixels, not the old 0 to 10 scale.
cl_crosshairgap cl_crosshair_gap Renamed. Values are now pixels from the centre, not an offset from a base of four.
cl_crosshairthickness cl_crosshair_thickness Renamed. Values are now whole pixels.
cl_crosshairalpha cl_crosshaircolor_a Renamed. Alpha is now part of the colour.
cl_crosshaircolor the three RGB channels Removed. The five colour presets are gone; set the RGB channels instead.
cl_crosshair_outlinethickness the outline mode Removed. The outline is one pixel; choose full or half with the outline mode.
cl_crosshairusealpha nothing No longer part of the crosshair code. Alpha always applies.
cl_crosshairgap_useweaponvalue nothing No longer part of the crosshair code.
cl_fixedcrosshairgap nothing No longer part of the crosshair code.

A ready-to-paste config

This is the shape most professional players land on, written with the new command names: a small Static Cross, solid green, the bars right against the centre and no outline. Paste the whole block into the console, or drop it into your autoexec.cfg.

cl_crosshairstyle 4
cl_crosshair_length 2
cl_crosshair_gap 1
cl_crosshair_thickness 2
cl_crosshair_drawoutline 0
cl_crosshaircolor_r 0
cl_crosshaircolor_g 255
cl_crosshaircolor_b 0
cl_crosshaircolor_a 255
cl_crosshairdot 0
cl_crosshair_t 0
cl_crosshair_recoil 0

From there, three values do most of the work. Raise cl_crosshair_length to 3 to 5 if the crosshair feels too easy to lose, raise cl_crosshair_gap to 2 or 3 if you want to see more of the centre, and set cl_crosshair_drawoutline to 1 or 2 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. Use new-format codes; CSGO- codes no longer work in binds:

bind "F5" "apply_crosshair_code CS2VkbZz3rjH7UzZTUsLDYH7O25fYRoviPYK8eym3XtVhE"
bind "F6" "apply_crosshair_code CS4N3cTLGtbqN5JxffWv6vBB5dqiCwEP55KQhZQ4bJ4JQE"

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 length and gap guidance and colour choices per map, read best CS2 crosshair settings, or start from a pro crosshair code and adjust from there.

Frequently asked questions

Why does cl_crosshairsize no longer work in CS2?

The September 2026 crosshair update renamed it to cl_crosshair_length and switched it to pixels. cl_crosshairgap became cl_crosshair_gap, cl_crosshairthickness became cl_crosshair_thickness and cl_crosshairalpha became cl_crosshaircolor_a. Old configs need the new names and new values.

Which crosshair commands are saved in a share code?

Everything under shape, outline, colour, dynamic behaviour and scope dot 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. The gap slider runs from -10 to 128, while cl_crosshair_gap accepts -3840 to 3840, and those values survive a round trip through a share code.

What does the gap value mean now?

It is the space between the bars and the centre in pixels. Gap 0 and gap 1 both close the cross, and each step above adds one pixel. Negative values only do something on Dynamic Cross (Legacy), style 2.

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.