- 2,228
- Bielefeld
- tarnheld
I got the python script working and fiddled a bit with the data, here is what i've learned:
It works in live and replay mode, so you can get data from replays as well.
The packet data meaning as decoded by @Nenkai needs some more care, here is what i found so far:
After the header/magic number, we have:
Will update this post with more info.
It works in live and replay mode, so you can get data from replays as well.
The packet data meaning as decoded by @Nenkai needs some more care, here is what i found so far:
After the header/magic number, we have:
Pos | Data Type | Range | Meaning | Notes |
---|---|---|---|---|
0x04 | 3 float | [-inf,inf] | Position X,Y,Z | Y points up, XZ is the race track plane Origin varies by track |
0x10 | 3 float | [-inf,inf] | Velocity X,Y,Z | in meter/second, normalized gives vehicle direction |
0x1C | 3 float | [-1,1] | Rotation X,Y,Z | UPDATE: Seems to be the imaginary part of a unit quaternion that gives the rotation of the car relative to the track coordinate system, will add more info |
0x28 | 1 float | [0,1] | Rotation ? | UPDATE: Seems to be the real part of a unit quaternion that gives the rotation of the car relative to the track coordinate system, will add more info |
0x2C | 3 float | [-inf,inf] | Angular Velocity X,Y,Z | in radians/second, how fast the car turns about an axis |
0x38 | 1 float | ? | Ride Height | seems to include suspension effects, not completely sure what is measured here |
0x3C | 1 float | [0,inf] | RPM | Engine RPM |
0x40 | 4 byte | - | IV | decoding data |
0x44 | 1 float | [0,100?] | Fuel Level | amount of of fuel left, starts at Fuel Capacity at start of race, TDB for EVs |
0x48 | 1 float | [5,100?] | Fuel Capacity | amount of fuel that fits into the tank, usually 100 for fossil fuel cars, 5 for the kart, TBD for EVs |
0x4C | 1 float | [0,inf] | Speed | in meter/second, positive even when going backwards |
0x50 | 1 float | [0,inf?] | Turbo Boost | this value - 1 gives the Turbo Boost display |
0x54 | 1 float | [1.6?,8?] | Oil Pressure | in Bar? |
0x58 | 1 float | ? | ? | seems to be always at 85.0, maybe water temp. check with other cars |
0x5C | 1 float | ? | ? | seems to be always at 110.0, maybe oil temp. check with other cars |
0x60 | 4 float | [-273.15,inf] | Tire Temperature FL,FR,RL,RR | in degree celsius |
0x70 | 1 int | - | Ticks | increases for every sent packet even when paused, packet number |
0x74 | 1 short | [0,65535] | Current Lap | Which lap we are in, 0 before starting first lap |
0x76 | 1 short | [0,65535] | Total Race Laps | How many laps the race will have, 0 for TTs |
0x78 | 1 int | - | Best Lap Time | millisecond timestamp |
0x7C | 1 int | - | Last Lap Time | millisecond timestamp |
0x80 | 1 int | - | Day Time Progression | millisecond timestamp, time of day indicates race start time of day, affected by Variable Time Speed Ratio, useless for timing when time speed ratio is not 1 |
0x84 | 1 short | TBD | Race Position | position of the car in the race, seems to be always -1 after race start |
0x86 | 1 short | TBD | Number Of Cars | total number of cars in the race, seems to be always -1 after race start |
0x88 | 1 short | [0,65535] | RPM Flashing | in RPM, indicates RPM when rev indicator starts flashing |
0x8A | 1 short | [0,65535] | RPM Rev. Limiter | in RPM, indicates RPM when rev limiter is hit |
0x8C | 1 short | [0,65535] | Car Maximum Speed | in speed units (km/h,mph,etc) chosen by game display setting, affected by car and tuning options |
0x8E | 1 short | - | Flags | each of the bits indicates something is active when 1 0: in race 1: paused 2: loading/processing 3: in a gear, 0 when shifting or out of gear, standing 4: has turbo 5: rev limiter flashing 6: handbrake 7: lights 8: lowbeam 9: highbeam 10: ASM 11: TCS 12:? 13:? 14:? 15:? |
0x90 | 1 byte | [0,15] | Gears | two nibbles/4bit integers: 0-4: current gear, 0 is reverse, -1 is neutral 4-8: suggested gear, -1 when no suggested gear |
0x91 | 1 byte | [0,255] | Throttle | throttle input |
0x92 | 1 byte | [0,255] | Brake | brake input |
0x93 | 1 byte | - | Reserved | always set to 0 |
0x94 | 4 float | - | Road Plane | coefficients of plane equation of the road below? or nearest? to the car, first three floats are the normal of the plane, distance of Position to this plane matches Ride Height |
0xA4 | 4 float | [-inf,inf] | Wheel Speed FL,FR,RL,RR | angular speed in radians/second, sign opposite to vehicle speed |
0xB4 | 4 float | [0,inf] | Tire Radius FL,FR,RL,RR | in meter, multiply with Wheel Speed to get Tire Speed in meter/second |
0xC4 | 4 float | ? | Tire Suspension Travel FL,FR,RL,RR | in meter? |
0xD4 | 32 bytes | ? | Reserved? | always set to 0 |
0xF4 | 1 float | [0,1] | Clutch | TBD |
0xF8 | 1 float | [0,1] | Clutch Engagement | TBD, seems to be 1 - Clutch |
0xFC | 1 float | [0,inf] | RPM through Clutch | TBD |
0x100 | 1 float | [0,inf] | Trans. Top Speed | corresponds to the Top Speed setting of a customizable gear box in the car settings, given as gear ratio |
0x104 | 8 float | [0,inf] | Gear Ratios | ratios for gears 1-8 (what about reverse?) there is space for 8 gears, if car has more gears than that 9th gear ratio will overwrite the Car Code and other gear ratios are lost |
0x124 | 1 int | Car Code |
Will update this post with more info.
Last edited: