CS2 crosshair generator
Design a crosshair and see it on six backgrounds at once, then copy the CS2 share code or the console commands.
Shape
Colour
Outline
Advanced: spread, scope dot, resolution
cl_crosshair_drawoutline "1" cl_crosshair_dynamic_maxdist_splitratio "0.3" cl_crosshair_dynamic_splitalpha_innermod "1" cl_crosshair_dynamic_splitalpha_outermod "0.5" cl_crosshair_dynamic_splitdist "7" cl_crosshair_dynamic_spread_limit "181" cl_crosshair_gap "0" cl_crosshair_length "3" cl_crosshair_recoil "0" cl_crosshair_screen_height "1080" cl_crosshair_t "0" cl_crosshair_thickness "1" cl_crosshaircolor_a "255" cl_crosshaircolor_b "0" cl_crosshaircolor_g "255" cl_crosshaircolor_r "0" cl_crosshairdot "0" cl_crosshairoutline_a "255" cl_crosshairoutline_b "0" cl_crosshairoutline_g "0" cl_crosshairoutline_r "0" cl_crosshairstyle "4" cl_ironsight_dot_scale "1" cl_ironsight_usecrosshaircolor "0"
How to use the crosshair generator
- Start from a preset, or from one of the pro looks, then change the style, size, thickness and gap with the sliders or by typing a number.
- Check the colour on all six backgrounds: bright sky, concrete, sand, a dark corridor, brick and foliage. The zoom buttons show single pixels.
- Copy the share code, then paste it into Settings, Game, Crosshair in CS2. Or copy the console commands as one line and paste them into the console.
- Already have a code? Paste it into the Import box and press Load to edit it.
Choosing crosshair settings
A crosshair has one job: to be seen without hiding what you are aiming at. Most of the choices follow from that.
Size, thickness and gap
Short bars and a tight gap keep the middle of your screen clear. A thickness of one or two pixels is enough on a 1080p screen; go thicker only if you struggle to find it. Gap decides how much empty space sits at the centre. A gap of zero puts the bars against the middle, and negative values pull them together, which is why many pros' old codes show a gap of -3 or -4. Among the 849 active pros on our pro crosshair codes page, only 7% add a centre dot and 13% use an outline, so the plain cross is the norm.
Colour and outline
Pick a colour that stands apart from the maps you play. Green and cyan are the usual choice. If your crosshair disappears on one background in the preview, turn the outline on, or change the colour rather than making the bars longer.
Static or dynamic
Static styles stay the same size. Dynamic styles open up while you move and shoot, which some players like as feedback and others find distracting. The preview shows the resting shape only, since the game's spread and recoil movement are not modelled.
CS2 crosshair styles
| Style | Name |
|---|---|
| 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 |
Every CS2 crosshair setting and its console command
| Setting | Command | Range | What it does |
|---|---|---|---|
| Style | cl_crosshairstyle | 0 to 9 | The overall shape: dynamic or static cross, circle, quad, square or dot only. |
| Size (length) | cl_crosshair_length | 0 to 255 px | Length of each bar, in screen pixels at the stored screen height. |
| Thickness | cl_crosshair_thickness | 0 to 32 px | Width of the bars and of the centre dot. |
| Gap | cl_crosshair_gap | -3840 to 3840 px | Space between the centre and the inner end of each bar. Negative values pull the bars together. |
| Centre dot | cl_crosshairdot | 0 or 1 | Adds a dot in the middle of the crosshair. |
| T-style | cl_crosshair_t | 0 or 1 | Removes the top bar so the crosshair is a T. |
| Follow recoil | cl_crosshair_recoil | 0 or 1 | Moves the crosshair with your spray pattern. |
| Colour | cl_crosshaircolor_r / _g / _b | 0 to 255 each | Any RGB colour. |
| Opacity | cl_crosshaircolor_a | 0 to 255 | Alpha of the crosshair. 255 is fully solid. |
| Outline | cl_crosshair_drawoutline | 0, 1 or 2 | None, full or half outline. Outline colour and alpha have their own cl_crosshairoutline_r, _g, _b and _a commands. |
| Split distance and alpha | cl_crosshair_dynamic_splitdist and related | 0 to 127; 0 to 1 | How the dynamic styles split into an inner and outer crosshair when you move or shoot. |
| Spread limit | cl_crosshair_dynamic_spread_limit | 0 to 255 | The most a dynamic crosshair can open up. |
| Screen height | cl_crosshair_screen_height | 240 to 65535 | The resolution the sizes were made at. CS2 rescales the crosshair when your screen height differs. |
Command names and ranges follow the open-source csgo-sharecode library for the CS2 share code format introduced on 30 September 2026. Valve does not publish a list of its own.
Old CSGO- codes and the new CS code
In September 2026 Valve changed CS2 crosshairs twice. On 23 September sizes, gaps and thicknesses moved to pixel units that rescale with your screen height. On 30 September the share code changed from the dashed CSGO-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx form to a 46-character code starting CS.
Codes copied from before those updates, including most lists of pro crosshairs, are in the old format. This generator reads them and writes the current code, and marks the result Approximate because old codes store no screen height. See the pro crosshair codes list for converted versions of pro player crosshairs.
The rest of your CS2 setup
A crosshair is one line of a longer config. Put the console commands above into an autoexec and they apply every time you launch the game. Keep the gun out of your sightline with the viewmodel generator, and if you are carrying your aim over from another shooter, the sensitivity converter and the eDPI calculator get the mouse side right.
FAQ
How do I import a crosshair code in CS2?
Open Settings, Game, Crosshair and use the share or import button, then paste the code. You can also open the console and run apply_crosshair_code followed by the code. Current codes start with CS and have no dashes.
Why does CS2 say my crosshair code is invalid or old?
Crosshair codes changed twice in September 2026: sizes moved to pixels on 23 September, and the code itself changed on 30 September to the CS format. Old codes starting CSGO- are no longer accepted by the game. Paste the old code into the Import box above and copy the new CS code it produces.
How accurate is the conversion of an old CSGO- code?
Close, not exact. Codes made before the September overhaul store no screen height and use the old game units, so a converter has to estimate pixel sizes. This tool uses about 1.8 pixels per old unit at 1080p and treats an old gap of -4 as bars touching the centre. Both are our estimates, not figures from Valve. Check the result in game and adjust size, gap or thickness by a pixel or two if needed. Codes made after 23 September convert exactly.
Can I use the console commands instead of a share code?
Yes. Copy the commands as one line and paste them into the console. They set exactly the same values as the share code, and are handy for putting in an autoexec.cfg.
What is the best CS2 crosshair?
The one you can see on every map without it covering the head you are aiming at. Most players use a small static cross with a gap of zero to a few pixels, one pixel of thickness, and a bright colour that stands out on the maps they play. Try a few of the backgrounds above, then look at what pros use on the pro crosshair codes page.
What is the best crosshair colour in CS2?
Bright green and cyan are the most common among the pros in our crosshair data, and both stand apart from most map colours. Yellow and white work too. Test your colour on the six backgrounds in the preview and keep the outline on if it vanishes against any of them.
Does a bigger crosshair help?
Not by itself. Bullets land inside the in-game spread, not where the crosshair bars are drawn, so size and gap are about what you can read at a glance. Small and clear is the usual choice.