The Settings Menu Is Where It Actually Lives
If you want the in-game crosshair editor, you find it under Settings > Crosshair. That is the manual, basically. It is not a separate document you download or read. It is a panel with sliders, preset categories, and a live preview that updates as you tweak values. The four main sections are the crosshair, dynamic, movement, and collision. Each one has sub-options that change how the reticle behaves when you move, shoot, or get blocked by geometry. Open the main menu, click the gear icon, then go to the Crosshair tab. You will see a numbered list of parameters. The ones that actually matter to most players are Crosshair Inner/Outer, Gap, Thickness, Style, and Color. Everything else is either for recoil compensation or for making the crosshair disappear when it touches an enemy hitbox. If you do not understand what "Collision" does, it simply makes the crosshair vanish when it overlaps a visible surface. It feels clever until you realize it also hides behind walls, corners, and low terrain, which is why most competitive players turn it off entirely. I spent about three weeks last year trying to dial in a static square crosshair because I was switching from CS2. The problem was that Valorant's crosshair dynamic settings are not obvious. There is a "Dynamic" section that controls how the crosshair expands when you are moving. Most people leave those numbers at default, which means the inner crosshair grows significantly the moment you press W or A. I did not notice this for days. The workaround was setting Movement Error Factor to 0 and Long Sequence Error Factor to 0 in the Dynamic menu. After that, the crosshair stayed exactly where I placed it, no matter how fast I was strafing. It felt almost like a different game at that point.
Outside the game, the community manual is scattered across a few places. VLR.gg and Blitz.gg both host crosshair code databases where you can copy strings and paste them into the in-game import field. The import field is hidden inside the Crosshair settings tab as a text box labeled "Crosshair Code." You paste a string like 0;P;s;O;T;0;G;1;I;2;H;1;R;0;B;0;c;1;L;0;M;0;n;0;Q;1;F;1;U;2;d;0; and the game converts it automatically. This is faster than manually entering every parameter. The downside is that code strings break sometimes. They were updated after the Viper ability rework and again when the 7.0 patch changed how collision detection renders in certain angles. I have seen players paste old codes and wonder why their crosshair looks wrong on CT spawn angles. The fix is just to clear the code field and start over from scratch, which takes about 90 seconds. One thing that is not widely discussed: the outer crosshair segments are actually independent of the inner ones. You can set Inner to thickness 1 and Gap 3 while leaving Outer at thickness 2 and Gap 0, which gives you a tiny dot with a surrounding frame. This setup is good for tracking long-range sprays because the outer ring acts as a rough bullet spread guide. Beginners usually link them together by accident and end up with a crosshair that is either too cluttered or too sparse. The outer segments are controlled under the Outer section below Inner in the settings panel. Look for Outer Style and Outer Thickness separately. They are easy to miss because Riot did not group them clearly. There is also a dedicated crosshair code generator on the official Valorant site, but it is buggy on mobile browsers. I tested it on Chrome Android and it would drop the last three parameters silently. Nothing errored out, so you would never know your code was truncated. Desktop works fine. If you are generating codes on a phone, double-check the output by comparing each letter-number pair against what you typed in.
The in-game manual itself is not very descriptive. Hovering over any setting shows a one-line tooltip that is often unhelpful. For example, hovering over "Movement Error Factor" just says "Crosshair expansion due to movement." That does not tell you that the value ranges from 0 to 1 and that anything above 0.5 will make the crosshair visibly wobble during a full sprint. I learned this the hard way after setting it to 0.8 and thinking my graphics were causing the jitter. It was the crosshair doing exactly what it was supposed to do. If you want a reference that is more accurate than the in-game tooltips, the Valorant Wiki has a detailed breakdown of every crosshair parameter with default values and recommended ranges. It is searchable and updated whenever a patch changes behavior. The page URL is not memorable, but a simple search for "Valorant crosshair settings wiki" brings it up first. I bookmarked it after my third failed attempt at fixing my crosshair after an update. Some edge case you should know: if you use a ultrawide monitor, the crosshair scales incorrectly unless you set your resolution to 16:9 first, then enable the custom aspect ratio in-game. Otherwise the gap values appear wider than they should, which throws off your muscle memory. This is a known issue and Riot has not fixed it as of the latest patch. The workaround is tedious but takes maybe five minutes to configure. Go to Settings > Video > Resolution, pick a 16:9 option, apply, then go to Video > Aspect Ratio and select 21:9 or whatever your monitor uses. The crosshair will render correctly after that.
Get the Full Details

Overall, the crosshair system in Valorant is powerful but poorly documented inside the game itself. The settings are granular, the code import saves time, and the community tools fill in the gaps. Just be careful with outdated codes and dynamic settings you do not understand. Those two things will waste more of your time than anything else.