About this converter
A small, dependency-free tool for one job: converting a mouse sensitivity number from one FPS game into another so the physical distance you move your mouse for a full turn — cm/360 — stays the same. No account, no upload, nothing you type is ever recorded.
Why it exists
Switching games and typing in "the same" sensitivity number produces a completely different feel, because every game's engine turns the camera by a different amount per mouse count. There is no way to get this right by eye or by matching eDPI — you need each game's yaw constant, and none of the studios publish theirs. So this tool bundles a documented table of community-measured values and does the arithmetic properly, instead of leaving you to guess or trust a single unlabelled black-box calculator.
How the yaw table was sourced
Two values in the table come from a documented, primary source:
- CS2 / CS:GO and the generic Quake/Source entry (0.022) — this is the Source and Quake engines'
m_yawconsole variable, whose default has been publicly documented in engine and community references for over two decades. It is the one figure in this table that is not a community estimate.
Every other value — Valorant, Apex Legends, Overwatch 2, Fortnite, Call of Duty (MW/Warzone), Rainbow Six Siege, PUBG, Destiny 2 and The Finals — is not published by its studio. These were cross-checked across multiple independent, long-running sensitivity-converter sites and tools (the kind competitive players already use to convert settings between games) to find the value each of them converges on, rather than trusting a single tool's number. Where two well-established conversion ratios could be checked against each other arithmetically — Valorant and CS2 in particular — the result was verified to reproduce the ratio those communities already circulate (see the worked examples on the converter page).
Apex Legends' value follows directly from it sharing a Source-derived engine lineage with CS2/CS:GO (Respawn's Titanfall engine fork), which is why its hipfire yaw matches CS2's exactly. Fortnite is handled differently by necessity: its own settings menu shows sensitivity as a percentage (0–100), not a decimal, so the constant here (0.005555 degrees per 1%) is scaled to match what you actually see and type in that game.
The one value that is genuinely contested: The Finals
Independent sensitivity-converter tools do not agree on The Finals' yaw constant. Some publish 0.0066 (the same figure used for Overwatch 2, Call of Duty and Destiny 2); others publish 0.01745. This tool uses 0.01745, because that specific value reproduces an exact, independently stated conversion ratio (CS2 sensitivity × 1.260745 = The Finals sensitivity, which is precisely 0.022 / 0.01745) published by more than one converter — internal consistency that the 0.0066 figure did not show against the same ratio claims. That is still a judgement call between two community numbers, not a confirmed fact, and it is stated as one rather than presented with false confidence. If Embark Studios ever publishes an authoritative constant, or if further cross-checking changes which value is better supported, this page and the table will be updated.
How the maths was verified
The formulas were checked under Node against fixed cases with known answers before this page shipped:
| Case | Expected | Result |
|---|---|---|
| Any game converted to itself | toSens == fromSens | exact, for all 11 games |
| CS2 sens 2.0 → Valorant | ≈ 0.629 | 0.628571… |
| Valorant sens 0.4 → CS2 | ≈ 1.2727 | 1.272727… |
| eDPI | sens × DPI | exact, spot-checked at several sens/DPI pairs |
| cm/360 sign and monotonicity | always positive; falls as sens rises; falls as DPI rises | held across the full yaw table |
| cm/360 agreement, From vs To side | identical on both sides of a conversion (DPI held equal) | matched to floating-point precision |
| Invalid input (empty string, 0, negative, non-numeric) | rejected, no NaN ever reaches the page | all rejected |
You can re-run the same checks yourself in any modern browser's console on this page: Sensitivity.convert({fromId:'cs2', toId:'valorant', fromSens:2, dpi:800}).toSens returns 0.6285714285714286.
How the site is built
- Static HTML, one small stylesheet, two small scripts. No framework, no build step, no bundler.
sensitivity.jsholds every formula and the yaw table with no DOM code in it at all, which is what let it be exercised directly from a Node script during development;app.jsonly wires that logic to the page. - Needs nothing from the network. No CDN framework, no web font, no remote image; the favicon is an inline SVG data URI. Once loaded it works offline.
- System font stack — nothing downloads, nothing shifts as the page loads.
- Nothing you type is transmitted. The conversion happens in your browser; your sensitivity, DPI and game choices are never uploaded to anything.
- Dark mode follows your system setting via
prefers-color-scheme.
Scope and honesty about limits
This converts hipfire (default, unscoped) sensitivity only, assumes mouse acceleration is off and raw input is enabled, and assumes one DPI value unchanged between the two games. It does not model per-weapon ADS multipliers, scope zoom curves, controller aim assist, or a game's own config-file overrides to its default yaw. Outside the Source/Quake m_yaw cvar, every constant here is a community measurement rather than an officially published specification — see the sourcing section above, and treat The Finals conversion specifically as the least certain figure on this page.
If you find a mismatch against a game's own measured feel, or a better-sourced yaw value for any title, that's worth reporting — see contact.