What the CS2 crosshair update changed

On Valve updated how crosshairs work in Counter-Strike 2. This page sets out what changed, based on Valve's patch notes and on the public game files for the new builds. Where something has not been established, it says so.

If you just want your old crosshair back, go to the crosshair recovery tool. To learn how it treats each setting, read how the conversion works.

What Valve's patch notes say

According to Valve's patch notes for 22 September 2026:

  • Crosshairs were changed to be resolution independent.
  • A new Crosshair / Scopes tab was added to the game settings.
  • New crosshair styles were added.
  • The default crosshair is now Dynamic Quad.

The patch notes do not explain what "resolution independent" means for the size you see on screen, they do not say how the new sizes are calculated, and they do not list command names. The rest of this page comes from the public game files and from checks the site owner made in the game.

Where the settings are now

Crosshair settings live in the Crosshair / Scopes tab. The style controls are in a section called Style Settings. Follow Recoil is in a separate Crosshair Settings section, not under Style Settings.

Every style shows Color and Transparency, Outline and Thickness. The other controls depend on the style you pick, as the next table shows.

The eight crosshair styles

The number in the first column is the value of cl_crosshairstyle for that style. The old style numbers meant different things, so an old style number cannot simply be reused. "Static" styles stay fixed. "Dynamic" styles are the ones the game names as dynamic; the notes column says what is known about how each one behaves.

New crosshair styles and the extra controls each one shows
ValueStyleTypeExtra controlsNotes
0Dynamic CrossDynamicCenter Dot, Length, Gap, Dynamic Spread Limit, T StyleA cross that reacts to movement and firing.
1Dynamic CircleDynamicCenter Dot, Dynamic Spread LimitA circle whose size reacts to movement and firing. It has no Length or Gap control.
2Dynamic Cross (Classic)DynamicCenter Dot, Length, Gap, Split Distance, Inner Split Alpha, Outer Split Alpha, Split Size Ratio, T StyleA dynamic cross with split controls, closest in name to the old Classic style.
3Static CircleStaticCenter Dot, GapA fixed circle. It has a Gap control but no Length control.
4Static CrossStaticCenter Dot, Length, Gap, T StyleA fixed cross that does not move. Old Classic Static crosshairs belong to this family.
5Dynamic Cross (Legacy/Shot Feedback)DynamicCenter Dot, Length, Gap, T StyleA cross that reacts to shots, named after the old Legacy style.
6Dot OnlyStaticNoneOnly a dot. There is no separate Center Dot, Length or Gap control.
7Dynamic QuadDynamicCenter Dot, Length, Gap, Dynamic Spread Limit, T StyleThe new default style after the update. Its in-game shape is not drawn here because it has not been documented.

Dynamic Quad (value 7) is the default style, which matches Valve's notes. Its in-game shape has not been documented, so this site does not draw it. Dynamic Cross (Classic) is the only style with split controls, and it is the style closest in name to the old Classic crosshair.

Current commands and their ranges

Transparency (alpha), Thickness, Length, Gap and Dynamic Spread Limit now use command names that differ from the old crosshair commands. The other settings use the same command names as the old ones. The ranges and defaults below come from the console variable list in the public game files for build 2000913 (unchanged in 2000914). Length, Thickness and Gap were also checked in the game console: decimals such as 7.5 were rejected, and numbers above the maximum (such as 999) were stored as the maximum.

Current crosshair console commands with their range and game default
SettingCommandConsole rangeGame default
Stylecl_crosshairstyle0–7 (one number per style)7 (Dynamic Quad)
Color and Transparencycl_crosshaircolor_r
cl_crosshaircolor_g
cl_crosshaircolor_b
0–255 for each channel, whole numbersR 0, G 255, B 0
Color and Transparency (A)cl_crosshaircolor_a0–255, whole numbers255
Outlinecl_crosshair_drawoutlineOn or offOn
Thicknesscl_crosshair_thickness0–31, whole numbers2
Center Dotcl_crosshairdotOn or offOff
Lengthcl_crosshair_length0–255, whole numbers8
Gapcl_crosshair_gap0–128, whole numbers4
Dynamic Spread Limitcl_crosshair_dynamic_spread_limit0–255, whole numbers255
Split Distancecl_crosshair_dynamic_splitdist0–127, whole numbers3
Inner Split Alphacl_crosshair_dynamic_splitalpha_innermod0–1, decimals0
Outer Split Alphacl_crosshair_dynamic_splitalpha_outermod0.3–1, decimals1
Split Size Ratiocl_crosshair_dynamic_maxdist_splitratio0–1, decimals1
T Stylecl_crosshair_tOn or offOff
Follow Recoilcl_crosshair_recoilOn or offOn

A few things stand out:

  • Length, Thickness and Gap are now whole numbers (0–255, 0–31 and 0–128). Old sizes such as 1.5 or 0.6 have no direct place in the new ranges.
  • Gap can no longer be negative. Setting a negative gap in the console stores 0.
  • Thickness 0 is accepted. The help text says bars have a minimum of 1 pixel, but in tests at 1920×1080 and 1280×960 Thickness 0 drew no crosshair at all, so use 1 or more.
  • Transparency is now a single alpha value from 0 to 255. There is no separate on/off switch for it.
  • Dynamic Spread Limit is new. The old game had no equivalent setting.

"Game default" is the value compiled into the game. It is shown for reference only. It is not a recommendation, and it is not what your old crosshair converts to.

Old commands removed or hidden

Comparing the console variable lists before and after the update (game file change for build 2000913) shows that several old crosshair commands were removed and others are now marked as hidden. This site never includes any of them in its output.

Old crosshair commands removed or hidden by the update
Old commandOld settingAfter the update
cl_crosshairgapOld gapRemoved
cl_crosshaircolorColor modeRemoved
cl_crosshairusealphaUse transparencyRemoved
cl_crosshair_outlinethicknessOutline thicknessRemoved
cl_fixedcrosshairgapFixed crosshair gapRemoved
cl_crosshairgap_useweaponvalueUse weapon gapRemoved
cl_crosshairsizeOld size (length)Hidden
cl_crosshairthicknessOld thicknessHidden
cl_crosshairalphaAlphaHidden

Outline thickness, the weapon-based gap and the fixed gap have no replacement in the new menu. The new Outline control is only on or off.

Sizes use a new scale

In the new menu, Color, Thickness, Length and Gap each carry a note that their scale has changed. Combined with Valve's statement about resolution independence, you should not expect old size numbers to look the same if you type them into the new settings.

Valve has published no formula for converting old sizes. This site measured one from screenshots of the old and new game at 1920×1080 and 1280×960 (4:3): the old Length and Thickness were 2.25 pixels per unit at 1920×1080 and 2 (the captures allow about 1.9643 to 2.0313) at 1280×960 (4:3), the old gap was not scaled at all, and the new game counts Gap from the centre. The recovery tool uses those measurements only for the setups they were taken on and asks you to choose sizes everywhere else. How sizes are converted explains the details.

Thickness slider hotfix: 32 to 31

Build 2000913 shipped with a Thickness slider that went up to 32, while the console only accepted up to 31. The hotfix build 2000914 changed the slider maximum to 31 (game file change for build 2000914). This site uses 31 as the maximum Thickness.

New color picker with no presets

The Color and Transparency control is now a free color picker. It has entries for red, green and blue, a hex code, and alpha (A). Each channel is a whole number from 0 to 255. It writes cl_crosshaircolor_r, _g, _b and cl_crosshaircolor_a.

There is no preset list any more. If your old crosshair used a preset such as Green or Yellow, you need to pick the color yourself. The exact shades the old game drew for its presets were not found in the public game files, so this site does not guess them. A custom color is different: the recovery tool carries it over unchanged.

Crosshair codes

After the update, the game can refuse an old code with the message "Invalid or old crosshair code" (as reported from the game's Share or Import dialog). That message does not mean your old code is broken. The recovery tool can still read its settings.

New-format game codes appear to use a different format marker from the old ones. This is inferred and unverified: the crosshair code built into the game changed with the update and now has a different value in the byte that identifies the format. The layout of the new format is unknown, so this site can neither read nor create new-format codes. See the FAQ for the difference between a game code and a website link.

What is still unknown

  • How old sizes relate to new ones at other resolutions. The conversion was measured at 1920×1080 and 1280×960 (4:3) only. Other resolutions (including other 4:3 ones such as 1440×1080 and 1024×768), other old styles and CS:GO crosshairs have not been measured yet.
  • The shape of Dynamic Quad. No evidence documents it, so the preview on this site shows its settings only.
  • Dynamic behaviour. It has not been shown that Dynamic Cross (Classic) moves like the old Classic crosshair, or that Dynamic Cross (Legacy/Shot Feedback) responds to shots like the old Legacy style. How Dynamic Spread Limit changes the shape is not documented either.
  • The console line limit. The maximum length of a line you can paste into the game console has not been checked. The tool therefore also splits a long command line into blocks of at most 120 characters, and offers a CFG file.
  • Whether the game migrates old settings. There is no evidence either way on whether the game converted your previous crosshair settings automatically after the update. Check what your crosshair looks like in game.
  • The new code format. Beyond the changed format marker, nothing about new-format codes is known.

As evidence arrives, changes are recorded in the changelog. For step-by-step help with the tool, see how to use it.

Sources

Game file links point to fixed versions of the public GameTracking-CS2 mirror, so they will not change. CS2 Crosshair Restore is an independent tool and is not affiliated with Valve.

Last checked against builds 2000913 and 2000914. The full evidence list is on the conversion method page.