ControllerSensitivityFix
Decouples controller sensitivity from framerate for consistent look speed at any FPS. Controller rotation speed now stays the same whether you're at 30, 60, 120, or any framerate.
By Coruscnium
| Date uploaded | 2 weeks ago |
| Version | 1.0.0 |
| Download link | Coruscnium-ControllerSensitivityFix-1.0.0.zip |
| Downloads | 38 |
| Dependency string | Coruscnium-ControllerSensitivityFix-1.0.0 |
This mod requires the following mods to function
BepInEx-BepInExPack_Mycopunk
BepInEx pack for Mycopunk. Preconfigured and ready to use.
Preferred version: 5.4.2403Sparroh-ModSettingsMenu
In-game mod config editor plus click-and-drag HUD reposition mode for compatible mods.
Preferred version: 1.2.0README
ControllerSensitivityFix
Decouples controller sensitivity from framerate for consistent look speed at any FPS.
The Problem
In Mycopunk (like many Unity games), controller stick input is not multiplied by Time.deltaTime. The method PlayerInput.LookInput() reads the game's Look InputAction and returns the raw stick value scaled by 40×, but never factors in frame time. This means:
| Framerate | Controller Sensitivity | Why |
|---|---|---|
| 30 FPS | Slow | Fewer frames = less rotation per second |
| 60 FPS | Normal | What the game was tuned for |
| 120 FPS | Too fast | More frames = more rotation per second |
| 144 FPS | Even faster | Same reason |
Mouse input is unaffected — it uses pixel deltas which are naturally framerate-independent.
The Fix
A single Harmony postfix on PlayerInput.LookInput() — the choke point for all gamepad look input. When the active device is a gamepad, the returned Vector2 is multiplied by unscaledDeltaTime × ReferenceFPS, making the effective rotation speed the same at any framerate. A 0.1s clamp on deltaTime prevents camera whip during load/GC hitches.
Installation
- Install BepInExPack_Mycopunk
- Place
ControllerSensitivityFix.dllinBepInEx/plugins/ - Launch the game
Configuration
Edit BepInEx/config/coruscnium.controllersensitivityfix.cfg:
| Setting | Default | Description |
|---|---|---|
ReferenceFPS |
60 | The framerate the controller sensitivity was tuned for. At this FPS, sensitivity is unchanged. Higher FPS = scaled down; lower FPS = scaled up. |
Credits
- Icon: Xbox controller illustration from PNGWing (CC BY-NC 4.0)
CHANGELOG
Changelog
1.0.0
- Initial release
- Harmony postfix on
PlayerInput.LookInput()scales gamepad look input byunscaledDeltaTime * ReferenceFPS, making controller sensitivity framerate-independent (mouse untouched) - Configurable reference framerate (default: 60 FPS, range 15–240)
- ModSettingsMenu integration: edit ReferenceFPS in-game via F10, applied live
- Config hot-reload from disk (FileSystemWatcher + Config.Reload)