Data Out Telemetry Variables and Structure

I’m using the Data Out feature to send telemetry data to a UDP server but I can’t find a list of what data is actually being sent. Does anyone know if there’s a list anywhere of what variables are being sent and in what order?

2 Likes

this might help Forza-data-tools/FH4_packetformat.dat at master · richstokes/Forza-data-tools · GitHub

hzn HorizonPlaceholder; // unknown FH4 values is 12 bytes in FH5

.int32le(‘HorizonPlaceholder1’) // 11
.uint32le(‘HorizonPlaceholder2’) // 0
.uint32le(‘HorizonPlaceholder3’) // 0

IMPORTANT: the mentioned format is out of date and does NOT match the Forza Horizon 5 format.

This is my findings about the current format, with commentary (not 100% complete)

Posted to pastebin, because this forum does not support identation (sooo sad)

after messing around with the bytes for a bit reading the data off an app, i figured out the entire structure. it’s now 323 bytes long in FH5, compared to the 320, with the 3 new categories you guys already found (carCategory, and unknown1 & 2). here is the github repo for my java wrapper. you can use this in android and make a sim dash with it. everything is documented as well :slight_smile: enjoy everyone!

had quick flyover and looks wrong to me…

https://github.com/Ldalvik/ForzaTelemetryWrapper/blob/main/ForzaApi.java#L352

here u are reading 2 bytes and returning a byte

should be something like this in java

https://github.com/Ldalvik/ForzaTelemetryWrapper/blob/main/ForzaApi.java#L385

thats not an short its 2x int8 (or byte in java)
should be

Edit:
I’m not an JavaDev but here is my version

after looking through it there’s quite a few things i messed up actually haha, everything works as intended but i never ran tests to make sure ALL values logged correctly… which is why lapNumber and NormalizedDrivingLine appeared to be working, when they weren’t lol. i have now updated the code and put a thank you above each change :+1: feel free to reach out if you’d like to help in Forza Open Tool projects :slight_smile:

https://github.com/Ldalvik/ForzaTelemetryWrapper/blob/main/ForzaApi.java#L352

for what the +1 ??? thats a new bug now… (its normal to show lap 0 behind startline and in sprints)
and all the hardcoded start/endbytes idk… take a look at my gist ^ feel free to copy getFromBuffer or whole thing

Your code is creating new buffer for each value and is doing the extra array.copy. Maybe ok for 1 value but what happens if the “user” reads more.
And the buffer knows the position so no need for hardcoded values

so i just tried to run your code and it wouldn’t compile, it had some errors. are you sure this works?

It runs here. Fixed the getIsRaceOn() call on gh
But yeah im not the java dev so no idea whats needed :smiley: i can upload the vscode project and it runs fine clicking Run

here is the whole dir load in vscode and add java extension

btw all u need is the class Simple ForzaTelemetry in Java · GitHub
copy to your project

yea that’s my fault, my IDE wasn’t working and was throwing errors for casting to the T class for some reason. although, our data structure is very different so i’m gonna have to run some tests

its same only easier buffer handling/parsing and some checks… all the getters and toString() was then autogenerated by vscode

yea i was missing the fact that i had the unknown bytes as two floats instead of all bytes like you. thanks for the help!

btw your discord username (think it was username) shows 0 users… here is mine PinkiePieStyle#8298 but yeah time related how much i can help with your “Forza Open Tool projects”

well, as i made this to be a wrapper for testing, i would hate to just completely replace my code with yours and call it a day. like i said, join the discord and you would be a great help to us over at ForzaOpenTunes :slight_smile:

would you dm me on discord? i would love for you be apart of the community working on projects retaining to this! i know java, just not good enough with bytes and stuff as you can see here lol.
root.#3543

It uses the same format as Forza Horizon 4
Only read the first post, the rest does not contain any more information.

Important: they use LittleEndian format

https://forums.forza.net/turn10_postst128499_Forza-Motorsport-7--Data-Out--feature-details.aspx

Im currently working on some displaying of the data, especially to make tuning easier. Once i got more information about the data i will post it here.

duplicate

First 4bytes of hznUnk is int

One of the other is changing if u hit something but no idea i’m not using it

1 Like

Do we still only have the unreliable “redline” for RPM? I did some external RPM meters but the main issue is that the redline for most cars is definitely not the point where you would want to shift, this is sometimes um to 2000 rpm later.

We ended up figuring this out a while ago, I’ve been updating an app the past year on google play, and we use it over at r/ForzaOpenTunes to fine tune cars. (now rebranding OPTN.club, we have a lot of Forza related tools so we have OPTN.tools as well. Check out our tune formatting website! OPTN.club) Here’s the app on google play, it’ll be updated this week with the new branding and new stuff/calculations. Forza Telemetry

1 Like