CS2 Crosshair Generator

Set the crosshair with sliders and copy the cl_ command string or the share code right away: everything is computed in your browser.

Preview

Preview mode

Preview scale: 1 convar unit equals 6 px.

The preview shows geometry, not a pixel exact in game look. The background is decorative.

Basics

cl_crosshairstyle

Only 0 (dynamic default), 4 (classic static) and 5 (classic dynamic) have confirmed descriptions. What 1, 2 and 3 do is not established.

cl_crosshairsize

The slider is capped at 0…10, which is a limit of this interface and not of the game: no confirmed maximum exists. The field next to it accepts more, as far as the share code format allows.

cl_crosshairthickness

The game accepts negative thickness, but the share code field is unsigned, so such a crosshair cannot be written into a code.

cl_crosshairgap

Can be negative: the lines move closer to the center.

cl_crosshairdot

cl_crosshair_t

Removes the top line.

Color

cl_crosshaircolor

Presets 0 to 4, while custom RGB is enabled by value 5.

cl_crosshaircolor_r

cl_crosshaircolor_g

cl_crosshaircolor_b

cl_crosshairusealpha

cl_crosshairalpha

Technical bounds are 0…255. Community guides suggest staying within 10…250.

Dynamic lines

cl_crosshair_dynamic_splitdist

How far the lines spread while you move and shoot.

Disabled: this field applies only to style 0 or 5.

cl_crosshair_dynamic_splitalpha_innermod

Disabled: this field applies only to style 0 or 5.

cl_crosshair_dynamic_splitalpha_outermod

Disabled: this field applies only to style 0 or 5.

cl_crosshair_dynamic_maxdist_splitratio

Disabled: this field applies only to style 0 or 5.

Advanced

cl_crosshair_drawoutline

cl_crosshair_outlinethickness

Works only when the outline is on.

Disabled: turn on the outline first.

cl_fixedcrosshairgap

A separate gap used while aiming through a sniper scope.

cl_crosshair_recoil

The crosshair follows the recoil cone.

cl_crosshairgap_useweaponvalue

The gap is taken from the weapon you hold.

Paste a code shaped like CSGO-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx.

The ranges come from a client convar dump and community guides; no official Valve source confirms them.

How we calculate

The command string is assembled in a fixed order from a convar table where every row carries its own source and a flag telling whether the range is confirmed. The order does not depend on which fields you touched, so two identical crosshairs always produce the same string.

A share code is 18 bytes packed into 25 characters of a 57-character alphabet, plus a checksum in byte zero. We did not invent the format: it is ported from the open library akiver/csgo-sharecode (MIT licence), and the reference «code to values» pairs from its own tests live in our dataset and are verified in both directions.

The preview is drawn as our own SVG from the same numbers: convar units are turned into pixels by a constant multiplier that is printed under the picture. It is a model of the geometry, not a screenshot of the game, so antialiasing, resolution scaling and the Source 2 renderer are not reproduced here.

Sources

checked 18 August 2026

Questions and answers

Where do I paste the command string?

Into the in game console or into autoexec.cfg. These are regular cl_ commands, sv_cheats is not required, so there is no risk to the account.

Why is custom color 5 and not 4?

According to totalcsgo.com value 4 is light blue, while custom RGB is enabled by 5; the fixtures of the share code library show the same. The brief said 4, and we kept what the source confirms.

The preview looks different from the game. Is that a bug?

No. The preview shows geometry: line length, thickness, gap, outline and dot. The exact look depends on resolution, scaling and antialiasing, so we do not promise a pixel exact match.

Why are some fields greyed out?

They depend on other fields. Line spread works only with style 0 or 5, the R/G/B fields only with custom color, and outline thickness only when the outline is on. Instead of silently ignoring such values, the interface disables them.

Where do the value ranges come from?

From a dump of the CS2 client convar list and from community guides. Valve has no official page with these bounds: developer.valvesoftware.com returns 403, so every number is labelled as community.

All Counter-Strike 2 guides

Unofficial tool. Not affiliated with Valve.