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_yaw console 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:

Verification cases and results
CaseExpectedResult
Any game converted to itselftoSens == fromSensexact, for all 11 games
CS2 sens 2.0 → Valorant≈ 0.6290.628571…
Valorant sens 0.4 → CS2≈ 1.27271.272727…
eDPIsens × DPIexact, spot-checked at several sens/DPI pairs
cm/360 sign and monotonicityalways positive; falls as sens rises; falls as DPI risesheld across the full yaw table
cm/360 agreement, From vs To sideidentical 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 pageall 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.js holds 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.js only 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.