Game Does Not Detect vJoy? Detection Fixes That Work

vJoy is installed, joy.cpl shows the device, your feeder moves the axes — and your game still does not detect vJoy at all. This is the most misunderstood stage of a vJoy setup, because three different programs are involved and the failure can sit in any of them. This guide separates the causes that are actually fixable in vJoy and your feeder from the one honest limit no setting can remove.

Start by proving where the chain breaks

The chain is: physical input, feeder application, vJoy driver and virtual device, then the game. Before changing game settings, prove the first three links in joy.cpl: open the vJoy Device properties, run your feeder, and watch the axes and buttons respond. If they do not respond there, the game is innocent — fix the feeder or driver first using our joy.cpl and driver-not-enabled guides. If they do respond in joy.cpl but the game shows nothing, the break is between the virtual device and the game, and the rest of this guide applies.

Fix 1: device order and which controller the game picked

Many games bind to the first controller they find, or keep a binding to a physical stick you no longer use. With several controllers connected, the game may be listening to a different device entirely while vJoy works perfectly. Disconnect or disable competing controllers temporarily, restart the game with only the vJoy Device active, and check its control settings again. Inside the game, look for a device selection or controller list rather than assuming the axis assignment screen shows every device. Reassign axes deliberately: move one vJoy axis while the game is waiting for input, so the game learns the correct device instead of guessing.

Fix 2: HidHide hiding the wrong device

HidHide is widely used alongside vJoy, especially in simulator community setups, to hide a physical device from games so only the virtual device is visible. It cuts both ways. If HidHide is configured to hide devices from applications, and your game is not on the allow list — or the vJoy Device itself got hidden — the game legitimately cannot see vJoy. Open the HidHide configuration, check which devices are hidden and which applications are allowed to see hidden devices, and make sure your game can see the vJoy Device. The classic symptom is: everything works in joy.cpl, one specific game sees nothing, and HidHide was set up months ago for a different title.

Fix 3: the feeder is not running, or not running in time

vJoy alone does nothing. Without a feeder application actively writing to the virtual device, the device exists but produces no changing input, and some games only register a controller once they see activity, or scan for devices once at launch. Start your feeder before the game, confirm in joy.cpl that it is driving the axes, and only then launch the game. If you start the feeder after the game, restart the game so it rescans. Also check that the feeder is driving the same vJoy device number your axis assignments expect — with up to 16 virtual devices available, a feeder writing to device 2 while you bind device 1 looks exactly like non-detection.

The honest limit: DirectInput versus XInput

vJoy is a DirectInput virtual joystick driver. It does not emulate XInput, the interface behind Xbox-style controllers. Games that accept DirectInput devices can use vJoy, with the fixes above. Some games only accept XInput and will never list a DirectInput device, no matter how healthy your install is. That is not a fault in your setup and no vJoy setting changes it. The documented workaround is a chain: feeder to vJoy, then an XInput emulation layer such as x360ce on top. Our comparison of vJoy versus ViGEm and XOutput — which virtual controller do you need? — explains where each layer belongs, including ViGEmBus for gamepad-style output. Read that before stacking tools at random: adding an emulation layer you do not need creates new failure points, and using it when you do need it is the difference between a game seeing nothing and seeing a controller.

How to confirm it is fixed

  1. The game lists or responds to the vJoy Device in its control settings.
  2. Assigning an axis by moving your feeder input binds the correct vJoy axis, not a physical controller.
  3. In gameplay or a test screen, every bound axis and button responds, including after alt-tabbing away and back.
  4. The detection survives restarting the game with your normal startup order: feeder first, game second.

If joy.cpl responds, HidHide is clean, device order is controlled, the feeder runs first, and the game still ignores the device, you have strong evidence the game is XInput-only. At that point the emulation chain is not a desperate hack — it is the correct architecture for that title.

Related guides

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.

Similar Posts