Coder Social home page Coder Social logo

geeooff / forza-data-web Goto Github PK

View Code? Open in Web Editor NEW
21.0 4.0 10.0 856 KB

Forza Motorsport / Forza Horizon Data-Out receiver web application

License: Apache License 2.0

C# 83.81% HTML 14.95% CSS 0.98% JavaScript 0.26%
dotnet-core asp-net-core csharp console-app web-app game

forza-data-web's Introduction

Forza Data (Web)

Forza Motorsport and Forza Horizon real time telemetry receiver programs, with some utility tools.

Based on Turn10 official documentation: https://support.forzamotorsport.net/hc/en-us/articles/21742934024211-Forza-Motorsport-Data-Out-Documentation

Supported features

Only a console program is available at this moment. It displays live data at 60 Hz.

image

Data can be recorded using a sample recorder program, and will be replayable at a later date.

Web UI will be supported later, when core functionalities are stable. It should leverage WebSockets, most probably from SignalR, to receive live or previously-recorded data at 60 Hz.

Protocol compatibility

Sled vs Car Dash

Sled data is for SimRacing motion platforms, so it contains motion values and a few other ones.

Car Dash extends Sled data with car-dashboard related metrics, eg. speed, power, torque, gear, lap times, etc.

To see all available data fields, please have a look on the data structure files:

Game Support

Game Sled Car Dash Horizon extras Motorsport extras
Forza Motorsport 7 Yes Yes N/A N/A1
Forza Horizon 4 Yes2 Yes Partial3 N/A
Forza Horizon 5 Yes2 Yes Partial3 N/A
Forza Motorsport (2023) Yes Yes N/A Yes4

How to run

Supported operating systems are the same as .NET 8 compatibility : Windows, Linux and macOS.

Prebuilt executables are not yet available in GitHub releases, but it's really easy to build the source code yourself.

Prerequisites

  1. Git to get the source code
  2. .NET 8.0 SDK to build the source code

How to get source code

git clone https://github.com/geeooff/forza-data-web.git
cd forza-data-web

How to enable Data-Out feature in the game

Note for Windows as both game and receiving app: Only Forza Motorsport (2023) allows to send data to 127.0.0.1. For earlier games you will need a separate compute to receive the data.

Start the game on your Windows computer or your Xbox. Go to game options and look for Data Out options :

  1. Data Out IP Address : enter the IP Address of the computer that will run the console program
  2. Data Out IP Port : enter the network port you want to listen on this computer (1024 to 65535)
  3. Data Out Packet Format : if available, choose Car Dash (recommended) or Sled
  4. Data Out : set to ON

How to run the console program

cd Console
dotnet run --server <serverIpAddress> --port <port>

Arguments

  • -s or --server : the IP Address of your Xbox or Computer that runs the game
  • -p or --port : the network port you chose in the game

Example

For example, if your Xbox or Windows Game Computer has 192.168.0.100 IP Address, and you chose 7777 network port to communicate:

dotnet run --server 192.168.0.100 --port 7777

The console will show RACE or PAUSE in the top left corner if race is on or not.

Note : To quit the program just hit CTRL+C or CTRL+Break.

How to record a sample

cd SampleRecorder
dotnet run --server <serverIpAddress> --port <port> --output <file>

Arguments

  • -s or --server : the IP Address of your Xbox or Computer that runs the game
  • -p or --port : the network port you chose in-game
  • -o or --output : the output file to record to

Example

dotnet run --server 192.168.0.100 --port 7777 --output sample.bin

Note : If you want to quit the recorder program, just hit CTRL+C or CTRL+Break. The output file will be deleted if no data is received.

Footnotes

  1. Forza Motorsport extra data was introduced in 2023 edition, FM7 doesn't emit such data

  2. Forza Horizon enforces Car Dash data type 2

  3. Forza Horizon extra data is not documented. Only the car category (from community assumptions) is decoded. Thanks to them ! 2

  4. Forza Motorsport (2023) extra data exposes tire wear and track ID

forza-data-web's People

Contributors

geeooff avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.