vJoy for DCS World: Merge Stick, Throttle and Pedals into One Device
DCS World rewards precise, layered controls, but many cockpits are built from separate USB devices: one stick, one throttle, a set of rudder pedals, and perhaps a button box. Each device arrives in Windows as its own controller, with its own axis order and button numbers. vJoy helps by giving DCS a single, tidy virtual joystick to read. A feeder application reads your real hardware, applies curves and logic, and writes the combined result to a vJoy device. DCS then sees one predictable device instead of a shifting collection of separate ones.
The most common reason to do this in DCS is to merge controls. You can combine a stick for pitch and roll, a throttle for thrust, and pedals for yaw into one virtual device, then bind that device once in DCS. Joystick Gremlin is the feeder most readers use for this job because it was built around vJoy and handles merging, response curves, button modes and macros in one place. vJoy itself does not merge anything on its own. It is a DirectInput virtual joystick driver, and a feeder application must write data to it through the vJoy interface. Understanding that split prevents most setup mistakes.
What you need
- vJoy installed from our download page — for Windows 10 and Windows 11, start with the BrunnerInnovation 2.2.2.0 build, the newest release and the only one that explicitly claims Windows 10 and Windows 11 support. If a feeder misbehaves on the 2.2.x line, the original 2.1.9.1 build is the documented compatibility fallback.
- Joystick Gremlin installed and working — see our Joystick Gremlin guide for installation, profiles and curve basics before you start binding in DCS.
- Your real stick, throttle and pedals connected directly, tested in Windows first, and recognised without errors.
- Time to bind in small stages. Merge and test one control group at a time instead of mapping the whole cockpit in a single sitting.
Setup, step by step
- Install vJoy, reboot if prompted, then open Configure vJoy (vJoyConf) and create one vJoy device with enough axes for your plan. A typical merged DCS device needs X and Y for the stick, Z or a slider for the throttle, and Rz for rudder — well inside the documented limit of up to 8 axes, up to 128 buttons and up to 4 POV hats per device.
- Open Windows Game Controllers (joy.cpl) and confirm the vJoy device appears and its axes move when a feeder is running. If nothing moves yet, that is expected: no feeder means no data.
- In Joystick Gremlin, add your physical stick and assign its pitch and roll to the vJoy X and Y axes. Activate the profile and move the stick while watching the vJoy monitor or joy.cpl to prove the link works.
- Add the throttle next, mapped to a free vJoy axis, then add the pedals to another free axis. Keep a written note of which physical control owns which virtual axis. That note saves hours later.
- In Gremlin, apply a gentle response curve to pitch and roll first. Small aircraft and helicopters in DCS benefit from softer centres, but copy no one else’s curve blindly — fly, adjust, and save versions of the profile as you go.
- Launch DCS, open Settings, then Controls, and select the vJoy device column. Clear any old bindings for the merged controls on the individual physical devices where DCS would otherwise read both the real and virtual input at once.
- Bind pitch, roll, thrust and rudder from the vJoy device, then use Axis Tune in DCS sparingly. If you already shaped curves in Gremlin, leave the DCS curve mostly flat to avoid stacking two curves on the same axis.
- Test in a free-flight mission before adding weapons, radios or complex macros. Check full travel in every direction, confirm the throttle reaches both stops, and confirm the rudder centres cleanly.
Binding tips that save rework
Bind the virtual device, not a mixture of virtual and physical devices, for any control you merged. Double input is the classic DCS symptom: the aircraft rolls from the stick and also receives a second, slightly different signal from the same stick read directly. If a control feels doubled or jittery around the centre, check for duplicate bindings first. Keep button numbers written down as well. When Gremlin maps physical buttons to vJoy buttons, DCS only sees the virtual numbers, so a one-page map of virtual button to function makes later edits calm instead of confusing.
Use modes in Gremlin carefully. A mode switch that changes what a button does is powerful in DCS, where a single stick may need air-to-air, air-to-ground and landing layers. Start with one mode, fly it for a week, and only add a second mode when the first is muscle memory. More layers than you can remember under pressure do not help.
Limitations and honest notes
vJoy is DirectInput only. It does not emulate XInput, so this approach is for DCS reading a DirectInput virtual joystick, which is exactly the path described here. Force feedback is a separate story: the njz3 2.2.1.1 fork exists specifically as a signed force-feedback fork, but most merged-cockpit readers do not need it, and changing builds mid-setup adds variables. Stay on one build until the basic merge works. Finally, vJoy cannot fix worn potentiometers, loose USB hubs or a throttle with a noisy axis. If the raw physical signal jitters in joy.cpl with no feeder running, the hardware is the problem.
Hardware and game links for this setup
If the merged setup exposes the next upgrade, readers usually look at a Stream Deck as a labelled button box — check current price for radios and cockpit functions, and dedicated rudder pedals — check current price when a twist axis feels too vague for helicopters and warbirds.
Affiliate links — we may earn a commission at no cost to you. See our affiliate disclosure.
Next steps: return to the vJoy setup guides by game hub for other games, keep the Joystick Gremlin guide open while you tune curves, and compare this approach with our vJoy for IL-2 Sturmovik setup, which solves a similar merging problem for a different device limit.
