lmuFFB App

ErwinMoss

Well-known member
lmuFFB early version released: https://github.com/coasting-nc/LMUFFB/releases/

Some of the FFB formulas might need refinements. Adjust the FFB configuration options in lmuFFB to see which of the currently supported effects you prefer.

Your testing and feedback is greatly appreciated!

Project homepage: https://github.com/coasting-nc/LMUFFB#lmuffb
Download latest version: https://github.com/coasting-nc/LMUFFB/releases/

1780262841988.png



Troubleshooting​

  • Unable to save settings or config.ini errors:
    • This usually happens if you placed the lmuFFB app or folder in a location without write permissions (e.g., inside `C:\Program Files`).
    • Solution: Keep the entire lmuFFB folder to a location where the app can have full write access, such as a subfolder in your Downloads folder.
  • Inverted FFB (Force pushes away from center):
    • If the FFB feels "backwards" or "inverted" while driving (wheel pushes away from center instead of pulling toward it), check the "Invert FFB" checkbox in the lmuFFB GUI.
    • This reverses the force direction to match your wheel's expected behavior.
  • No FFB:
    • Ensure the "FFB Device" in lmuFFB is your real wheel
    • Check if Connected to Le Mans Ultimate" appear in the GUI
    • Verify the FFB strength in your device driver is not too low
    • Increase Master Gain or reduce Max Torque Ref
    • Check the lmuFFB console for errors
  • Baseline vibration from the FFB:
    • That is known to come from the Steering Shaft Torque from the game (you can temporarily disable Steering Shaft Gain to confirm it).
    • To fix it, enable the "Static Noise Filter" in lmuFFB and set a Target Frequency of 10-12 Hz.
    • If some noise is still present, you can increase the Steering Shaft Smoothing.
  • FFB too weak:
    • Increase Master Gain (slider ranges from 0% to 200%, so you can boost beyond 100%).
    • Or reduce Max Torque Ref (this amplifies the signal by setting a lower reference point for maximum torque).
  • Violent oscillations or shaking:
    • If you experience violent oscillations that the Smoothing or Speed Gate settings don't catch, try increasing Max Torque Ref (e.g., from 45 to 60-80 Nm).
    • Higher Max Torque Ref values reduce clipping and noise, which can cause oscillations.
    • Tuning Tip: Max Torque Ref is the primary way to control the balance between clipping/noise and steering weight. Start at 45 Nm and adjust based on your preference.
  • Strange pull in some scenarios:
    • If you feel a strange pull in specific driving situations, try reducing the Rear Align Torque.
  • Sharing Presets:
    • You can now easily share your FFB settings with others using the "Export Selected..." and "Import Preset..." buttons in the Presets section.
    • Exported presets are saved as small .ini files that can be sent to other users.
  • The app has too many options and it's confusing:
    • A future version will include a "Basic Mode" with auto adjustment and defaults for most settings.
    • We need to first determine which settings work best for most users and wheel types (Direct Drive vs Belt/Gear).
    • Please leave feedback on the forum thread telling us what settings work best for you: LMU Forum Thread
  • Any other issue:
    • Preferred: Open a GitHub Issue. This is the best way to ensure your issue is tracked and addressed. Our AI agents periodically scan and attempt to fix GitHub issues.
    • Alternatively, post in the LMU Forum Thread, but be aware that forum posts are harder to track.


Development History & Licensing Note:

Original Foundation:
This application is entirely original and was built from scratch. It is not a fork, port, or derivative of any other software (such as irFFB or MAIRA). While it serves a similar general purpose (FFB customization for some sim racing title), its architecture, design, and mathematical implementation are completely independent.

Thread History: This thread was originally opened in July 2025 to encourage the community to explore implementing a custom FFB app for LMU. Because no community projects materialized, I independently began developing this app in December 2025 on a completely separate and original technical foundation. In April 2026, the project transitioned from an open-source (GPL) model to a proprietary, closed-source model.
 
Last edited:
Personally, I prefer physically calculated force feedback. However, artificially added effects can fool you into thinking it's better. As far as I know, the force feedback in LMU is calculated directly from the front axle or tires, and no "artificial effects" are added. I hope it stays that way. I don't want Iracing's force feedback in LMU, because otherwise I don't see any point in driving LMU. But everyone has their own taste.
 
People think games uses some switchs and settings to adjust FFB like we see in few games.

That is surely not how real FFB should work.

Real FFB is based on Physics, Tyre model, Surface and Aero. You shouldn't adjust the FFB itself, but tweak models to generate a proper FFB, with the risk of influencing parts of FFB differently.

And FFB is part of the "feel" of a car. If anybody can adjust the FFB as he wants, they modify the work the modders have made to make it realistic. Not mentionning it becomes quite unfair on a multiplayer game.

Today, a lot of people want to win, they don't want to drive. LMU is a driving game.
 
Trouble is (and this is my subjective opinion of course), as someone who has played the game since EA release, the FFB, for whatever reason, is the worst it’s ever been in terms of feel.

I managed to get back on for the first time in a while last night and the GT3’s especially just feel… lifeless. There’s still a bit of life left in the Hypercar’s/LMP2’s etc, basically all cars still on the December tyre model, which in itself was a downgrade in terms of FFB feel from the September 2024 tyre model (imo).

But I totally get why some would like an app like this. I for one have never seen anything wrong with adding “fake” effects if that what’s a user wants. LMU has slowly been going the way of ACC over the lifetime of GT3’s being introduced - numb, over dampened and lifeless. They never felt great from the off, but then the June 10th tyre model came along and really improved things for me. Alas, they listened to everyone moaning who couldn’t drive them and while I think they do behave more realistically now with the added rear end grip, something else has happened with the tyre model along the way and it’s made them incredibly dull to drive. For me.
 
Last edited:
I had the same feeling when driving the AMG GT3. After the update, it felt so lifeless. The solution was to set the caster (default 120) to the minimum (30) in the setup.
The difference is like night and day. It's also advisable to familiarize yourself with the FFB settings of your wheelbase.
I've created and optimized individual profiles for each car and track. A profile is only good for me if I can't stop doing laps because it's so much fun. But yes, not everyone can/wants to invest that time. However, it's worth it.
 
I didn’t think caster was adjustable?

Oh I’m all too familiar with my base software FFB settings, to the point of going mad lol. I just do not have the time or patience to be setting up different profiles for all cars or all tracks, as I imagine most don’t. I’m still not entirely convinced there aren’t bugs with the tyre model/track conditions as it can be so incredibly inconsistent too. That could even be an undiagnosed Simagic base issue though as far as I know 🤷🏼‍♂️

It is what it is though. All I know is I’m certainly not enjoying LMU as much as I was in the early days. It has its moments (most recently with the Valkyrie at Le Mans) but I’m more often than not left feeling “what happened to this game?” with regards to the FFB. Which is everything for a racing simulator. I remember the revelation I had getting into LMU after driving ACC for 3 years. Now it feels like it’s heading in that direction.

An app like this could possibly transform the sim for those that aren’t happy with the direction they’re going with FFB.
 
No one’s asking for canned effects for those that don’t want it. More SOP effects is what’s needed for some. If you like the way the FFB is now, thats fine. For those that want a bit more life, a bit more info that sitting in a static rig can’t give you, I think that’s fine too. More options the better. OP is talking about a third party app anyway.
 
Wow. Was not expecting that. That’s awesome. I’d expect some issues with this come next Tuesday due to the new update/anti cheat being added.

Unsure whether to try it now or give it til after the update… Tempting!

So this completely overrides the in game settings only? Wheelbase software still has to be/can be tweaked?
 
So this completely overrides the in game settings only? Wheelbase software still has to be/can be tweaked?
Yes, LMUFFB generates its own Force Feedback signal derived from telemetry. To feel only this signal, you must bind your game's steering axis to the vJoy Device (not your physical wheel). In this scenario, the game sends no FFB to your physical wheel directly; LMUFFB handles it all.

Wheelbase Software: Your physical wheel's driver still applies. You should set your max rotation (e.g., 900°) and overall strength there. LMUFFB sends a "constant force" command, which the driver then executes.

Update: DirectInput is implemented with the last releases: https://github.com/coasting-nc/LMUFFB/releases/

EDIT: with newer versions of the lmuFFB app, vJoy is no longer needed or used.
 
Last edited:
Hi, I gave this a quick go this evening without much success. Using direct input mode with my wheel (Moza r9), I couldn’t feel any effect with the default settings. But the wheel would jerk about randomly and intermittently if the SOP slider was >0.

I’ll try again tomorrow, to see if I set it up wrong. Thanks for starting work on this, I was a fan of the ACC variant of IRFFB, so I’m pleased to see it for this game too.
 
After watching gamer muscle trying to get this to work, I think I’ll wait til the app is fully fleshed out and after next weeks update. I feel if I were to even get this to work right now that the anti cheat will cause issues.
 
OK, my in game steering axis is binded to vJoy, and I have tested this by using the vJoy feeder app. I didn't do this properly previously, so that was my mistake.

I have moved LMUFFB.exe to the vJoy installation directory (C:\Program Files\vJoy\x64), because the vJoy config/monitor/feeder was complaining if I moved the 'vJoyInterface.dll' elsewhere. LMUFFB seems fine running in here.

I'm not seeing any errors in the LMUFFB console, so the app seems happy. I have the FFB Device set to my Moza R9, but I have no steering in game now, turning the wheel doesn't show anything in vJoy monitor either. It's as if LMUFFB isn't returning the steering angle to vJoy and thus the game input. So I can't drive the car to test it.

The wheel is now randomly and intermittently spinning about, even with SOP set to 0. I'm using the latest (as of this morning) 0.3.3b version of LMUFFB, and I'm using the recommended version of vJoy.
 
OK, my in game steering axis is binded to vJoy, and I have tested this by using the vJoy feeder app. I didn't do this properly previously, so that was my mistake.

I have moved LMUFFB.exe to the vJoy installation directory (C:\Program Files\vJoy\x64), because the vJoy config/monitor/feeder was complaining if I moved the 'vJoyInterface.dll' elsewhere. LMUFFB seems fine running in here.

I'm not seeing any errors in the LMUFFB console, so the app seems happy. I have the FFB Device set to my Moza R9, but I have no steering in game now, turning the wheel doesn't show anything in vJoy monitor either. It's as if LMUFFB isn't returning the steering angle to vJoy and thus the game input. So I can't drive the car to test it.

The wheel is now randomly and intermittently spinning about, even with SOP set to 0. I'm using the latest (as of this morning) 0.3.3b version of LMUFFB, and I'm using the recommended version of vJoy.
Thank you for your feedback. I will release a new version next week with some troubleshooting visualizations (which forces are being transmitted), and a guided installer. In the mean time, there is on github a new minor update release, with more precise install instructions and a few minor fixes if you want to try it.

These are also some additional thingsyou can try also with your current version (0.3.3b):

1. Bind the wheel in game but disable all FFB​

Try binding the wheel in game as the steering device, but set all FFB strength settings to 0 and disable all the FFB toggles in the in-game FFB configuration, to prevent receiving FFB from the game.

Alternatively, try both of the following:

2. Fix "No Steering" (The Bridge)​

The Issue: LMUFFB calculates Force Feedback, but it does not read your steering angle. It cannot "bridge" your Moza steering to vJoy on its own. The Fix: You must keep a "Feeder" application running in the background while you play.

  1. Open vJoy Feeder (or Joystick Gremlin).
  2. Select your Moza R9.
  3. Ensure that turning your Moza moves the vJoy Axis bars.
  4. Leave this app open while playing the game.

3. Fix "Wheel Spinning" (The Axis Conflict)​

The Issue: This is a conflict between the App and your Game bindings. Currently, LMUFFB outputs the FFB Force signal to vJoy Axis X (so you can see the force visually in vJoy Monitor). However, if you bind the Game Steering to vJoy Axis X, the App is effectively "steering the car" with the Force Feedback signal. This creates a feedback loop where the wheel spins and jerks on its own.

The Fix: You need to use a different axis for steering to avoid the FFB signal.

** Follow these steps:**

  1. Configure vJoy:
    • Open Configure vJoy.
    • Ensure Device 1 has at least X and Y axes enabled.
  2. Configure the Feeder (e.g., vJoy Feeder / Gremlin):
    • Map your Moza Steering to vJoy Axis Y (instead of X).
  3. Configure the Game:
    • Go to LMU Controls.
    • Bind Steering to vJoy Axis Y.
  4. Run LMUFFB:
    • Now, LMUFFB will write FFB info to Axis X (which the game ignores).
    • Your Feeder will write Steering to Axis Y (which the game uses).
 
Last edited:
Where in vJoy feeder do I select my Moza wheel?
Regarding the vJoy Demo Feeder, I made a mistake, and I apologize for the confusion.

The 'Bridge' method (with Joystick Gremlin) is a fallback method to be used when the game refuses to share the wheel with the app.

But before trying the Bridge method, please first try the Direct Method:

In Game: Bind your Moza R9 directly to Steering (unbind vJoy)
In Game: Set FFB Strength to 0%.
In lmuFF app: Select Moza R9.
If the wheel has force feedback and steers the car, you are good to go! You don't need vJoy or Gremlin.
If the wheel has NO force feedback (is limp) while the app is running, it means the game has 'Locked' the device. In that case, you will need to go back to the Joystick Gremlin method."

(Regarding the vJoy Demo Feeder: it is only designed to test if vJoy is working by moving those sliders with your mouse. It cannot read your physical Moza wheel. To bridge your Moza wheel to vJoy, you need a specific mapping software. The most reliable (and free) tool for this is Joystick Gremlin.)


Here is the corrected step-by-step guide to setup the "Brige":

1. Download Joystick Gremlin​

2. Map Your Wheel (The Bridge)​

  1. In Joystick Gremlin, you will see tabs at the top for your connected devices. Click the tab for your Moza R9.
  2. Turn your physical wheel. You should see one of the axes in the list highlight/move (usually "X Axis" or "Rotation X").
  3. Click on that axis in the list.
  4. On the right side, under "Action", choose "Map to vJoy".
  5. Crucial Step (To fix the spinning bug):
    • Select vJoy Device: 1
    • Select Axis: Y (Do NOT select X, as LMUFFB is currently overwriting X for its display, causing the spinning).

3. Activate the Bridge​

  • In the top menu of Joystick Gremlin, click the "Activate" button (the Gamepad icon turns green).
  • Test: Now, when you turn your physical Moza wheel, the Y bar in the vJoy Monitor (or the Feeder you screenshotted) should move.

4. Bind in Game​

  • Go into Le Mans Ultimate.
  • Bind Steering to that new vJoy Axis Y.

Once you do this, the "Bridge" is complete: Moza -> Joystick Gremlin -> vJoy Axis Y -> Game.

This leaves vJoy Axis X free for LMUFFB to use for its display without interfering with your steering.
 
Regarding the vJoy Demo Feeder, I made a mistake, and I apologize for the confusion.

The 'Bridge' method (with Joystick Gremlin) is a fallback method to be used when the game refuses to share the wheel with the app.

But before trying the Bridge method, please first try the Direct Method:

In Game: Bind your Moza R9 directly to Steering (unbind vJoy)
In Game: Set FFB Strength to 0%.
In lmuFF app: Select Moza R9.
If the wheel has force feedback and steers the car, you are good to go! You don't need vJoy or Gremlin.
If the wheel has NO force feedback (is limp) while the app is running, it means the game has 'Locked' the device. In that case, you will need to go back to the Joystick Gremlin method."

(Regarding the vJoy Demo Feeder: it is only designed to test if vJoy is working by moving those sliders with your mouse. It cannot read your physical Moza wheel. To bridge your Moza wheel to vJoy, you need a specific mapping software. The most reliable (and free) tool for this is Joystick Gremlin.)


Here is the corrected step-by-step guide to setup the "Brige":

1. Download Joystick Gremlin​

2. Map Your Wheel (The Bridge)​

  1. In Joystick Gremlin, you will see tabs at the top for your connected devices. Click the tab for your Moza R9.
  2. Turn your physical wheel. You should see one of the axes in the list highlight/move (usually "X Axis" or "Rotation X").
  3. Click on that axis in the list.
  4. On the right side, under "Action", choose "Map to vJoy".
  5. Crucial Step (To fix the spinning bug):
    • Select vJoy Device: 1
    • Select Axis: Y (Do NOT select X, as LMUFFB is currently overwriting X for its display, causing the spinning).

3. Activate the Bridge​

  • In the top menu of Joystick Gremlin, click the "Activate" button (the Gamepad icon turns green).
  • Test: Now, when you turn your physical Moza wheel, the Y bar in the vJoy Monitor (or the Feeder you screenshotted) should move.

4. Bind in Game​

  • Go into Le Mans Ultimate.
  • Bind Steering to that new vJoy Axis Y.

Once you do this, the "Bridge" is complete: Moza -> Joystick Gremlin -> vJoy Axis Y -> Game.

This leaves vJoy Axis X free for LMUFFB to use for its display without interfering with your steering.
Ok thank you, I tinkered a bit and here are the results:

When I map the steering wheel direct in game I can turn the car but no FFB.
Same when I try the Bridge method.

I do see a difference in the console output, in the first method (direct mapping) I see this:
Code:
Starting LMUFFB (C++ Port)...
[Config] Loaded from config.ini
[DI] Initialized.
Connected to Shared Memory.
[GUI] Main Loop Started.
[vJoy] Library loaded successfully.
[vJoy] Device 1 acquired.
[FFB] Loop Started.

While in the Bridge method I see this.
Code:
Starting LMUFFB (C++ Port)...
[Config] Loaded from config.ini
[DI] Initialized.
Connected to Shared Memory.
[GUI] Main Loop Started.
[vJoy] Library loaded successfully.
[vJoy] Failed to acquire device 1
[FFB] Loop Started.

If I start Gremlin first, LMUFFB can not acquire the vjoy device.
If I start LMUFFB first, Gremlin can not acquire the vjoy device.
 
Ok thank you, I tinkered a bit and here are the results:

When I map the steering wheel direct in game I can turn the car but no FFB.
Same when I try the Bridge method.

I do see a difference in the console output, in the first method (direct mapping) I see this:
Code:
Starting LMUFFB (C++ Port)...
[Config] Loaded from config.ini
[DI] Initialized.
Connected to Shared Memory.
[GUI] Main Loop Started.
[vJoy] Library loaded successfully.
[vJoy] Device 1 acquired.
[FFB] Loop Started.

While in the Bridge method I see this.
Code:
Starting LMUFFB (C++ Port)...
[Config] Loaded from config.ini
[DI] Initialized.
Connected to Shared Memory.
[GUI] Main Loop Started.
[vJoy] Library loaded successfully.
[vJoy] Failed to acquire device 1
[FFB] Loop Started.

If I start Gremlin first, LMUFFB can not acquire the vjoy device.
If I start LMUFFB first, Gremlin can not acquire the vjoy device.
Please also try this with the direct method:

You must explicitly tell the app to talk to your Moza.
In the LMUFFB window, look for the "FFB Device" dropdown menu.
Click it and select "Moza R9".
Note: If you don't do this, the app calculates the forces but sends them nowhere.

(The Misunderstanding: When you see [vJoy] Device 1 acquired, it means the app has connected to the virtual debugger axis. It does not mean it has connected to your real wheel. Currently, the app does not print a confirmation line when the real wheel connects (I will add this in the next update), so it likely silently failed or wasn't selected.
)

I repeat the full steps here:
  1. Clean Slate: Close Joystick Gremlin and vJoy Feeder.
  2. Game Setup:
    • Start Le Mans Ultimate.
    • Bind Steering directly to your Moza R9.
    • Important: Set In-Game FFB Strength to 0% (or "Off").
  3. App Setup:
    • Start LMUFFB.
    • CRITICAL STEP: In the LMUFFB window, look for the "FFB Device" dropdown menu.
    • Click it and select "Moza R9".
    • Note: You must do this manually. If the dropdown says "Select Device...", the app is calculating forces but sending them nowhere.
  4. Verify:
    • Since the console is currently silent about success, check the console for Errors.
    • If you select the Moza R9 and do not see a red error like [DI] Failed to acquire, then it is connected!
    • Drive the car. You should feel the physics.

If you select the Moza R9 in the dropdown and immediately see an error in the console, please paste that error here. That would mean the Game is "locking" the device and preventing the App from accessing it.

Update:

If you selected the Moza R9 but still feel no physics, the Game is likely blocking the App. Check the Console while driving: Do you see a repeating message saying: [DI Warning] Device unavailable?
YES, I see the warning: The game has 'Locked' your wheel. You cannot use the Direct Method. You must use the Joystick Gremlin Bridge method we discussed earlier.
NO, the console is clean: The game might be overwriting the signal.

Other things to try with the direct method in case of no FFB:
Try Alt-Tabbing out of the game. If the FFB suddenly kicks in when the game is in the background, it confirms the game is interfering.

Try to tweak some of the values of the lmuFFB app, in case they are causing the FFB to be zero. Particular values to try to adjust are SOP (Seat of Pants) and Master Gain.
 
Last edited:
Back
Top