A Python application that reads real-time telemetry data from Forza Horizon 5 and displays it in a beautiful web dashboard. Track your speed, vehicle information, and engine performance in real-time while driving!
- Complete Vehicle Database: Displays exact vehicle names for 375+ cars with year, make, and model
- Real-time Speed Display: MPH and KPH shown in large, easy-to-read format
- Engine Performance Metrics: Live RPM, gear, horsepower, and torque readings
- Customizable Styling: External CSS file with multiple preset themes
- Background Images: Custom background image support with gradient overlay
- Modern Web Dashboard: Clean, responsive interface that updates smoothly
- Responsive Design: Works on desktop, tablet, and mobile devices
- Python 3.6 or higher
- Forza Horizon 5 game
- Windows PC (same computer as the game)
- Clone or download this repository
- Install dependencies:
pip install -r requirements.txt
- Launch Forza Horizon 5
- Go to Settings → HUD and Gameplay
- Find the Data Out section and configure:
- Data Out:
ON - Data Out IP Address:
127.0.0.1 - Data Out IP Port:
9999 - Data Out Packet Format:
Car Dash
- Data Out:
python forza_web_telemetry.pyThen open your browser to: http://localhost:5000
- Start the web application (
python forza_web_telemetry.py) - Open your browser to http://localhost:5000
- Launch Forza Horizon 5 and ensure Data Out is configured
- Start driving - telemetry data will appear automatically
- Press
Ctrl+Cin the terminal to stop the application
The web interface displays data in organized cards:
- Speed (2/3 width): Large, easy-to-read MPH and KPH displays
- Vehicle Information (1/3 width): Car brand, model, class, and performance index
- Engine & Performance: Live RPM gauge, current gear, horsepower, and torque
The dashboard is fully customizable through the external CSS file:
- Custom Background Image: Place your image in
static/images/image.png - Color Schemes: Edit
static/css/dashboard.cssor seeSTYLING_GUIDE.mdfor preset themes - Layout Adjustments: Modify card spacing, sizes, and arrangement in the CSS file
See STYLING_GUIDE.md for detailed customization examples and preset color themes.
The application includes a comprehensive database of 375+ vehicles from Forza Horizon 5, displaying:
- Full vehicle name (Year, Make, Model)
- Examples: "Ferrari 250 GTO 1962", "Nissan Skyline GT-R V-Spec 1997", "Bugatti Chiron 2018"
- Coverage includes base game vehicles and all DLC/expansion content through 2021
- Automatically displays the correct vehicle name based on telemetry data
The dashboard recognizes all Forza Horizon 5 vehicle classes:
- Modern/Retro Supercars, Sports Cars, Muscle, Hot Hatch, Saloons
- Classic Racers, Muscle, Sports Cars, Rally
- Super GT, Extreme Track Toys, GT Cars
- Offroad, Cross Country, Trucks, Buggies, Rally Monsters
- Unlimited Offroad, Unlimited Buggies
- And more...
- Verify Forza Horizon 5 Data Out settings are correct (Settings → HUD and Gameplay → Data Out)
- Ensure both the game and application are running on the same computer
- Check that port 9999 is not blocked by Windows Firewall
- Make sure you're actively driving in the game (telemetry only transmits while driving)
- Check that the connection indicator at the top shows "Connected"
- Some newer DLC vehicles may not be in the database yet
- Check console output for the car ordinal ID and report it for database updates
- The database currently covers 375+ vehicles from base game through 2021 DLC
- If the page shows "Disconnected", ensure
forza_web_telemetry.pyis running - Try refreshing the browser page
- Check that no other application is using port 5000
- Works best with modern browsers (Chrome, Firefox, Edge)
- Place your image at
static/images/image.png - Supported formats: PNG, JPG, JPEG
- Recommended resolution: 1920x1080 or higher
- File size should be under 5MB for best performance
- All styles are in
static/css/dashboard.css - After editing CSS, do a hard refresh in browser (Ctrl+F5)
- See
STYLING_GUIDE.mdfor examples and preset themes
- Protocol: UDP on localhost port 9999
- Packet Size: 323 bytes (Forza Horizon 5 "Car Dash" format)
- Update Rate: ~60 packets per second from game
- Web Display Rate: 10 Hz (every 100ms) for smooth updates
- Data Format: Little-endian binary parsing using Python struct module
- Web Server: Flask on port 5000
- Threading: Background UDP receiver with thread-safe data sharing
- Vehicle Database: 375+ entries mapping car ordinal IDs to full vehicle names
The following telemetry fields are confirmed to work reliably:
- Speed (bytes 256-260): Velocity in meters per second
- RPM (bytes 16-20, 8-12): Current and maximum engine RPM
- Gear (byte 319): Current transmission gear
- Power (bytes 268-272): Engine horsepower
- Torque (bytes 272-276): Engine torque in lb-ft
- Car Ordinal (bytes 212-216): Unique vehicle identifier
- Car Class (byte 220): Vehicle performance class
- Performance Index (bytes 220-224): PI rating
- Race position, lap times, and track ID are unreliable in Forza Horizon 5 (removed from dashboard)
- Some telemetry fields may be game-mode dependent
- Requires active driving for data transmission
- Only works on the same computer as the game
- Newer DLC vehicles may need database updates
ProjectHowFastFH/
├── forza_web_telemetry.py # Main Flask web application
├── car_database.py # Vehicle database (375+ cars)
├── templates/
│ └── dashboard.html # Dashboard HTML template
├── static/
│ ├── css/
│ │ └── dashboard.css # External stylesheet
│ └── images/
│ ├── image.png # Background image (user-provided)
│ └── README.md # Image setup instructions
├── STYLING_GUIDE.md # CSS customization guide
├── requirements.txt # Python dependencies
└── README.md # This file
This project is based on community reverse-engineering efforts. Contributions are welcome:
- Vehicle Database Updates: If you find missing vehicles, provide the car ordinal ID and vehicle name
- Telemetry Field Discovery: Share any new working telemetry byte offsets
- Styling Themes: Submit new CSS themes for the dashboard
- Bug Fixes: Report issues or submit fixes for parsing errors
- Vehicle database compiled from community sources including ForzaMods/FH5-Car-ID-List
- Telemetry packet format based on community reverse-engineering
- Built with Python, Flask, and modern web technologies
This application reads telemetry data broadcast by Forza Horizon 5. It does not modify the game or interact with it in any way beyond receiving the UDP data stream that the game voluntarily transmits when Data Out is enabled.