CS2 Crosshair Guide: Pro Codes, Commands & Settings That Fit Your Aim
Steal a pro's crosshair in under a minute, then learn enough to make it yours
Copy any share code below, open Settings > Game > Crosshair, click the share icon, paste, and hit Import — or run apply_crosshair_code in console. Most pros use a small classic static crosshair: cl_crosshairstyle 4, size 1–2, gap -4 to -1, thickness around 0.5.
Your crosshair is the one piece of UI you stare at for the entire match, and the fastest way to get a good one is not to build it slider by slider — it's to import a proven code and adjust from there. This guide gives you both halves: ten verified pro share codes worth stealing, and the complete, corrected cl_crosshair command reference for when you want to tune the result. If you only need the menu steps, our quick how-to on changing your crosshair covers that in two minutes; this page is the deep reference for everything behind those steps.
Import a Pro Crosshair in Under a Minute
CS2 crosshairs travel as share codes — strings in the format CSGO-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX that encode every setting at once. There are two ways to apply one.
Method 1: The Share Menu
- Open Settings and go to the Game tab, then Crosshair
- Click the share icon next to the crosshair preview window
- Paste the code into the pop-up field and click Import
- The preview updates instantly — close settings and you're done
The same dialog also exports: click Share and CS2 generates a code for your current crosshair. Save it somewhere before experimenting, because that code is your undo button.
Method 2: Console
With the developer console enabled, run apply_crosshair_code CSGO-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX and the crosshair applies immediately. This is the better route if you keep a shortlist of codes in a notepad, or if you want a specific crosshair baked into your autoexec so it loads identically on every machine you play on.
10 Pro Crosshair Codes Worth Stealing
These ten come from our library of 189 verified pro crosshair codes, chosen to cover the real spectrum of styles rather than ten variations of the same green cross. Every code below is pulled straight from the player database — copy one, import it, and play a deathmatch before judging.
donk — Team Spirit (Rifler)
CSGO-p9oKt-MDAda-QME4p-32iiE-kPOpP
The most-copied code of the current era. A tiny cyan cross with a wide -4 gap frames the head without ever covering it — if you play off raw reaction speed, start here. Size 1, gap -4, thickness 0, no dot, outlined, green.
s1mple — BC.Game (AWPer)
CSGO-iCxok-KTVNX-shCzf-Evoek-weaAB
A dot-first hybrid: thickness 0 strips the arms down to almost nothing, so you aim with the center dot while keeping a faint cross as a spray reference. Size 1, gap -4.5, thickness 1, center dot on, no outline, cyan.
ZywOo — Team Vitality (AWPer)
CSGO-E9RyF-Mv3Uv-67Cp3-GtHxR-k8aYO
A hairline crosshair — 0.1 thickness — that practically disappears. Built for players whose placement is already disciplined enough not to need training wheels. Size 1.5, gap -2.2, thickness 0.5, no dot, no outline, custom.
NiKo — Falcons Esports (Rifler)
CSGO-sHWcO-RczR8-ewsnB-dRv8z-KViGH
Small green cross, -4 gap, no dot. One of the cleanest tap-and-burst crosshairs in the game, from arguably its best rifler. Size 1, gap -5, thickness 1.5, no dot, no outline, custom.
m0NESY — Falcons Esports (AWPer)
CSGO-kNweN-Y49Xt-wFjGv-CeNoB-JG8nM
A compact cyan setup from the AWP prodigy — precise enough for flick confirmation, but comfortable when he swaps to pistols and rifles. Size 1, gap -4, thickness 1, no dot, no outline, cyan.
ropz — Team Vitality (Rifler)
CSGO-eQczR-r2FrJ-dkwYL-lXtnM-nFHWO
Slightly longer arms in a custom light blue. The most forgiving of the small statics, and a good first step down from a default-sized crosshair. Size 2, gap -3, thickness 0.5, no dot, no outline, green.
Twistzz — FaZe Clan (Rifler)
CSGO-cqOyh-CSfhe-mnOnK-csY5s-s44RG
The textbook median: size 2, gap -2, thickness 0.5, green. Poll every pro rifler and average the answers — you get something very close to this. Size 1, gap -7, thickness 0, no dot, no outline, custom.
b1t — Natus Vincere (Rifler)
CSGO-RGiBp-OXkpB-BqZwB-BRBvu-zwsyM
A size-1 cyan micro-crosshair from one of the highest headshot-percentage riflers in pro play. Minimal, but less extreme than donk’s. Size 1, gap -4, thickness 1, no dot, no outline, custom.
device — 100 Thieves (AWPer)
CSGO-QVJA3-eFyR4-wjv9e-x3tNO-DqmHB
A touch larger than most AWPer setups, which makes it easier to track a repositioning target between shots. Four Majors say it works. Size 1, gap -4, thickness 1, no dot, no outline, custom.
FalleN — FURIA (AWPer)
CSGO-ssxCh-Y9LFi-B9amu-NWkZo-ObaAB
A balanced green 2 / -2 / 0.5 from the Brazilian AWP professor — comfortable whether or not the big green is in your hands. Size 2, gap -6, thickness 1, no dot, no outline, yellow.
None of these clicking? The full crosshair codes databaseis filterable by role and color, and every entry links back to the player's complete settings page.
The Complete cl_crosshair Command Reference
Every crosshair setting has a console command behind it, and the console exposes a few options the settings menu doesn't. Open the console with the ~key (enable it under Settings > Game first) and use the values below.
Crosshair Style: cl_crosshairstyle
cl_crosshairstyle controls the fundamental behavior — whether the crosshair moves, and which settings it respects:
- 0 — Default: the stock dynamic crosshair; expands with movement and firing, ignores most custom values
- 1 — Default Static: the stock shape, locked in place
- 2 — Classic: uses your custom values with a slight, dampened response to firing
- 3 — Classic Dynamic: your custom values with full expansion during movement and spray
- 4 — Classic Static: your custom values, completely fixed — this is what the vast majority of pros use
- 5 — Legacy: old-school 1.6-style scaling behavior
Crosshair Color: cl_crosshaircolor
cl_crosshaircolor takes six values, and the numbering trips people up — cyan is 4, not 3, and custom colors need 5:
- 0 — Red
- 1 — Green (the default)
- 2 — Yellow
- 3 — Blue
- 4 — Cyan (light blue)
- 5 — Custom RGB, set with
cl_crosshaircolor_r,cl_crosshaircolor_gandcl_crosshaircolor_b(0–255 each)
For pure white, set color 5 with all three channels at 255. Cyan and green dominate among pros because they clash with almost nothing in CS2's map palette; yellow earns its place on darker maps.
Shape and Visibility Commands
| Command | What it controls | Typical range |
|---|---|---|
cl_crosshairsize | Length of the four arms | 1 – 3 |
cl_crosshairgap | Space at the center; negative values tighten it | -4 – 1 |
cl_crosshairthickness | Arm thickness | 0.5 – 1.5 |
cl_crosshairdot | Center dot on or off | 0 / 1 |
cl_crosshair_t | T-style: removes the top arm | 0 / 1 |
cl_crosshairusealpha | Enables transparency control | 0 / 1 |
cl_crosshairalpha | Opacity, once alpha is enabled | 200 – 255 |
cl_crosshair_drawoutline | Black outline on or off | 0 / 1 |
cl_crosshair_outlinethickness | Outline width | 0.5 – 2 |
cl_crosshairgap_useweaponvalue | Gap widens per weapon equipped | 0 / 1 |
cl_crosshair_sniper_width | Scoped line thickness for snipers | 1 – 3 |
cl_crosshair_recoil | Crosshair follows recoil (CS2 addition) | 0 / 1 |
A note on cl_crosshair_recoil: turning it on makes the crosshair chase your actual recoil, which is eye-opening for a session of spray practice but noisy in real matches. Most players try it once, learn something, and turn it back off.
Which Settings Actually Fit Your Game
There is no best crosshair, but there are wrong ones for how you play. Match the shape to your habits, not to whoever won the last Major.
Small Static for Tappers
If your damage comes from single taps and short bursts at head height, a small classic static (style 4, size 1–1.5, gap -3 or tighter) is the right tool. It obscures nothing at long range, and its fixed shape means the picture your brain memorizes never changes. This is the donk / NiKo / b1t school, and it rewards players who already hold reasonable angles.
Dynamic for Learners
Style 3 expands the moment your shots stop being accurate — while running, jumping, or deep into a spray. That constant feedback is the fastest way to internalize CS2's movement-accuracy rules: when the arms are apart, you miss; when they snap together, you're allowed to shoot. Run it deliberately for a couple of weeks as a training aid, then graduate to static before the expansion becomes visual noise you've learned to ignore.
The Dot Debate
A pure dot is the strictest placement teacher in the game — there are no arms to lean on, so your eye learns to put one pixel on heads. The cost shows up in sprays: without arms you lose the peripheral reference for how far your aim has drifted during a transfer. That's why the pure dot is rare in tier-one play while the hybrid — a dot inside small, faint arms, like s1mple runs — keeps showing up. If you tap more than you spray, try the dot; if you spray, keep at least minimal arms.
AWPers
Scoped in, your crosshair is replaced by the scope reticle, so an AWPer's crosshair mostly matters for quick-switch flicks and pistol rounds. That's why AWPer codes like device's and FalleN's trend slightly larger and calmer — the crosshair is a positioning reference between shots, not a precision instrument. Set cl_crosshair_sniper_width to 1–2 if you find the scoped lines too thin at high resolutions.
Placement Beats Settings
A blunt truth: the difference between a decent crosshair and a perfect one is worth maybe a few percent, while the difference between good and bad crosshair placement decides entire matches. Keep the crosshair at head height as you move — not at the floor, not at your feet cover — and pre-aim the exact pixel where a head will appear before you swing the angle. When you die, watch where your crosshair was in the killfeed replay: if it was below the shoulders or a full flick away from the enemy, no share code was going to save that duel.
Placement is a trainable habit with well-known drills — head-height tracking around the map, pre-aim routes, one-taps in deathmatch. Our aim training guide breaks down the routine; ten minutes a day moves your placement more than a year of crosshair tinkering.
Common Crosshair Mistakes
- Changing it after every bad game. Your crosshair didn't lose you that match. Constant switching prevents the two weeks of consistency that aim actually needs.
- Judging it in the settings menu. A crosshair that looks crisp against the preview backdrop can vanish into Ancient's foliage or Nuke's glare. Only deathmatch verdicts count.
- Going too big. Arms longer than size 3 start covering heads at long range — exactly the pixels you need to see on Mirage mid or Dust2 long.
- White with no outline. Pure white disappears against skyboxes and bright walls. If you want white, keep
cl_crosshair_drawoutline 1; otherwise pick cyan or green. - Keeping dynamic forever. Style 3 is a teacher, not a destination. Once you know the movement rules, the expansion is just motion in the center of your screen.
- Copying a pro's code and expecting their aim. The code transfers the picture, not the ten thousand hours behind it. Use pro codes as strong starting points, then tune.
How to Iterate Without Wrecking Your Aim
- Export your current crosshair with the Share button and save the code — that's your rollback
- Start from a proven baseline: one of the ten codes above, or a small classic static
- Change one variable at a time — gap first, then size, then thickness — never three at once
- Preview changes live in our crosshair generator, which renders every combination in the browser and exports a share code without launching the game
- Test each candidate with 15–20 minutes of deathmatch across at least two maps
- Lock in your choice for two full weeks before allowing yourself another change
The generator is also the fastest way to answer what-ifs — what donk's crosshair looks like in yellow, or your own with a dot — because you can fork any pro preset and nudge one slider. When in doubt, resist the urge to be original: the settings that 189 professionals converged on are a better prior than any hunch.
Frequently Asked Questions
What crosshair do most pro players use?
The overwhelming majority run a small classic static crosshair (cl_crosshairstyle 4): size 1-2, gap between -4 and -1, thickness around 0.5, in green or cyan. Across the 178 verified codes in our database, that cluster covers most of tier one. The outliers are deliberate — s1mple's near-invisible dot hybrid, ZywOo's hairline — not random.
How do I import a crosshair share code in CS2?
Open Settings, go to Game > Crosshair, and click the share icon next to the preview. Paste a code in the CSGO-XXXXX-... format and hit Import. Alternatively, open the console and run apply_crosshair_code followed by the code. Both methods apply instantly, and you can revert by importing your previous code.
Should I use a static or dynamic crosshair?
Static (cl_crosshairstyle 4) is the competitive default because it gives identical visual feedback every round, which is what muscle memory needs. Dynamic styles (0 and 3) expand while you move or fire, which makes them a genuinely useful teaching tool for learning movement accuracy — most players use one for a few weeks, internalize the lesson, then switch to static permanently.
Is a dot crosshair good in CS2?
A pure dot forces precise placement and suits tap-heavy, head-height players, but it gives you no arms to gauge spray drift, so transfers during a spray get harder. A hybrid like s1mple's — dot plus near-invisible arms — is the practical middle ground. Try cl_crosshairdot 1 with cl_crosshairsize 1 before committing to a dot alone.
Do CS:GO crosshair codes still work in CS2?
Share codes in the CSGO- format import into CS2 without modification, and the cl_crosshair console commands carry over with the same values. CS2 also added a few new options on top, most notably cl_crosshair_recoil, which makes the crosshair track your recoil in real time.
How often should I change my crosshair?
Rarely, and never mid-losing-streak. Aim changes take roughly two weeks of consistent play to settle into muscle memory, so constant switching resets that clock every time. Change one variable at a time, give it real matches rather than a warmup, and keep your previous share code saved so reverting costs nothing.