How FPS Sensitivity Conversion Works: The engineYaw Method
Most sensitivity converters give you the right answer without explaining why. This article shows the actual mechanism — what engineYaw is, where it comes from, the exact formula, and the honest limits of what any conversion can guarantee.
What engineYaw Is
When you move your mouse, the hardware reports raw movement in counts — discrete increments determined by your DPI setting. The game engine takes those counts, multiplies them by your sensitivity setting, then multiplies that result by a fixed internal constant to produce degrees of on-screen rotation.
That fixed constant is engineYaw. Its name comes from Quake-era id Tech engines, where horizontal rotation (yaw) was controlled by a variable literally called m_yaw in the engine's input processing code. The value 0.022 that CS2 and Apex Legends share is the original Quake default, unchanged for over twenty-five years.
The full relationship:
Rearranging: degrees per count = sensitivity × engineYaw. This is the actual rotation rate — the thing that determines how fast your view moves for a given physical mouse displacement.
Known engineYaw Constants
These constants have been verified by the competitive FPS community through direct measurement of raw mouse input against in-game rotation:
| Game | engineYaw | Engine Heritage |
|---|---|---|
| Valorant | 0.07 | Custom (Riot) |
| CS2 | 0.022 | Source 2 — original Quake default |
| Apex Legends | 0.022 | Source engine base |
| Overwatch 2 | 0.0066 | Proprietary (Blizzard) |
| Rainbow Six Siege | 0.00573 | AnvilNext 2.0 |
| Call of Duty | 0.0066 | IW engine |
| Fortnite | 0.5709 | Unreal Engine 5 |
| Destiny 2 | 0.0222 | Tiger engine |
| Rust | 0.1 | Custom (Facepunch) |
| The Finals | 0.01745 | UE5 — 1° per radian exactly |
Notice CS2 and Apex Legends share an engineYaw of 0.022 — both derive from Valve's Source engine. Yet players often report the games feeling different at the same converted sensitivity. That difference is real, but it comes from field-of-view defaults, hitbox size, and movement speed — not from the sensitivity conversion itself.
The Conversion Formula
To produce identical rotation speed in two games, the product (sensitivity × engineYaw) must be equal in both:
Worked Example: Apex Legends → Valorant
A player uses sensitivity 2.5 in Apex Legends (engineYaw 0.022) and wants the equivalent in Valorant (engineYaw 0.07):
Verification using cm/360° at 800 DPI:
Worked Example: CS2 → Fortnite
CS2 sensitivity 1.5 (engineYaw 0.022) to Fortnite (engineYaw 0.5709):
The result is a very small Fortnite sensitivity — expected, because Fortnite's unusually high engineYaw constant means tiny numbers produce large physical rotation. A Fortnite sensitivity of 0.0578 feels identical to a CS2 sensitivity of 1.5.
Why Some Converters Get It Wrong
The engineYaw method is not wrong — it is the correct foundation. But a few practical issues cause converters to produce slightly inaccurate results:
Stale constants. Game patches occasionally adjust input scaling. A constant that was accurate in 2022 may have drifted slightly. This is uncommon — engine input constants are rarely changed in shipped titles — but it happens.
Non-linear sensitivity curves. A small number of games apply a non-linear curve to sensitivity settings at high values. The engineYaw formula assumes linearity: that doubling the sensitivity doubles rotation speed exactly. This holds at typical competitive sensitivities (below 10 for most games) but can drift at extreme values.
FOV-dependent scaling. Overwatch 2 is the most documented example of a game that scales sensitivity with field-of-view. At OW2's default 103° FOV the engineYaw constant is 0.0066, but if you change your FOV, the effective rotation speed per cm changes too. Players who use non-default FOVs need a separate compensation pass.
What This Method Does Not Cover
The engineYaw conversion gives you an exact hipfire sensitivity match. It does not address:
- ADS sensitivity — implemented as a separate multiplier in every game, each with different logic. Requires per-game ADS tables.
- Scoped / zoom sensitivity — CS2 has a zoom sensitivity ratio slider. Valorant applies per-scope multipliers. These require separate conversion.
- Feel differences — Two games can have identical cm/360° and still feel different due to FOV, animation, mouse acceleration (if enabled), and framerates. The conversion preserves rotation speed. It cannot compensate for perceptual differences between engines.
For the 90% of your game time spent firing from the hip, this conversion is exact. For ADS and scopes, treat the converted value as a starting point and adjust.