# Forza × MOZA Bridge

An open-source UDP bridge connecting Forza Horizon 6 telemetry to MOZA Pit House for RPM LEDs and dashboard feedback.

By Satyajit Pradhan
Published: 2026-09-14
Updated: 2026-09-16
Canonical: https://satyajiit.dev/lab/forza-moza/

![Forza × MOZA Bridge cover](https://satyajiit.dev/images/cover-forza-v3-960.webp)

I wanted the RPM lights and dashboard on my MOZA setup to respond while playing Forza Horizon 6. The game could send telemetry, but that alone did not make Pit House listen. The Forza × MOZA Bridge grew out of following that missing connection.

## The listener was the missing piece

At the time of the experiment, Pit House recognised the Forza Horizon 5 process and opened its UDP listener on port 30055 for it. Horizon 6 was sending the same 324-byte CarDash packet format.

The repository includes a small compatibility helper that gets Pit House to open that listener. The bridge then receives the game’s output on port 4009 and forwards it to 127.0.0.1:30055. Normal 324-byte packets pass through unchanged.

## A bridge small enough to inspect

The forwarding script uses Python’s standard library. Diagnostic counters distinguish received, transmitted, passed-through, truncated, and dropped packets. They make it possible to ask a specific question: did the game emit data, did the bridge receive it, and did a packet leave for Pit House?

The dial above shows how RPM information reaches the wheel; it is not connected to my racing setup.

## Follow the packets

The [MIT-licensed repository](https://github.com/satyajiit/forza-horizon-6-moza-bridge) contains the implementation and Windows setup instructions. I enjoy racing games, but this project came from a second interest: understanding why two pieces of equipment that should work together do not yet connect.

## Sources & further reading

- [Forza Horizon 6 MOZA bridge source](https://github.com/satyajiit/forza-horizon-6-moza-bridge)
