A lightweight bridge that converts MOZA Racing wheel and pedal inputs into virtual joystick signals (via vJoy) — enabling full controller compatibility even in games without native MOZA support.
Moza2Joystick lets you use your MOZA hardware in any game that supports standard game controllers.
It reads real-time input from your devices using either:
All input is then forwarded to a vJoy virtual controller, so your system sees it as a regular joystick or gamepad.
Dual input backends
- SDK mode: Uses the official MOZA SDK (
mozaAPI) - HID mode: Uses raw HID data via
hidapi
vJoy output
- Emulates a fully functional joystick device
- Compatible with any title that supports DirectInput or XInput
Live input forwarding
- Wheel rotation, pedals, and buttons are mapped 1:1 to the vJoy device
Configurable via config
- Switch between SDK and HID readers seamlessly
- Change button mappings
Moza2Joystick/
├── src/ # Core source code
├── include/ # Header files
├── examples/ # Sample setups or test utilities
├── docs/ # Documentation and protocol references
├── CMakeLists.txt # Build system
├── config.json # Configuration file
└── README.md
- Connect your base to the computer and the remaining devices such as pedals and handbrake to the base.
- Launch Moza2Joystick — it will automatically detect connected Moza hardware.
- starts Moza Pit House automatically if set to Moza SDK in config
- The program updates the vJoy controller with values from you hardware.
- Start your game and select the vJoy controller as input.
- if you can't change the mappings in-game just remap the controls in the config-file
- Your hardware needs to be calibrated using MOZA Pit House
- The shifter won't work (ToDo: I don't own one so i haven't implemented any logic yet)
- The handbrake might not be working as expected due to me not owning one (ToDo: make a small python-script to capture input from someone with a handbrake)
- Make sure to set
Stick ModetoButtonin Moza Pit House (ToDo: or just enable automatic switch in the config-file)Joysticks in D-Pad-Mode don't get exposed in the SDK
- Set
Dual Clutch Paddle Modeeither toAxis-CombineorAxis-Split(ToDo: or just enable automatic selection in the config-file)Axis-Combinedoes not enable buttons 15 & 16 (shifter buttons),Axis-Splitdoes.
See the License file for details
(Open-source under a permissive license.)
- hidapi developers — for the cross-platform HID access library
- Moza Racing — for their SDK
- vJoy Project — for the virtual joystick driver