Microsoft Flight Simulator 7 min read

How do I set up and use Joystick Gremlin in MSFS?

Ian Stephens
In short

Set up Joystick Gremlin with MSFS 2020 or 2024: configure vJoy, map axes and buttons, prevent duplicate inputs and fix common problems.

On Windows, install a compatible vJoy driver and Joystick Gremlin, create a Gremlin profile that remaps each physical axis and button to a vJoy output, then bind only those virtual outputs in Microsoft Flight Simulator. Activate the profile before flying and remove duplicate bindings from the original controllers.

This works with the PC versions of Microsoft Flight Simulator 2020 and 2024. Console releases cannot run Joystick Gremlin or load the required vJoy driver. Gremlin does not modify MSFS; it translates physical controller inputs into a virtual joystick that the simulator treats as another device.

When should you use Joystick Gremlin with MSFS?

Use Joystick Gremlin when the simulator’s native control profiles cannot produce the device layout or input behaviour you need.

Control methodChoose it whenMain consideration
Native MSFS controlsYou have a straightforward joystick, yoke or HOTAS setupSimpler and does not require software running in the background
Joystick Gremlin and vJoyYou need to combine devices, create modes, remap axes, generate virtual buttons or apply advanced curvesThe Gremlin profile must be active whenever you fly

A mistake we see constantly is applying inversion, dead zones or aggressive response curves in both Gremlin and MSFS. Process each characteristic in one place. Our guidance on choosing dead zones and response curves for MSFS controls explains the simulator-side settings.

How to configure Joystick Gremlin and vJoy

The dependable signal path is physical controller → Joystick Gremlin → vJoy → MSFS. Build and test each part in that order.

  1. Install vJoy first. Use a maintained, signed build compatible with your Windows installation, then restart Windows if requested. Do not disable Windows security features merely to force an obsolete driver to load.
  2. Configure one virtual device. In the vJoy configuration utility, enable enough axes, buttons and POV hats for the controls you intend to pass through Gremlin. One vJoy device is sufficient for most cockpits; create additional devices only when you have exhausted its available inputs or need a deliberately separated layout.
  3. Check Windows detection. Run joy.cpl from the Windows Run box. Both the physical controllers and the vJoy device should appear. The virtual device will remain motionless until Gremlin sends data to it.
  4. Create a Gremlin profile. Give it a clear name for the aircraft or hardware layout. Select each physical axis, button or hat and add a Remap action pointing to the intended vJoy device and output.
  5. Keep outputs unique. Do not send two ordinary physical axes to the same vJoy axis unless you are intentionally merging them. Otherwise, whichever device moved last can take control and cause sudden jumps.
  6. Add processing only where needed. Curves, dead zones, axis-to-button actions and macros should be added before testing the final vJoy output. Avoid processing the same axis again in MSFS.
  7. Check the active Gremlin mode. Mappings created in one mode do not necessarily operate in another unless they are inherited. An apparently complete but silent profile is often running in the wrong mode.
  8. Save and activate the profile. Gremlin must be in its active state, not merely open. Move every axis and press every button while watching Gremlin’s input display and the vJoy device in joy.cpl.
  9. Start MSFS after activation. The simulator often handles virtual devices most predictably when vJoy and the Gremlin profile are already working before MSFS reaches its control settings.

The vJoy axis names are arbitrary; consistency matters more than the particular axis chosen. A typical layout might be:

Physical controlExample vJoy outputMSFS assignment
Stick or yoke rollX AxisAilerons Axis
Stick or yoke pitchY AxisElevator Axis
Twist grip or pedalsRz AxisRudder Axis
Throttle leverSliderThrottle Axis

How do I bind the vJoy device in Microsoft Flight Simulator?

Select the vJoy device in MSFS, create a custom control preset for it and assign its virtual outputs to the appropriate axis and button commands.

  1. Open the control settings. The layout and wording differ between MSFS 2020 and MSFS 2024, but both versions let you select an individual device and create a custom preset.
  2. Select vJoy. Search for each input while the Gremlin profile is active. Moving the physical control should move the corresponding virtual input.
  3. Use axis commands. Assign analogue controls to commands such as Ailerons Axis, Elevator Axis, Rudder Axis and Throttle Axis, or their version-specific equivalents. Do not use left/right or increase/decrease commands for an analogue axis.
  4. Assign virtual buttons and hats. Check that each Gremlin button remap produces one clean press. For keyboard macros, include both press and release events so a command cannot remain held.
  5. Clear competing assignments. Inspect every original joystick, throttle and pedal device in MSFS and remove any binding that duplicates its vJoy output. Default presets can contain assignments you did not add yourself.
  6. Test the whole range. Confirm that controls centre correctly, reach both limits and move in the proper direction before loading a flight.

If the simulator-side workflow is unfamiliar, our guide to assigning axes, buttons and custom joystick profiles in MSFS 2020 and 2024 covers that part in more detail. Separate stick and throttle owners should also follow the HOTAS profile and duplicate-binding checks.

How should twin throttles and reversers be mapped?

Give each independently operated throttle lever its own vJoy axis and bind those axes to the corresponding engine throttle commands in MSFS. Use a single virtual axis only when both engines should always move together.

For a reversed throttle, invert the axis in either Gremlin or MSFS, not both. Reverser buttons or detents can be converted into virtual buttons, but an aircraft add-on may require its own calibration procedure after the basic vJoy range is working.

Should I hide the physical controllers from MSFS?

Do not hide them initially; clearing their MSFS assignments is simpler and easier to troubleshoot. The physical devices can remain visible as long as only vJoy is bound to the affected flight controls.

If MSFS or another component continues to read both signals, a device-hiding utility such as HidHide can expose the physical controllers to Gremlin while hiding them from the simulator. Allow Joystick Gremlin to see the devices, hide only the physical controllers and leave vJoy visible. Enable hiding one device at a time; if Gremlin loses the controller too, its application exception is not configured correctly.

Why is Joystick Gremlin not working in MSFS?

Most failures come from an inactive profile, the wrong Gremlin mode, a blocked vJoy driver or duplicate MSFS assignments.

SymptomLikely cause and fix
vJoy is missing from joy.cplThe driver did not install or Windows blocked it. Use a compatible signed build, inspect the Windows driver status and restart the PC.
vJoy appears but its axes never moveActivate the Gremlin profile, check its active mode and confirm that each Remap action points to the correct vJoy device and output.
vJoy works in Windows but not in MSFSStart Gremlin before MSFS, restart the simulator and verify that the correct vJoy control preset is selected.
Controls twitch, double or fight each otherBoth the physical device and vJoy are assigned to the same command. Clear the physical binding and disable any additional remapping layer.
An axis behaves like an on/off switchIt is assigned to a digital direction or increase/decrease command. Bind it to the corresponding Axis command.
An axis moves backwardsInvert it in one layer only. Check Gremlin first, then the MSFS reverse-axis option.
The device vanished after enabling HidHideGremlin is not exempted from device hiding, or vJoy was hidden by mistake. Restore visibility before changing any mappings.
Buttons work but keyboard macros do notUse direct vJoy button assignments where possible. Also keep Gremlin and MSFS at the same Windows privilege level and verify that the macro releases each key.

Does Joystick Gremlin need to run every time?

Yes. The vJoy driver creates the virtual controller, but Joystick Gremlin supplies its live axis and button values. Without an active Gremlin profile, the vJoy device remains present but produces no useful input.

Save the profile, start Gremlin before MSFS and confirm activation before entering a flight. If you automate Gremlin at Windows sign-in, still check the selected profile and mode—especially after moving USB devices, reconnecting identical controllers or switching aircraft-specific layouts.

AI Assistant New

Still stuck? Ask Fly Away

Ask Fly Away is our AI flight-sim assistant. Ask your exact question and get a direct, step-by-step answer in seconds — free to try.

Ask Fly Away Free preview · unlimited for PRO members