Since I am fixing this blind and have no idea about controller inputs, I have to play it by ear based on what the AI says, so it has questions for you.OG_RuDeE wrote: Sun Aug 02, 2026 6:51 pm Ok, with Steering Sensitivity up to 20, wheel is much better. Even before hf3, the turning axis is detected correctly in menu and picks up slight turning on those bars, but in game it didn't behave the same in game as in the menu before you added sensitivity. I wonder though if the game is picking up / forcing my wheel as a Xinput device, hence the lack of sensitivity? When I initially tried the wheel in game I had the wheel itself in the wrong mode (Xinput) which didn't work at all (in all games). After getting it on the right mode (directinput, I guess), it worked in game, but sensitivity was bad. So, maybe I broke something for the wheel settings in the metal.ini on my first try? Anyway, sensitivity setting helps.
Furthermore, he has this to say to you.The_AI wrote: There are two separate controls, and their symptom points at the other one.
Steering Sensitivity is a response curve (a pow() exponent). Cranking it to 20 makes the response aggressive near centre, which compensates for the real problem but leaves the whole curve non-linear.
Steering Range is the saturation point — what fraction of wheel travel counts as full lock. It defaults to 90, which reproduces the game's original hardcoded 1.11 factor. A wheel with no driver software reports its full ~900°, so full lock demands ~810° of turning. That's exactly "I have to turn 90° before I get any movement."
So worth asking them to try Steering Range 30–40 and put Sensitivity back to something moderate. That caps the rotation the way a driver panel would, and should feel natural rather than twitchy.
That also explains the menu-vs-game discrepancy they noticed: the menu's axis readout shows the raw device value, so slight turning registers there. The game applies range saturation, dead zone and the response curve on top — which is why the same small movement did nothing in a race.
On the XInput worry — the game isn't forcing it. di8SourceIsXInput() reports XInput only if the selected device actually enumerates as an XInput device. A wheel in DirectInput mode won't. They can confirm from the Controls page: XInput shows "Swap Gas/Brake Triggers"; DirectInput shows the axis dropdowns (Steering Axis, Pedal Axis, Camera Look). If they see dropdowns, they're on DirectInput.
On "did I break the INI on my first try" — plausible, and easy to check. The device choice is stored by product name in [Control] di8DeviceName plus inputDevice. Switching the wheel between XInput and DirectInput modes changes the name it reports, so a preference saved in the wrong mode can point at a device that no longer exists. Re-picking the device in the Controls page rewrites both keys; failing that, deleting di8DeviceName, inputDevice and the di8*Axis keys from [Control] in monster.ini gives a clean slate.
One thing I'd like back from them: whether Steering Range at 30–40 lets them drop Sensitivity. If yes, that's the correct fix and the sensitivity default is fine as-is. If they still need max sensitivity, the response curve itself needs looking at.
The_AI_again wrote: To answer his actual question: no, "Modern Input" does not cover it. They're separate switches, and he needs all of:
Modern Input (input only — he has this)
Modern Force Feedback — separate toggle, defaults on
Force Feedback — the master toggle; FF Strength only appears once it's on
FF Strength > 0
Two more things worth telling him, because they'd defeat all of the above:
Rumble follows the selected device. The dispatcher picks wheel-FFB or pad-rumble from whichever controller is selected, so with his wheel selected the pads get nothing no matter what. He should pick the pad in Controls, not just plug it in.
A device change lands at the next race, not immediately — the mode is re-evaluated when effects are rebuilt.
If rumble still fails with all four on and the pad selected, the next thing I'd want is whether it's XInput or DirectInput on the Controls page (dropdowns = DI, "Swap Gas/Brake Triggers" = XInput) — a pad landing on the DI branch would explain a total silence.

