vJoy Force Feedback Not Working: FFB Build and Feeder Checks
Force feedback is where vJoy’s family tree stops being trivia and starts deciding whether your setup works. Plain vJoy input works across builds, but force feedback — FFB — lives in specific branches. If vJoy force feedback is not working, the cause is usually one of three things: the wrong build, FFB not enabled in the configuration, or a feeder that never sends FFB in the first place. Check them in that order.
Why the build decides FFB
The original vJoy line by Shaul Eizikovich ends at 2.1.9.1. Set your expectations for that era accordingly: it is the classic, widely compatible build, attestation-signed for Windows 10, and it is the documented compatibility fallback when feeders misbehave on newer lines — but the FFB work happened after it. The njz3 fork, version 2.2.1.1, is the signed FFB fork, with multi-device force-feedback fixes. The BrunnerInnovation 2.2.2.0 build, the newest release, was forked from that njz3 line, so it carries the FFB branch’s lineage as well as explicit Windows 10 and Windows 11 support. In short: if force feedback is your goal, you want to be on the njz3 2.2.1.1 build or on BrunnerInnovation 2.2.2.0. Testing FFB on a 2.1.9.1-era install and concluding that vJoy FFB is broken skips the branch where FFB was actually developed.
Check 1: confirm which build is installed
- Check the vJoy version shown in Configure vJoy and under Settings, Apps, and compare it with the build you intended to install.
- If you are on 2.1.9.1 and need FFB, plan a clean swap, not an overlay: uninstall fully, reboot, remove leftover driver-store entries if needed via the documented pnputil procedure, then install njz3 2.2.1.1 or BrunnerInnovation 2.2.2.0 alone. Get the verified files, sizes and hashes from our download page.
- After the swap, confirm the device appears in joy.cpl and a feeder moves the axes before testing FFB. FFB testing on a device that is not otherwise working proves nothing.
Check 2: enable FFB in Configure vJoy
Open Configure vJoy (vJoyConf), select the device you actually use, and check its force-feedback setting. FFB must be enabled in the vJoy configuration for the device; a device configured without FFB will handle axes and buttons normally while force effects go nowhere, which matches the classic symptom of ‘everything works except feedback’. Apply the configuration change, let vJoy apply it, and reboot if the change does not take effect immediately. If you run several virtual devices, repeat the check per device: enabling FFB on device 1 does nothing for the device your game and feeder actually use, which might be device 2.
Check 3: the feeder must send FFB
vJoy cannot invent force effects. The data flow matters: the game generates effects, and the feeder application is the component connected to vJoy through vJoyInterface.dll. If your feeder does not implement or forward force-feedback effects, the virtual device receives nothing to present, even with an FFB build installed and FFB enabled in vJoyConf. Check your feeder’s own documentation and settings for FFB support and enable it there as well. Test deliberately: use a game or test you know produces a strong, unmistakable effect, drive it through the feeder, and confirm normal axis input at the same time, so you know the feeder-to-vJoy path itself is alive while you judge the FFB path.
A compatibility note worth knowing
At least one feeder vendor documents the 2.2.x line as only partially supported. That cuts both ways for FFB troubleshooting. If your feeder behaves badly on 2.2.2.0 — including around effects — trying the njz3 2.2.1.1 FFB build is a reasonable, documented branch to test, since FFB is that fork’s focus. What is not reasonable is stacking builds: uninstall one before installing the other, every time, so the driver and DLL versions stay a matched set and you do not trade an FFB problem for a version-mismatch error.
How to confirm it is fixed
- Configure vJoy shows FFB enabled for the exact device your game uses.
- The installed build is njz3 2.2.1.1 or BrunnerInnovation 2.2.2.0, verified, not assumed.
- Your feeder documents and has enabled FFB forwarding, and normal axes still respond through it.
- A known force effect from the game is now felt through your setup, and still works after a reboot and a fresh feeder start.
Work the three checks in order — build, vJoyConf, feeder — and change one thing at a time. FFB failures feel mysterious only when all three layers are being changed at once; isolated, each layer either passes clearly or points at the next step.
If you run more than one virtual device, test force feedback on one device at a time, with every other device left at its default settings. Multi-device setups are where the njz3 fork focused its force-feedback fixes, and they are also where misdirected testing causes the most confusion: an effect sent to device 2 cannot be felt on device 1, and a game bound to the wrong device number will report no feedback even when the FFB path is healthy. Note which device number your game uses, enable FFB for that device in Configure vJoy, point the feeder at the same number, and only expand to additional devices once the first one responds reliably across a reboot.
Related guides
- Download vJoy — get a verified build with its file size and SHA-256 hash.
- Which vJoy build should you download? — compare the signed 2.2.2.0 build, the njz3 force-feedback fork and the original 2.1.9.1.
- Uninstall vJoy completely — the full clean-removal procedure, including the driver store.
- Fix: driver version 219 does not match DLL version 218
- Game does not detect vJoy? Detection fixes that work
vJoy is an unofficially documented tool on this site. vJoy itself was created by Shaul Eizikovich, with later signed forks by other maintainers. This site is not the official vJoy project site.
