Jump to content Jump to content

F1 2021 UDP Specification


BarryBL
 Share

Recommended Posts

6 hours ago, Hoo said:

Hi @GambaDoCerrado - please could you confirm what the rules and penalty settings were set to in the multiplayer session? Thanks.

Hi @Hoo, i did more test... in Gran Prix... same result... Rules and Flags->ON, Corner cutting->Regular. I will do more tests in different configs. ->>> I did the same test in Gran prix -> Rules and Flags->ON, Corner cutting->Strict ->>> In game information: 5 warnings(!!!!)- 4 colisions warnings; 1 cut warning. No penalties. ; UDP telemetry information: 1 warning; 0 penalties.  --->> In game information: 2 sec penalties; 7 warnings - 4 colisions warnings; 3 cut warnings(penalty); UDP telemetry information: 3 warnings; 2 sec penalties.

Edited by GambaDoCerrado
Link to comment
Share on other sites

  • Codemasters Staff
On 9/3/2021 at 5:41 PM, andrewb16 said:

Hi - the pitch telemetry data at Eau Rouge/Radillion at SPA is inversed/incorrect. When going up the hill the telemetry data is negative and it should be positive. I've attached a word document which shows the telemetry data from F1 2021 vs Iracing at Eau Rouge. This makes the game unplayable on motion platforms. Having the platform pitch significantly down when it should be up and the screen is showing the car go up causes motion sickness. I have noticed the same inverse relationship after the first turn at Monaco going up the hill. Would assume this happens at other tracks as well but haven't raced others yet. 

F1 Eau Rouge Telemetry Data.docx 168.47 kB · 8 downloads

Hi @andrewb16 - we've used pitch in this format for a long time. The expectation is that any motion platform device using this data understands the orientation that we are using. Given that many other apps may be relying on it being the current way round, we don't want to change this around at this stage. 

Link to comment
Share on other sites

On 9/13/2021 at 11:20 AM, GambaDoCerrado said:

Hi @Hoo, i did more test... in Gran Prix... same result... Rules and Flags->ON, Corner cutting->Regular. I will do more tests in different configs. ->>> I did the same test in Gran prix -> Rules and Flags->ON, Corner cutting->Strict ->>> In game information: 5 warnings(!!!!)- 4 colisions warnings; 1 cut warning. No penalties. ; UDP telemetry information: 1 warning; 0 penalties.  --->> In game information: 2 sec penalties; 7 warnings - 4 colisions warnings; 3 cut warnings(penalty); UDP telemetry information: 3 warnings; 2 sec penalties.

Some news @Hoo? Can someone confirm this bug?

Link to comment
Share on other sites

  • Codemasters Staff

On the issue of vehicle damage, we do carry over some damage parameters from older F1 titles that are no longer supported in the latest game. However, some damage values that should be supported are not being replicated in the UDP data. This one has been sent to the dev team for further investigation.

  • Thanks 1
Link to comment
Share on other sites

Hello, 

There are some wrong TeamId in F2 in the appendix and when chosing your own F1 car. 

Uni Virtuosi '20 has id 80, in the appendix it says 75

Hitech '20 has id 75, in the specification 80

Mp Motorsport '20 has id 77, in the appendix it says 76

Prema '20 has id 78, in the appendis it says 77

BWT '20 has id 76, in the appendix it says 79

Trident '20 has id 79, in the appendix it says 78. 

Also, in time trial, when you chose your personnalised F1 car, the m_myTeam boolean stays on 0 insead of 1, and TeamID is 104, which refers to nothing and is not mentionned in the appendix. 

Hope this help,

Best Regards

Wolfgang


 

Link to comment
Share on other sites

On 9/16/2021 at 9:35 PM, Hosenloser said:

is it possible to get the Driver of the Day via UDP ?
nothing found here or in the Data sheet

since nobody has an answer to this question... here comes the next:
Is it possible to use the transmitted udp data to infer the driver rating?

Link to comment
Share on other sites

6 hours ago, meloncamp said:

Is there a way to map the final classification data back to a driver ID? I'd like to ingest this to automatically drive stats tracking across a league but can't figure out a clean way to identify the appropriate driver outside of something like fastest lap.

The packets are indexed by vehicle index so m_classificationData[i] = m_participants[i]

  • Thanks 1
Link to comment
Share on other sites

Feature request, cc @Hoo: Would it be possible to expose a session's game mode? I.e. my_team / driver_career / time_trial / breaking_point / grand_prix / championship / multiplayer_social / multiplayer_ranked / multiplayer_league / others. 

Besides knowing the game mode itself, this would also help to identify if a car has real-world performance or is an upgraded car. As an example, car performance in my_team or driver_career is different from real-world / non-career car performance. It would be very helpful to know if the car's performance is comparable across sessions (normal / real-world car), or not (like an upgraded career mode car).

I know that we already have a participant flag for MyTeam, but that doesn't help with differentiating e.g. Driver Career vs single Grand Prix cars. 

If anyone is aware of other workarounds to get this data, I'd appreciate any feedback!

Thanks in advance for considering this! 

  • Agree 1
Link to comment
Share on other sites

Does anyone else have issues with the Final Classification packet in multiplayer social sessions (unranked lobbies)? It looks like I'm not receiving the packet after quali or race sessions in multiplayer social play. All other game modes work fine. I couldn't find any obvious issues in our code. Anyone else have the same problem?

Edited by sim913
Clarified game mode
Link to comment
Share on other sites

11 hours ago, sim913 said:

Does anyone else have issues with the Final Classification packet in multiplayer social sessions (unranked lobbies)? It looks like I'm not receiving the packet after quali or race sessions in multiplayer social play. All other game modes work fine. I couldn't find any obvious issues in our code. Anyone else have the same problem?

I also have this problem. Sometimes it works, sometimes it doesn't.

And another problem is that i'm not receiving the LapHistory packets in some multiplayer sessions.

Any news on fixing these bugs?

  • Agree 1
Link to comment
Share on other sites

  • 2 weeks later...
On 9/2/2021 at 6:31 AM, ericgvmaia said:

Another question:

In the CarDamageData, the m_rearWingDamage is ALWAYS zero! The only car that has the rear wing damage registered is the USER car.

It is always zero for every other player.

Also happening with m_floorDamage, m_diffuserDamage, m_sidepodDamage.

And yes, their telemetry is public.

m_frontLeftWingDamage and m_frontRightWingDamage are being registered correctly.

Anybody else noticed it?

Thanks!

I was just reading the topic to find someone with this issue. YES, this is a problem, and i'm really happy to know that it is already under investigation by codemasters. 😄

 

I also want to point out another "issue". I was saving my FinalClassification data with the packet's header sessionUID. This worked fine at the time, but at some point it stopped working. Seems that in one of the released patches they changed the sessionUID of the FinalClassification data from the correct one (sessionUID of the related session), to 0.

I already fixed this in my application, but i think it would be great to have the correct sessionUID info in that packet to better link the data to the related session.

 

One last thing is related to the brake balance info. As i experienced this value seems to have an inchoerent value and never updates even if the player changes its balance during the race. I will do more tests but atm this is what i observed.

Link to comment
Share on other sites

On 9/2/2021 at 6:31 AM, ericgvmaia said:

Another question:

In the CarDamageData, the m_rearWingDamage is ALWAYS zero! The only car that has the rear wing damage registered is the USER car.

It is always zero for every other player.

Also happening with m_floorDamage, m_diffuserDamage, m_sidepodDamage.

And yes, their telemetry is public.

m_frontLeftWingDamage and m_frontRightWingDamage are being registered correctly.

Anybody else noticed it?

Thanks!

@Hoo the dev are on this ? i am multiple customer who ask me why he doesnt work. One month ago (2september) i did test and confirm what Eric said.

Best regards

Link to comment
Share on other sites

  • Codemasters Staff
38 minutes ago, ThibaudPHP said:

@Hoo the dev are on this ? i am multiple customer who ask me why he doesnt work. One month ago (2september) i did test and confirm what Eric said.

Best regards

Hi @ThibaudPHP - we have logged this issue for the dev team. It looks like we are not correctly replicating this data in a multiplayer game. 

  • Agree 1
Link to comment
Share on other sites

On 10/7/2021 at 5:13 PM, Hoo said:

Hi @ThibaudPHP - we have logged this issue for the dev team. It looks like we are not correctly replicating this data in a multiplayer game. 

So @Hoo i am not sure if the bug have been fix on the new today patch. generally on patch note there are sentence about udp telemetry, but today, nothing. If you can inform us it will be cool

Link to comment
Share on other sites

  • Codemasters Staff

Hi @ThibaudPHP - today's patch includes a fix to the broadcasting option on the Xbox. We've got a bug logged about the wing damage replication, but there is no further information about when this might get looked at unfortunately. 

  • Agree 1
Link to comment
Share on other sites

  • 1 month later...

Hi everyone! I’m new to UDP data as I’m actually programming a Nextion hud via SimHub…

Is there any way to get the TYRES DELTA via UDP? In particular I’m looking for the delta between Wet/Inter/Dry so I can make an alert visible when the delta is decreasing as it’s the best moment to pit!

Any suggestion is really appreciated!
Thanks!

Link to comment
Share on other sites

  • 3 weeks later...

Dear @Hoo

it's me... Again... 😄

int8     m_sessionType;              // 0 = unknown, 1 = P1, 2 = P2, 3 = P3, 4 = Short P, 5 = Q1, 6 = Q2, 7 = Q3, 8 = Short Q, 9 = OSQ, 10 = R, 11 = R2, 12 = Time Trial

since the last update the R2 in F2 2021 is became "12". bug or update ?

Regards

 

Link to comment
Share on other sites

  • Codemasters Staff
2 hours ago, ThibaudPHP said:

Dear @Hoo

it's me... Again... 😄

int8     m_sessionType;              // 0 = unknown, 1 = P1, 2 = P2, 3 = P3, 4 = Short P, 5 = Q1, 6 = Q2, 7 = Q3, 8 = Short Q, 9 = OSQ, 10 = R, 11 = R2, 12 = Time Trial

since the last update the R2 in F2 2021 is became "12". bug or update ?

Regards

 

It looks like the m_sessionType comments against the weather entry contains a typo. This shoud be the same as the PacketSessionData comment, which reads:
 

  uint8           m_sessionType;               // 0 = unknown, 1 = P1, 2 = P2, 3 = P3, 4 = Short P
                                               // 5 = Q1, 6 = Q2, 7 = Q3, 8 = Short Q, 9 = OSQ
                                               // 10 = R, 11 = R2, 12 = R3, 13 = Time Trial

However, this should be reporting "11" for an R2 session and not "12". Are you seeing both R2 and R3 sessions reporting as "12"?

Link to comment
Share on other sites

1 minute ago, Hoo said:

It looks like the m_sessionType comments against the weather entry contains a typo. This shoud be the same as the PacketSessionData comment, which reads:
 


  uint8           m_sessionType;               // 0 = unknown, 1 = P1, 2 = P2, 3 = P3, 4 = Short P
                                               // 5 = Q1, 6 = Q2, 7 = Q3, 8 = Short Q, 9 = OSQ
                                               // 10 = R, 11 = R2, 12 = R3, 13 = Time Trial

However, this should be reporting "11" for an R2 session and not "12". Are you seeing both R2 and R3 sessions reporting as "12"?

i did a simple F2 test on grand prix and had a 12 when i choose "sprint and principal". i was surprised because i was waiting an 11.

So i dont know if the 11 is not used anymore.

Link to comment
Share on other sites

  • Codemasters Staff

@ThibaudPHP - I believe that "11" is only used for the second F2 sprint race, with "12" being used for the main feature race. However, I'm not sure whether the main race in an F1 race weekend will use "11" or "12" - I suspect you will find out the answer before I do! 

  • Agree 1
Link to comment
Share on other sites

Hi, I understand that the m_name field is currently unusable because of legal issues.

Maybe a solution of, instead of the full name, sending a (one-way) hash of the player's name, or even a portion of that hash would be sufficient to circumvent the legal issues around it while still providing the devs with some way to identify particular players?

Thanks!

  • Agree 4
Link to comment
Share on other sites

On 12/11/2021 at 10:18 AM, TheMightyMat said:

Time trial ghosts are missing some data (throttle, steering angle, current lap time and sector times are the most important onces I've noticed). I've had a quick look on this thread and can't see any mention of this issue, is this going to be fixed?

@Hoo  Is time trial ghost data going to be improved? It's missing some important data (see my earlier comment), and the only one I can work around is the missing currentLapTimeInMS (since this should be the same as the player)

Link to comment
Share on other sites

Hi,  i can't see a direct field to check the FFB to apply. Do any of you know how to calculate it?. I mean,  from available udp data (motion packet).

I've tried to read papers about it but I'm a bit confused. I know it may be not easy, but any help would be greatly appreciated.

Link to comment
Share on other sites

  • 2 weeks later...

@Hoo
I have heard from a PS5 user that says he cannot use the R3 button in my or any other telemetry app.
My app just checks the button flag is 0x00004000 and works on every other platform.
Is this a PS5 specific bug that its sending the wrong flag for this button?

Left stick click works fine for him (0x00002000).

Link to comment
Share on other sites

  • Codemasters Staff
On 12/18/2021 at 1:13 PM, TheMightyMat said:

@Hoo  Is time trial ghost data going to be improved? It's missing some important data (see my earlier comment), and the only one I can work around is the missing currentLapTimeInMS (since this should be the same as the player)

This is a limitation (or optimisation) of the ghost lap data. This will need further investigation to see what is possible.

Link to comment
Share on other sites

  • Codemasters Staff
On 1/5/2022 at 3:31 AM, BernoAU said:

@Hoo
I have heard from a PS5 user that says he cannot use the R3 button in my or any other telemetry app.
My app just checks the button flag is 0x00004000 and works on every other platform.
Is this a PS5 specific bug that its sending the wrong flag for this button?

Left stick click works fine for him (0x00002000).

Hi @BernoAU - we've checked this one internally and the PS5 is correctly producing 0x00004000 in the UDP output when R3 is pressed. It might be an issue with the user's pad or telemetry setup?

  • Thanks 1
Link to comment
Share on other sites

After latest update, is anybody getting same value for bestLapTime and totalRaceTime?

Example packet:
{
      "FinalClassificationData_V1":{
         "position":2,
         "numLaps":1,
         "gridPosition":1,
         "points":26,
         "numPitStops":0,
         "resultStatus":3,
         "bestLapTime":105274,
         "totalRaceTime":105.27483367919922,
         "penaltiesTime":0,
         "numPenalties":0,
         "numTyreStints":1,
         "tyreStintsActual":[

Link to comment
Share on other sites

On 1/9/2022 at 1:40 AM, gpesportsrd said:

After latest update, is anybody getting same value for bestLapTime and totalRaceTime?

Example packet:
{
      "FinalClassificationData_V1":{
         "position":2,
         "numLaps":1,
         "gridPosition":1,
         "points":26,
         "numPitStops":0,
         "resultStatus":3,
         "bestLapTime":105274,
         "totalRaceTime":105.27483367919922,
         "penaltiesTime":0,
         "numPenalties":0,
         "numTyreStints":1,
         "tyreStintsActual":[

It’s working well for us, we’re getting valid values for the two fields. Have you double checked your packet fields and code?

Link to comment
Share on other sites

Hi, I want to detect when the game is paused in individual games but m_gamePaused doesn't detect that.

When network game is paused, both m_gamePaused and m_networkPaused are set to 1. But when playing solo ones, i cant see the 1 in m_gamePaused .

Is it supposed to be like that?

Link to comment
Share on other sites

On 11/19/2021 at 10:19 PM, Allu83 said:

Hi everyone! I’m new to UDP data as I’m actually programming a Nextion hud via SimHub…

Is there any way to get the TYRES DELTA via UDP? In particular I’m looking for the delta between Wet/Inter/Dry so I can make an alert visible when the delta is decreasing as it’s the best moment to pit!

Any suggestion is really appreciated!
Thanks!

 Maybe you could give some advice looking at  m_wheelslip ?

Link to comment
Share on other sites

On 11/19/2021 at 10:19 PM, Allu83 said:

Is there any way to get the TYRES DELTA via UDP? In particular I’m looking for the delta between Wet/Inter/Dry so I can make an alert visible when the delta is decreasing as it’s the best moment to pit!

I know this is an older comment, but it made me curious since it is an interesting thought. Have you looked at the Session History Packet for this? It does have tyre information (TyreStintHistoryData) as well as lap times so if you keep track of those, you should be able to do what you want to do? Did you end up doing it this way?

Link to comment
Share on other sites

  • 3 weeks later...

Hi everyone, I'm trying to get the relief of the track applied to the car for a personal project.

I have noticed for roll, pitch and yaw they are quite different on each circuit. Let me explain, for example, between Monaco and SPA circuit for practically the same slope percentage the values don't show the same results. I wanted to know if any other values need to be used for redirecting the movement in the good way like the world position or forward position ? Do I have to do a change of basis?

It would be appreciated if you can give me some advice for that.

I'm thankful in advance for your concern.

Link to comment
Share on other sites

  • 2 weeks later...
 Share

×
×
  • Create New...