PIT, PSF { // PIT = New Row on Each Packet. // PSF = Update Last Row with Same PLID. `PLID`, # Player's Unique Id PIT & PSF `LapsDone`, # Laps Completed PIT `Flags`, # Player Flags PIT `Penalty`, # Current Penalty Value PIT `NumStops`, # Number of Pit Stops PIT `Tyres` # Tyres Changed, Bit Field. PIT `Work`, # Pit Work PIT `STime` # Stop Time (ms) PSF }; FIN, RES { // New Row on Each Packet. `PLID`, # Player's Unique Id FIN & RES `UName`, # User Name RES `PName`, # Player Name RES `Plate`, # Number Plate RES `CName`, # Skin Prefix RES `TTime`, # Total Time (ms) FIN & RES `BTime`, # Best Lap Time (ms) FIN & RES `NumStops`, # Number of Pit Stops FIN & RES `Confirm`, # Confirmation Flags FIN & RES `LapsDone`, # Laps Completed FIN & RES `Flags`, # Player Flags FIN & RES `ResultNum`, # Finish or Qualify Pos RES `NumRes`, # Total Number of Results RES `PSeconds`, # Penalty Time in Seconds RES }; LAP, SPX { // New Row on Each Packet. `PLID`, # Player's Unique Id LAP & SPX `LTime`, # Lap Time (ms) LAP `STime`, # Split Time (ms) SPX `ETime`, # Total Time (ms) LAP & SPX `LapsDone`, # Laps completed LAP `Flags`, # Player flags LAP `Split`, # Split number 1, 2, 3 SPX `Penalty`, # Current Penalty Value LAP & SPX `NumStops`, # Number of Pit Stops LAP & SPX } MCI (CompCar), NLP (NodeLap) { // New Row on Each Packet. `Node`, # Current Path Node MCI & NPL `Lap`, # Current Lap MCI & NPL `PLID`, # Player's Unique Id MCI & NPL `Position`, # Current Race Position MCI & NPL `Info`, # Flags & Other Info MCI `X`, # X map (65536 = 1 metre) MCI `Y`, # Y map (65536 = 1 metre) MCI `Z`, # Z alt (65536 = 1 metre) MCI `Speed`, # Speed (32768 = 100 m/s) MCI `Direction`, # Direction of Car's Motion MCI `Heading`, # Direction of Forward Axis MCI `AngVel`, # Rate of Change of Heading MCI };