// LOADING CSMAUK
// LOADING CSMAUK
Import any crosshair in ten seconds, then learn the cvars behind it — style, size, gap, outline, color, dot and T — with six ready-to-paste recipes.
By CSMAUK Staff
Your crosshair is the only piece of HUD you stare at for every single round, and yet most players never touch the defaults. The good news is that CS2 makes crosshairs fully portable: every configuration compresses into a short share code, and you can paste another player’s code straight into the menu. The better news is that once you understand the handful of console variables behind that code, you can stop copying and start tuning — building a crosshair that suits your resolution, your monitor and the way you actually shoot.
This guide does both. First we cover how the in-game share/import flow works, then we break down every crosshair cvar and what it does, and finally we give you six archetype recipes you can paste into the console or rebuild in the menu. Everything here is editor-only-cheats-free — crosshair cvars are not flagged, so they apply on official matchmaking servers without any special launch options.
CS2 has a built-in code system, so you never need to type cvars by hand if you don’t want to. From the main menu, click the gear (Settings) on the left, open the Game tab, and select Crosshair. A live preview sits at the top; below it is a row of buttons. Click “Share or Import” to open a box where you can paste a code and hit Import, or copy your own current crosshair out to share with a teammate.
A code looks like CSGO-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx — five blocks of five characters after the CSGO- prefix. That prefix is a leftover from Counter-Strike: Global Offensive and is completely normal; CS2 reads CS:GO codes natively, so anything you saved years ago still imports cleanly. Under the hood the code is just an encoded bundle of the cvars below, which is why every code is fully reversible into a set of console commands.
A share code is a snapshot, not a permanent identity. Pros re-tweak gap and size between events, and different tracking sites capture different days — so two “official” codes for the same player can legitimately disagree. If you want to match someone exactly, copy the code on the day; if you want it to last, learn the cvars and rebuild it yourself.
Every crosshair is defined by a small group of console variables, all prefixed cl_crosshair. Open the developer console (enable it under Settings → Game → Enable Developer Console, then press the tilde key) and you can type these live and watch the preview change. The most consequential one is the style.
cl_crosshairstyle accepts values 0 through 5 and controls the fundamental behaviour. Styles 0, 2, 3 and 5 are “dynamic” to varying degrees — the crosshair expands when you move or fire, mirroring your inaccuracy. Styles 1 and 4 are fully static: the crosshair never moves. Competitively, almost everyone uses style 4 (classic static), because a crosshair that jumps around teaches you nothing and obscures your spray. Style 2 is the classic semi-dynamic look; style 0 is the legacy default dynamic.
| Value | cl_crosshairstyle behaviour |
|---|---|
| 0 | Default dynamic — gap opens fully with movement and fire |
| 1 | Default static — fixed, but ignores your size/gap settings |
| 2 | Classic with dynamic dots on each side that move as you run/fire |
| 3 | Classic dynamic — fully customisable and dynamic |
| 4 | Classic static — fully customisable, never moves (pro standard) |
| 5 | Classic — static except for a brief expansion when firing |
cl_crosshairsize sets the length of the four lines (default 5, useful range roughly -20 to 20 — negative values are valid and just invert direction). cl_crosshairthickness controls how heavy the lines are (default 0.5, valid up to about 3). cl_crosshairgap controls the empty space in the middle; it accepts negative values, and many pros push it to around -3 or -4 to pull the lines tight around the centre. Set cl_crosshairgap_useweaponvalue 0 unless you want the gap to change per weapon.
cl_crosshair_drawoutline 1 adds a black border so the crosshair reads against bright surfaces; cl_crosshair_outlinethickness sets its weight (default 1, range ~0.1 to 3 — many players use 0.5 to 1). For color, cl_crosshaircolor takes 0–4 for presets (0 red, 1 green, 2 yellow, 3 blue, 4 cyan) or 5 for custom RGB. When set to 5, cl_crosshaircolor_r, _g and _b each take 0–255. Transparency is handled by cl_crosshairusealpha 1 plus cl_crosshairalpha (range ~10 to 255, default 200); a solid crosshair sits at 255.
cl_crosshairdot 1 places a single pixel in the centre — handy for precise pixel-peeks and the basis of a pure dot crosshair. cl_crosshair_t 1 removes the top line to make a T-shape, which clears the area directly above your aim point (useful for headshot-line reference). Both are off (0) by default.
| cvar | Effect | Recommended |
|---|---|---|
| cl_crosshairstyle | Static vs dynamic behaviour | 4 (classic static) |
| cl_crosshairsize | Length of the lines | 1–3 |
| cl_crosshairthickness | Line weight | 0.5–1 |
| cl_crosshairgap | Centre gap (can be negative) | -3 to -1 |
| cl_crosshair_drawoutline | Black outline on/off | 1 |
| cl_crosshair_outlinethickness | Outline weight | 0.5–1 |
| cl_crosshaircolor | Preset (0–4) or custom (5) | 1 (green) or 5 |
| cl_crosshairdot | Centre dot | 0 (1 for dot styles) |
| cl_crosshair_t | T-shape (no top line) | 0 |
| cl_crosshairalpha | Opacity (10–255) | 255 |
""A dynamic crosshair lies to you — it shows where the game thinks your bullet might go, not where you are aiming. Lock it static and your brain learns the real spray."
Each recipe below is a complete set of cvars — paste the whole block into the developer console and it applies immediately. Tweak from there. Where a well-known pro runs a near-identical setup we note it, but treat any printed share code as a snapshot that may have changed; the cvar recipe is the reliable part.
The all-rounder: a small, visible cross with no dot. A great default if you have never customised before.
cl_crosshairstyle 4
cl_crosshairsize 2.5
cl_crosshairthickness 1
cl_crosshairgap -1
cl_crosshair_drawoutline 1
cl_crosshair_outlinethickness 1
cl_crosshaircolor 1
cl_crosshairdot 0
cl_crosshair_t 0
cl_crosshairalpha 255Tight lines and a negative gap, the look most professionals favour for clean one-taps. ZywOo runs a very similar tiny static cross (his is white, classic-static, size ~1.5 with a -3 gap) — recolour the recipe below to taste.
cl_crosshairstyle 4
cl_crosshairsize 1.5
cl_crosshairthickness 0.6
cl_crosshairgap -3
cl_crosshair_drawoutline 0
cl_crosshaircolor 5
cl_crosshaircolor_r 0
cl_crosshaircolor_g 255
cl_crosshaircolor_b 255
cl_crosshairdot 0Just a pixel. Minimalist, forces disciplined crosshair placement, and unbeatable for tight pixel-peeks. Less forgiving for spraying.
cl_crosshairstyle 4
cl_crosshairsize 0
cl_crosshairgap -4
cl_crosshairdot 1
cl_crosshair_drawoutline 1
cl_crosshair_outlinethickness 1
cl_crosshaircolor 1
cl_crosshairalpha 255Larger and bolder — easier to track at a glance, good for players who lose the crosshair on busy backgrounds or play stretched at low resolution.
cl_crosshairstyle 4
cl_crosshairsize 5
cl_crosshairthickness 1.5
cl_crosshairgap -1
cl_crosshair_drawoutline 1
cl_crosshair_outlinethickness 1
cl_crosshaircolor 4
cl_crosshairdot 0
cl_crosshairalpha 255Drops the top line to keep the area above your aim point clear — useful for holding head-level angles where the top stalk would otherwise sit on the wall above an enemy’s head.
cl_crosshairstyle 4
cl_crosshair_t 1
cl_crosshairsize 3
cl_crosshairthickness 1
cl_crosshairgap -2
cl_crosshair_drawoutline 1
cl_crosshaircolor 1
cl_crosshairdot 0A small cross with a centre dot — the precision of a dot for taps plus the line reference for sprays. A popular compromise.
cl_crosshairstyle 4
cl_crosshairsize 2
cl_crosshairthickness 0.8
cl_crosshairgap -2
cl_crosshairdot 1
cl_crosshair_drawoutline 1
cl_crosshair_outlinethickness 0.5
cl_crosshaircolor 1If you would rather paste than tune, here are documented codes for a few top players. These were captured in 2026 and pros adjust them, so verify the latest on a tracker if you want a frame-perfect match. The import flow is the same for all of them: Settings → Game → Crosshair → Share or Import → paste → Import.
// s1mple (NaVi) green classic-static, gap pulled tight
CSGO-UseJt-3oTvn-47wPX-hEyER-WZfiK
// Build it by hand if the code has changed:
cl_crosshairstyle 4; cl_crosshairsize 1; cl_crosshairthickness 1;
cl_crosshairgap -4.5; cl_crosshaircolor 1; cl_crosshairalpha 200Whatever you pick, commit to it. Switching crosshairs every week resets the muscle memory your placement relies on. Choose a static style, get it visible against the maps you play, then leave it alone for a month before judging it.
That is the whole system: import to experiment fast, then learn the cvars so you own the result. Once cl_crosshairstyle 4 and a sensible gap feel natural, the rest is taste — and you will never be at the mercy of someone else’s share code again.