
Counter-Strike 2 Best Crosshair Settings and Console Commands for Every Playstyle
Console commands and settings for picking a crosshair color, size, and style in CS2, plus pro codes to copy and viewmodel tweaks.
The crosshair sits dead center on your screen for the entire match, which makes it the one setting worth tuning. The default reticle is fine for your first few rounds, but once you start holding angles and trying to one-tap people, you'll want something shaped around how you aim. CS2 gives you a big pile of console commands for exactly this, and to run any of them you just open the developer console with the tilde key (the one under Escape), type the command, and hit enter.
What follows covers the five pieces that make the biggest difference. Color and size come first since they do most of the visibility work. Then the static-vs-dynamic choice, a batch of pro codes you can paste straight in, the viewmodel settings that decide how much of your screen the gun eats, and the boring-but-important part about saving it all so it doesn't reset on you.
Crosshair Color and Size for Visibility
Color and size are where most of the visibility work happens. The goal is a reticle that stands out against whatever's behind it, whether that's a bright wall on Mirage or a dark corner on Nuke. CS2 hands you five preset colors plus a custom option, and the right pick mostly comes down to contrast with the maps you play.
Picking a color
The cl_crosshaircolor command sets the base color with a single number, and here's what each value gives you.
| Value | Color | |---|---| | 0 | Red | | 1 | Green (the default) | | 2 | Yellow | | 3 | Blue (dark) | | 4 | Cyan (light blue) | | 5 | Custom, set with RGB |
Green, yellow, and cyan are the popular picks because they sit in the middle of the brightness range and stay readable against both light and dark backgrounds. Red works too, though it can wash out against the orange-brown walls on maps like Dust II. If none of those feel right, set cl_crosshaircolor to 5 and dial in your own shade with cl_crosshaircolor_r, cl_crosshaircolor_g, and cl_crosshaircolor_b. Each one runs 0 to 255, so you can build any color you want, like a soft white (around 235, 235, 235) or a punchy orange.
Sizing the lines
cl_crosshairsize stretches the four lines outward from the center, and the default is 5. Smaller numbers give you shorter lines, and a lot of aimers drop into the 1 to 4 range for a tighter reticle. A size of 0 wipes the lines out entirely, which is how you build a dot-only crosshair if that's your thing.
cl_crosshairgap controls the empty space in the middle, with a default of 1. Push it negative and the lines pull inward toward each other for a tight little plus sign. Leave it positive and you get more breathing room around the center. The gap you like is mostly personal, but tighter gaps tend to feel good for precise tapping and looser ones for spraying.
cl_crosshairthickness handles how fat each line is. The default sits at 0.5, and bumping it up helps when a thin reticle keeps vanishing on bright backgrounds. Don't go too thick, or the lines start to crowd the center and you lose your precise aim point.
Outline and transparency
The outline draws a thin black border around each line, and it's the single best visibility trick in the game. Turn it on with cl_crosshair_drawoutline 1 and set the border width with cl_crosshair_outlinethickness (default 1). With an outline on, you can get away with softer colors because the black edge keeps the shape readable on any background.
cl_crosshairalpha handles how see-through the reticle is. The default is 200, and you can push it up toward 250 for a fully solid reticle or drop it lower if full opacity feels too in-your-face. Most players leave it near the top so the crosshair never fades out at a bad moment.
One for the AWPers
If you spend time on the AWP or Scout, cl_crosshair_sniper_width thickens the black lines inside the scope, anywhere from 0 to 20. A lot of AWPers nudge it up a couple of points so the crosshair reads a hair faster when they quick-scope. Not a big deal for riflers, but worth a mention.
Static vs Dynamic Crosshair Options
This is the choice that splits people more than any other: should the crosshair hold perfectly still, or spread open when you move and shoot? CS2 gives you six styles for this, controlled by cl_crosshairstyle.
The six styles
| Value | What it does | |---|---| | 0 | Default, dynamic | | 1 | Static default | | 2 | Classic static with a dynamic center | | 3 | Classic dynamic | | 4 | Classic static | | 5 | A mix of static and dynamic |
Style 4 is where nearly every serious player lands. It holds completely still no matter what you do, so the center always shows exactly where your first bullet lands. That consistency is the whole point. You learn the spray pattern as muscle memory and stop relying on the reticle to tell you when your shots go wide.
Why static usually wins
The dynamic styles (0, 2, 3, and 5) spread the lines apart while you move, jump, or fire. Valve put that in to teach newer players that bullets don't go where the dot points when you're running. It's a decent teaching tool, and kind of a crutch once you actually know how the guns behave.
CS2 accuracy works a specific way. The crosshair only ever shows where the first bullet lands. Every shot after that follows a fixed spray pattern you learn through repetition. A dynamic reticle that spreads on bullet four is showing you something that's already wrong, because your real bullets aren't fanning out in a neat cross. They follow the gun's actual recoil path. A static style 4 just gets out of the way and lets your hands do the work.
The dot and the T-shape
Two small toggles live in here too. cl_crosshairdot 1 drops a dot in the dead center, which gives you a fixed point to track at long range. AWPers and tap-fire players tend to like it, especially when they run a tiny crosshair where the lines barely exist. cl_crosshair_t 1 chops off the top line and turns the crosshair into a T, which clears the space above your aim point. Some players swear it helps them track heads moving up and down, though it's mostly preference.
Don't shoot your teammates
One more toggle worth knowing. cl_crosshair_friendly_warning 1 turns the crosshair into an X when you're aiming at a teammate, so you don't accidentally tag them in a chaotic site hit. It's on by default, and there's basically no reason to turn it off. Set it to 0 only if you really want to.
Pro Player Crosshair Codes to Copy
Once you know the commands, the fastest way to find a crosshair you like is to steal one from the pros. CS2 packs every setting into a short share code, and you can paste it in without touching the console at all.
How share codes work
A share code is a string that starts with CSGO- and encodes the whole crosshair, color, size, gap, style, and all. To use one, open Settings, head to the Game tab, then Crosshair, and click the Share or Import button. Paste the code in, confirm, and the reticle swaps instantly. You can also export your own current crosshair from that same menu, which is handy for backing it up.
A few codes to try
These come straight from tournament configs and the big pro databases. They're current as of the latest roster updates, though keep in mind that pros tweak their crosshairs all the time, so a given code might drift a patch or two behind.
| Player | Role | Crosshair code | |---|---|---| | donk | Rifler, Spirit | CSGO-2uZLz-jXPTZ-SUkJx-dmJyv-UxQRO | | ZywOo | AWPer, Vitality | CSGO-KDOkV-jUpoE-GdhAh-YzbZL-MYXTB | | NiKo | Rifler, Falcons | CSGO-m89VO-6zPDr-53TJ9-OySAJ-V8Y2Q | | m0NESY | AWPer | CSGO-JV6Rw-9sfQB-UzokG-SHqBx-sbK5O | | ropz | Rifler | CSGO-RLHnF-xbYw5-ZBiB5-MEOKJ-edK5O |
If one of these doesn't feel right, the databases at ProSettings, Total CS, and ProCrosshairs update basically every day, so you can always grab a fresher copy. Worth checking the role too. AWPers and riflers often run different sizes, since an AWPer wants a cleaner sight picture for one-shot kills and a rifler wants something that tracks through a full spray.
What you can learn from them
Look at a stack of pro crosshairs and the pattern jumps out. Most are small, green or cyan, style 4, with a tight gap and no dot. They're not magic. They're just tuned to sit neatly on a head at the ranges pros fight at, which on most maps is somewhere between close and medium.
The smart move is to copy one, play a deathmatch with it, and then nudge the size and gap to your taste. You'll usually only move each slider a point or two away from the pro setting before it feels like yours. That's a lot faster than building from zero, and it puts you in the right neighborhood from the first shot.
Viewmodel and FOV Console Commands
The viewmodel is the gun you see in your hands, and the commands here control where it sits and how much of the screen it eats. None of these change your actual accuracy, the bullets go where the crosshair points regardless. What they do change is how much of the map you can see, and how much the gun bounces around while you run.
Field of view and position
viewmodel_fov is the big one. It sets the viewmodel's field of view, from 54 to 68, with 60 as the default. Pushing it to 68 pulls the gun further out and shrinks it on screen, which frees up the lower center of your view. The vast majority of serious players run it at 68 for exactly that reason.
The three offset commands fine-tune where the gun floats.
| Command | Range | Default | What it moves | |---|---|---|---| | viewmodel_offset_x | -2 to 2.5 | 1 | Left and right | | viewmodel_offset_y | -2 to 2 | 1 | Close to you or far | | viewmodel_offset_z | -2 to 2 | -1 | Up and down |
A higher X pushes the gun toward the edge of the screen and out of your sight line. A negative Z drops it lower so it blocks less of the middle. Most competitive setups land around X 2 to 2.5, Y 0, Z -1.5, which tucks the gun down and to the right and opens up the center for spotting enemies. That's basically the same viewmodel ZywOo runs, and NiKo's is close to it too.
The three presets
If messing with individual offsets sounds tedious, viewmodel_presetpos sets them all at once with a single number. The three options are 1 (Desktop), 2 (Couch), and 3 (Classic). Preset 3 is the closest to what a lot of pros use, since it tends to sit the gun low and out of the way. Pick one as a starting point, then tweak the offsets if it's not quite right.
Calming the weapon bob
Bob is how much the gun sways while you move. Some players find the bounce distracting, so they dial it down. The four commands and their defaults look like this.
| Command | Default | What it does | |---|---|---| | cl_bob_lower_amt | 21 | How far the gun dips when you run | | cl_bobamt_lat | 0.4 | Side-to-side sway | | cl_bobamt_vert | 0.25 | Up-and-down sway | | cl_bobcycle | 0.98 | Speed of the bob cycle |
A popular low-sway setup drops cl_bobamt_lat to about 0.33 and cl_bobamt_vert to about 0.14 while leaving cl_bobcycle at 0.98. Plenty of pros actually keep cl_bob_lower_amt at the default 21, since the bob here is cosmetic and doesn't move your real aim point. Treat these as comfort settings and tune them to taste.
Left or right hand
cl_righthand 1 puts the gun in your right hand, and cl_righthand 0 swaps it to the left. Some players switch hands mid-game to peek corners where the gun model would otherwise block the view. You can bind a key to toggle it if that's a habit you want to build.
Saving and Sharing Your Config
There's nothing worse than dialing in a crosshair you love, closing the game, and finding it reverted the next time you play. CS2 has a habit of resetting little things after updates, so you want a setup that reloads itself every launch.
The autoexec route
The clean fix is an autoexec.cfg file. It's just a text file full of console commands that the game runs automatically when it starts. Setting one up takes a couple of minutes.
- Find your cfg folder. On most installs that's inside the Steam CS2 files at game, then csgo, then cfg.
- Create a new text file and name it
autoexec.cfg. - Paste in all your crosshair and viewmodel commands, one per line.
cl_crosshairstyle 4,cl_crosshairsize 2,viewmodel_fov 68, and so on. - Add
host_writeconfigon the very last line. - Set a launch option of
+exec autoexec.cfgin your Steam properties for the game.
The host_writeconfig line is the part people skip and then complain about. Without it, the game can load its own saved config on top of yours and overwrite your crosshair. That one line writes your live settings into the main config file so they stick for good.
The share-code route
The in-game Share or Import menu works both ways. Once your crosshair is dialed in, you can generate your own share code from that same screen. Copy it into a notes file or a chat message and you've got a portable backup. That's useful if you play on more than one PC, or if you want to hand your setup to a friend without them typing thirty commands.
Where to land
You don't need to obsess over every slider. Grab a pro code, drop it in, run a deathmatch, and nudge the gap or size a couple of points until the reticle sits where your eye wants it. That gets you a workable crosshair inside an hour. Save it to your autoexec once, and it reloads on every launch without you touching it again.