You are viewing a potentially older version of this package. View all versions.
Coruscnium-ControllerSensitivityFix-1.0.0 icon

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.

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-5.4.2403 icon
BepInEx-BepInExPack_Mycopunk

BepInEx pack for Mycopunk. Preconfigured and ready to use.

Preferred version: 5.4.2403
Sparroh-ModSettingsMenu-1.2.0 icon
Sparroh-ModSettingsMenu

In-game mod config editor plus click-and-drag HUD reposition mode for compatible mods.

Preferred version: 1.2.0

README

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

  1. Install BepInExPack_Mycopunk
  2. Place ControllerSensitivityFix.dll in BepInEx/plugins/
  3. 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 by unscaledDeltaTime * 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)