Forza Motorsport 7 'Data Out' feature details

Sorry, I just saw your post but the folks on the forum seem to have replied and their answers line up with how I did it. No magic :slight_smile: Let me know if you have other questions.

I’ve been tinkering a bit with the data stream and I’m still wondering what the “EngineMaxRpm” really stands for?
For me the obvious thing would be the rpm of rev limiter, but it doesn’t seem to be so.

Anyone have any information about the value?

If vehicle speed relative to world is enough, you could use f32 VelocityZ. Looks like the unit is m/s, so you could multiply it by 3.6 to get km/h.

Hello There,

@MigiBacon, YarsRvenge: thank you for replies - It work great !
Now only hoping that Turn Ten, add more telemetric udp data as in Project Cars…

Were there any changes in the August update? I’m thinking that because they updated track boundaries, that they may be working on outputting coordinates.

I didn’t see anything about changes to the data out feature in the release notes. Unfortunately I haven’t had time yet to test if the data capture works with the new version (meaning that there appears to be no changes), but someone else might be able to confirm that.

Dear racers,

i’ve tinkered around with the data out stream and created a JavaFX-based dashboard. It’s of course far from finished, but feel free to improve upon it.
Picture here

What it’s intended for:
I’m usually driving manual (sometimes with clutch) and frequent car changes make it difficult to get those upshifts right. I can either focus on the track or on the rpm-display.
The shift-indicators some cars provide also don’t help much due to them working differently for each car (growing, flashing, blinking…aaargh!)
Also, a far-off goal is to include data history and further telemetry so that the dashboard helps empirically optimize driving (and tuning) through data analysis per car.

What it does:
This simple dashboard shows a singular shift-indicator all the time, no matter which car I’m driving in and how many rpm the engine can do.

  • the shift indicator is customizable by car to limit the range for low-revving cars and increase it for high-revving cars so as not to miss your perfect shift.
  • the shift indicator is based on measured max. rpm. Not the (data-out) max rpm which is the displayed engine limit. The measured rpm are stored per car and by default, the shift indicator maximum is set to 99% of those max measured rpm - that way you don’t hit the limiter.
  • It also shows other information such as current rpm, speed (kph/mph), calculated acceleration and deceleration, and many of the other data-out values.
  • You can name your car (If anyone of you can produce a list of car ordinals (data-out) with corresponding names, I’ll gladly import them)
  • If you figure out a way to loopback the data-out stream, you can also use the “always on top” feature, using the dashboard as an overlay, positioning it over your ingame dashboard (in windowed mode)
  • Listening Port configurable in .properties file - standard port is 1337.
  • Maximizing, Resizing, dragging without the windows bar on top cluttering the info-display.
  • (some) car data stored in .properties file - for each car that you’ve actually driven using the dashboard. so after a while, It could be complete.

What it is not:
The dashboard is just a first draft.
There are sure to be bugs in it (like the ugly drag-resizing).
I intend to include all data-out datapoints in a readable fashion (think telemetry display like the overlay in FM itself) at some point.

Where it is
https://github.com/Weitwalter/ForzaDashboard

enjoy.

br, Daniel

Edit:
Well, being annoyed by remotedesktopping this from my laptop, i’ve created a small data-out relay (meaning that it receives the data-out stream and forwards it to another PC).
A picture of the resulting working dashboard on the FM 7 rig: here - not beautiful but working…

  • You need to set the machine running the relay in FM 7
  • You configure the .properties of the relay to target the PC where you want to use the dash (which in my case is the one running FM7
  • by the way: you can use the relay for your other dashboards as well as this simply forwards the UDP stream.
    https://github.com/Weitwalter/ForzaRelay

Edit 08.09.2018:
Updated the Dashboard. Now all DataOut fields are shown (at least as text) as well as some qol improvements. Still very proof-of-concept-y.

Edit 09.09.2018:
Updated the Dashboard: Now rescaling works more or less as intended (should work for any display >1000x500.)

Disclaimer: I’m using a cabled LAN and am not experiencing any noticable delay. I’ve neither tried the relay on weak hardware, nor over Wifi. However, I don’t expect significant performance degradation due to the packets being very small…

3 Likes

Today, I released a new version, now including all September-patch data out fields as well as some minor fixes.

This should run on anything capable of running java (I’m using JRE 1.8.0). You only need to get the .jar file as well as the .properties files from:
here

Based on the new values from the September patch, I intend to implement enhanced lap information. Think statistics on fuel consumption, prediction for necessary fuel stops, laptime analyis and so on. However, I expect FH4 to prevent me from actually implementing it for a time :wink:

Regards, Daniel

1 Like

GREAT job with this…and, EASY to use. Thanks for sharing. I am not a “coder” (more of a “wanna-be”…lol…), yet, will tinker a little bit with it.

PRKid

p…s It would be great if under the “Information & Settings” tab, one could select Units (English/Metric)!!
.

As promised, I have released a new version, now displaying a first draft of (all) laptimes for each race, including the delta time, fuel consumption and position change per lap.

Regards, Daniel

1 Like

I don’t have much experience with Java, but I’d be more than happy to help setup equations or learn enough of the code to be able to help get this implemented sooner. Since the UDP came out, data logging and tuning is pretty much all I’ve wanted out of it!

Also, love the new version!

1 Like

hi
here a small console project in .net core

Is a console app, show the data in text mode and store in sqlite
tested on W10 and macOs

Added Xamarin.Forms projects
now run on Android, iOS, UWP

1 Like

Major update coming today which adds 30 new data fields that match what we can see on screen in game (I assume that means telemetry)

"Data Out Update
With the September update we’ve released a new update for our Data Out feature, which was first launched in June. As a reminder, Data Out outputs a UDP stream that development-minded Forza players can take advantage of to create companion apps, data logging, dashboards, and more. The June Data Out functionality was designed to support motion sleds; this update nearly 30 new pieces of data, including speed, power, torque – essentially anything the player can see in the Forza 7 HUD.
With this update, the previous data structure in the initial Data Out release is now known as “Sled” in the game menus. The new version (known as V2) features all the same Sled data outputs, as well as the new data outputs. For a look at the new data structure, check out our Data Out post on the Forza Forums."

Hopefully they will tell us what type those fields are so we can rewrite the parsers and unpack them…

Check the original message for this thread. It is updated and includes all the new data fields.

Yay, these new fields are actually useful! One critical missing field that I’m surprised we don’t have: “on track” flag. 1=on track 0 = out of bounds.

It would also be nice if a track/ribbon id was provided.
Maybe a bitmask that contained the current assist settings.

It would also be tremendously nice, if the “remote machine” limitation was removed. I’m working around this by running a VM on my PC to receive the data. At least remove the remote machine limitation on PC. I have no idea why this limitation exists, it really makes no sense. I have an 8 core machine, surely Forza doesn’t need all of them?

Actually, this should be a bit-field that also contained indicators for dirty laps in the current/last/best lap times.

1 = car is currently out of bounds
2 = current lap is dirty
4 = last lap was dirty
8 = best lap was dirty.

Thanks above for info about UWP app loopback. I didn’t know that was a default limitation of UWP apps.

The no localhost is not a game limitation, is a Windows UWP limitation.

Exactly, and a quick google search will explain how to remove that limitation for specific apps. The whole procedure takes around 1 minute of your time.

I was able to get loopback enabled for forza by using this tool:

cloned the repo, build in VS. click the forza checkbox. Now I can send data to my local ip.

1 Like

Can we get a float field containing the distance progress through the current lap. Range 0.0 - 1.0

I don’t know if this belongs in the main post or in a new one, but it would be really useful to compile all the programs that can understand Forza’s data-out structure and what purpose they serve, like digital dash, data logging, motion sled, etc.

Obviously Weitwalter’s dashboard above is one that should work on anything that can run JavaFX, so Windows, Linux, and MacOS. Access that here: GitHub - Weitwalter/ForzaDashboard: Forza Motorsport 7 data-out receiver

Sim-Dashboard also works with Forza, although I can’t find any templates for it yet and there is a $3.49 charge for all the apps features. I believe this one only works on Android and can be found here: SIM Dashboard Android App - SIM Dashboard

What other tools have you guys found?