F1® 25 UDP 数据格式开发文档

目录


概述

F1® 25 游戏支持通过 UDP 连接输出游戏数据。这些数据可用于为外部应用程序提供比赛信息,或驱动特定硬件(如运动平台、力反馈方向盘和 LED 设备)。

重要说明


数据类型定义

类型说明字节数
uint8无符号 8 位整数1
int8有符号 8 位整数1
uint16无符号 16 位整数2
int16有符号 16 位整数2
uint32无符号 32 位整数4
float单精度浮点数4
double双精度浮点数8
uint64无符号 64 位整数8
char字符1

数据包头部

每个数据包都包含以下通用头部结构。

PacketHeader 结构

大小: 29 字节

字段名类型偏移说明
m_packetFormatuint160数据包格式版本号,固定为 2025
m_gameYearuint82游戏年份的后两位,例如 25
m_gameMajorVersionuint83游戏主版本号,例如 "X.00" 中的 X
m_gameMinorVersionuint84游戏次版本号,例如 "1.XX" 中的 XX
m_packetVersionuint85此数据包类型的版本号,从 1 开始
m_packetIduint86数据包类型标识符(见下表)
m_sessionUIDuint647会话的唯一标识符
m_sessionTimefloat15会话时间戳(秒)
m_frameIdentifieruint3219数据检索时的帧标识符
m_overallFrameIdentifieruint3223总体帧标识符(不会因闪回而回退)
m_playerCarIndexuint827玩家车辆在数组中的索引
m_secondaryPlayerCarIndexuint828第二玩家车辆索引(分屏模式),255 表示无第二玩家

数据包类型

数据包 ID 列表

包名称ID频率大小(字节)说明
Motion0按菜单设置的频率1349玩家车辆的运动数据
Session1每秒 2 次753会话信息(赛道、剩余时间)
Lap Data2按菜单设置的频率1285所有车辆的圈速数据
Event3事件发生时45会话期间发生的各种事件
Participants4每 5 秒1284会话中的参与者列表
Car Setups5每秒 2 次1133比赛中车辆的设置详情
Car Telemetry6按菜单设置的频率1352所有车辆的遥测数据
Car Status7按菜单设置的频率1239所有车辆的状态数据
Final Classification8比赛结束时一次1042比赛结束时的最终排名
Lobby Info9大厅中每秒 2 次954多人大厅中的玩家信息
Car Damage10每秒 10 次1041所有车辆的损伤状态
Session History11每秒 20 次(循环)1460圈速和轮胎使用历史
Tyre Sets12每秒 20 次(循环)231扩展轮胎组数据
Motion Ex13按菜单设置的频率273玩家车辆的扩展运动数据
Time Trial14每秒 1 次101计时赛特定数据
Lap Positions15每秒 1 次1131每圈的位置信息

1. Motion Packet (ID: 0)

运动数据包提供所有车辆的物理数据。

频率: 按菜单设置的频率
大小: 1349 字节
版本: 1

CarMotionData 结构

大小: 60 字节(每辆车)

字段名类型说明
m_worldPositionXfloat世界空间 X 坐标(米)
m_worldPositionYfloat世界空间 Y 坐标(米)
m_worldPositionZfloat世界空间 Z 坐标(米)
m_worldVelocityXfloat世界空间 X 轴速度(米/秒)
m_worldVelocityYfloat世界空间 Y 轴速度(米/秒)
m_worldVelocityZfloat世界空间 Z 轴速度(米/秒)
m_worldForwardDirXint16世界空间前向 X 方向(归一化,需除以 32767.0)
m_worldForwardDirYint16世界空间前向 Y 方向(归一化)
m_worldForwardDirZint16世界空间前向 Z 方向(归一化)
m_worldRightDirXint16世界空间右向 X 方向(归一化)
m_worldRightDirYint16世界空间右向 Y 方向(归一化)
m_worldRightDirZint16世界空间右向 Z 方向(归一化)
m_gForceLateralfloat横向 G 力分量
m_gForceLongitudinalfloat纵向 G 力分量
m_gForceVerticalfloat垂直 G 力分量
m_yawfloat偏航角(弧度)
m_pitchfloat俯仰角(弧度)
m_rollfloat翻滚角(弧度)

PacketMotionData 结构

字段名类型说明
m_headerPacketHeader数据包头部
m_carMotionData[22]CarMotionData赛道上所有车辆的运动数据

2. Session Packet (ID: 1)

会话数据包包含当前进行中的会话详情。

频率: 每秒 2 次
大小: 753 字节
版本: 1

MarshalZone 结构

大小: 5 字节

字段名类型说明
m_zoneStartfloat赛道中裁判区开始的位置(0-1 的分数值)
m_zoneFlagint8旗帜类型:-1=无效/未知,0=无,1=绿旗,2=蓝旗,3=黄旗

WeatherForecastSample 结构

大小: 8 字节

字段名类型说明
m_sessionTypeuint8会话类型,0=未知,参见附录
m_timeOffsetuint8预报时间偏移(分钟)
m_weatheruint8天气:0=晴朗,1=少云,2=阴天,3=小雨,4=大雨,5=暴风雨
m_trackTemperatureint8赛道温度(摄氏度)
m_trackTemperatureChangeint8赛道温度变化:0=上升,1=下降,2=不变
m_airTemperatureint8空气温度(摄氏度)
m_airTemperatureChangeint8空气温度变化:0=上升,1=下降,2=不变
m_rainPercentageuint8降雨概率(0-100)

PacketSessionData 结构

字段名类型说明
m_headerPacketHeader数据包头部
m_weatheruint8天气:0=晴朗,1=少云,2=阴天,3=小雨,4=大雨,5=暴风雨
m_trackTemperatureint8赛道温度(摄氏度)
m_airTemperatureint8空气温度(摄氏度)
m_totalLapsuint8比赛总圈数
m_trackLengthuint16赛道长度(米)
m_sessionTypeuint8会话类型,参见附录
m_trackIdint8赛道 ID,-1 表示未知,参见附录
m_formulauint8赛事类型:0=F1现代,1=F1经典,2=F2,3=F1通用,4=Beta,6=电竞,8=F1世界,9=F1淘汰赛
m_sessionTimeLeftuint16会话剩余时间(秒)
m_sessionDurationuint16会话持续时间(秒)
m_pitSpeedLimituint8维修站速度限制(公里/小时)
m_gamePauseduint8游戏是否暂停(仅网络游戏):0=否,1=是
m_isSpectatinguint8玩家是否在观战:0=否,1=是
m_spectatorCarIndexuint8正在观战的车辆索引
m_sliProNativeSupportuint8SLI Pro 支持:0=未激活,1=激活
m_numMarshalZonesuint8裁判区数量
m_marshalZones[21]MarshalZone裁判区列表,最多 21 个
m_safetyCarStatusuint8安全车状态:0=无,1=全场,2=虚拟,3=暖胎圈
m_networkGameuint8网络游戏:0=离线,1=在线
m_numWeatherForecastSamplesuint8天气预报样本数量
m_weatherForecastSamples[64]WeatherForecastSample天气预报样本数组
m_forecastAccuracyuint8预报准确度:0=完美,1=近似
m_aiDifficultyuint8AI 难度等级(0-110)
m_seasonLinkIdentifieruint32赛季标识符(跨存档持久)
m_weekendLinkIdentifieruint32周末标识符(跨存档持久)
m_sessionLinkIdentifieruint32会话标识符(跨存档持久)
m_pitStopWindowIdealLapuint8当前策略的理想进站圈数(玩家)
m_pitStopWindowLatestLapuint8当前策略的最晚进站圈数(玩家)
m_pitStopRejoinPositionuint8预测的重新加入位置(玩家)
m_steeringAssistuint8转向辅助:0=关,1=开
m_brakingAssistuint8刹车辅助:0=关,1=低,2=中,3=高
m_gearboxAssistuint8变速箱辅助:1=手动,2=手动+建议档位,3=自动
m_pitAssistuint8进站辅助:0=关,1=开
m_pitReleaseAssistuint8出站辅助:0=关,1=开
m_ERSAssistuint8ERS 辅助:0=关,1=开
m_DRSAssistuint8DRS 辅助:0=关,1=开
m_dynamicRacingLineuint8动态赛车线:0=关,1=仅弯道,2=完整
m_dynamicRacingLineTypeuint8赛车线类型:0=2D,1=3D
m_gameModeuint8游戏模式 ID,参见附录
m_ruleSetuint8规则集,参见附录
m_timeOfDayuint32一天中的时间(自午夜起的分钟数)
m_sessionLengthuint8会话长度:0=无,2=很短,3=短,4=中,5=中长,6=长,7=完整
m_speedUnitsLeadPlayeruint8主玩家速度单位:0=MPH,1=KPH
m_temperatureUnitsLeadPlayeruint8主玩家温度单位:0=摄氏度,1=华氏度
m_speedUnitsSecondaryPlayeruint8第二玩家速度单位:0=MPH,1=KPH
m_temperatureUnitsSecondaryPlayeruint8第二玩家温度单位:0=摄氏度,1=华氏度
m_numSafetyCarPeriodsuint8会话中出动安全车的次数
m_numVirtualSafetyCarPeriodsuint8会话中虚拟安全车的次数
m_numRedFlagPeriodsuint8会话中红旗的次数
m_equalCarPerformanceuint8车辆性能均衡:0=关,1=开
m_recoveryModeuint8恢复模式:0=无,1=闪回,2=自动恢复
m_flashbackLimituint8闪回限制:0=低,1=中,2=高,3=无限
m_surfaceTypeuint8路面类型:0=简化,1=真实
m_lowFuelModeuint8低燃油模式:0=简单,1=困难
m_raceStartsuint8比赛起步:0=手动,1=辅助
m_tyreTemperatureuint8轮胎温度:0=仅表面,1=表面+胎体
m_pitLaneTyreSimuint8维修站轮胎模拟:0=开,1=关
m_carDamageuint8车辆损伤:0=关,1=减少,2=标准,3=模拟
m_carDamageRateuint8车辆损伤率:0=减少,1=标准,2=模拟
m_collisionsuint8碰撞:0=关,1=玩家间关闭,2=开
m_collisionsOffForFirstLapOnlyuint8仅第一圈关闭碰撞:0=禁用,1=启用
m_mpUnsafePitReleaseuint8多人不安全出站:0=开,1=关
m_mpOffForGriefinguint8多人恶意行为关闭:0=禁用,1=启用
m_cornerCuttingStringencyuint8切弯严格度:0=常规,1=严格
m_parcFermeRulesuint8Parc Fermé 规则:0=关,1=开
m_pitStopExperienceuint8进站体验:0=自动,1=广播,2=沉浸
m_safetyCaruint8安全车:0=关,1=减少,2=标准,3=增加
m_safetyCarExperienceuint8安全车体验:0=广播,1=沉浸
m_formationLapuint8暖胎圈:0=关,1=开
m_formationLapExperienceuint8暖胎圈体验:0=广播,1=沉浸
m_redFlagsuint8红旗:0=关,1=减少,2=标准,3=增加
m_affectsLicenceLevelSolouint8影响单人执照等级:0=关,1=开
m_affectsLicenceLevelMPuint8影响多人执照等级:0=关,1=开
m_numSessionsInWeekenduint8周末会话数量
m_weekendStructure[12]uint8周末结构会话类型列表,参见附录
m_sector2LapDistanceStartfloat第 2 扇区开始的赛道距离(米)
m_sector3LapDistanceStartfloat第 3 扇区开始的赛道距离(米)

3. Lap Data Packet (ID: 2)

圈速数据包提供会话中所有车辆的详细信息。

频率: 按菜单设置的频率
大小: 1285 字节
版本: 1

LapData 结构

大小: 58 字节(每辆车)

字段名类型说明
m_lastLapTimeInMSuint32上一圈时间(毫秒)
m_currentLapTimeInMSuint32当前圈时间(毫秒)
m_sector1TimeMSPartuint16第 1 扇区时间的毫秒部分
m_sector1TimeMinutesPartuint8第 1 扇区时间的分钟部分
m_sector2TimeMSPartuint16第 2 扇区时间的毫秒部分
m_sector2TimeMinutesPartuint8第 2 扇区时间的分钟部分
m_deltaToCarInFrontMSPartuint16与前车时间差的毫秒部分
m_deltaToCarInFrontMinutesPartuint8与前车时间差的分钟部分
m_deltaToRaceLeaderMSPartuint16与领先者时间差的毫秒部分
m_deltaToRaceLeaderMinutesPartuint8与领先者时间差的分钟部分
m_lapDistancefloat当前圈的距离(米),可能为负
m_totalDistancefloat会话中的总距离(米),可能为负
m_safetyCarDeltafloat安全车时间差(秒)
m_carPositionuint8车辆比赛位置
m_currentLapNumuint8当前圈数
m_pitStatusuint8进站状态:0=无,1=正在进站,2=在维修区
m_numPitStopsuint8本场比赛的进站次数
m_sectoruint8当前扇区:0=扇区1,1=扇区2,2=扇区3
m_currentLapInvaliduint8当前圈是否无效:0=有效,1=无效
m_penaltiesuint8累计时间处罚(秒)
m_totalWarningsuint8累计警告数
m_cornerCuttingWarningsuint8累计切弯警告数
m_numUnservedDriveThroughPensuint8未执行的通过维修站处罚数
m_numUnservedStopGoPensuint8未执行的停站处罚数
m_gridPositionuint8发车位置
m_driverStatusuint8驾驶员状态:0=车库,1=飞驰圈,2=进站圈,3=出站圈,4=赛道上
m_resultStatusuint8结果状态:0=无效,1=未激活,2=激活,3=完成,4=未完成,5=被取消资格,6=未分类,7=退赛
m_pitLaneTimerActiveuint8维修站计时器:0=未激活,1=激活
m_pitLaneTimeInLaneInMSuint16在维修站的时间(毫秒,如果激活)
m_pitStopTimerInMSuint16实际进站时间(毫秒)
m_pitStopShouldServePenuint8是否应在此站执行处罚
m_speedTrapFastestSpeedfloat此车通过速度陷阱的最快速度(公里/小时)
m_speedTrapFastestLapuint8达到最快速度的圈数,255=未设置

PacketLapData 结构

字段名类型说明
m_headerPacketHeader数据包头部
m_lapData[22]LapData赛道上所有车辆的圈速数据
m_timeTrialPBCarIdxuint8计时赛个人最佳车辆索引(255=无效)
m_timeTrialRivalCarIdxuint8计时赛对手车辆索引(255=无效)

4. Event Packet (ID: 3)

此数据包提供会话期间发生的事件详情。

频率: 事件发生时
大小: 45 字节
版本: 1

事件字符串代码

事件代码说明
"SSTA"会话开始
"SEND"会话结束
"FTLP"最快圈速
"RTMT"车手退赛
"DRSE"DRS 启用
"DRSD"DRS 禁用
"TMPT"队友进站
"CHQF"挥动方格旗
"RCWN"比赛获胜者
"PENA"发出处罚
"SPTP"触发速度陷阱
"STLG"起步灯
"LGOT"灯灭
"DTSV"通过维修站处罚已执行
"SGSV"停站处罚已执行
"FLBK"闪回激活
"BUTN"按钮状态
"RDFL"红旗
"OVTK"超车
"SCAR"安全车
"COLL"碰撞

EventDataDetails 联合体

根据事件类型,包含不同的数据结构:

FastestLap(最快圈速)

字段名类型说明
vehicleIdxuint8创造最快圈速的车辆索引
lapTimefloat圈速时间(秒)

Retirement(退赛)

字段名类型说明
vehicleIdxuint8退赛车辆索引
reasonuint8原因:0=无效,1=退赛,2=完成,3=终端损伤,4=未激活,5=圈数不足,6=黑旗,7=红旗,8=机械故障,9=跳过会话,10=模拟会话

DRSDisabled(DRS禁用)

字段名类型说明
reasonuint8原因:0=湿赛道,1=安全车部署,2=红旗,3=未达到最小圈数

TeamMateInPits(队友进站)

字段名类型说明
vehicleIdxuint8队友车辆索引

RaceWinner(比赛获胜者)

字段名类型说明
vehicleIdxuint8获胜车辆索引

Penalty(处罚)

字段名类型说明
penaltyTypeuint8处罚类型,参见附录
infringementTypeuint8违规类型,参见附录
vehicleIdxuint8被处罚车辆索引
otherVehicleIdxuint8涉及的其他车辆索引
timeuint8获得的时间或执行动作的时间(秒)
lapNumuint8发生处罚的圈数
placesGaineduint8获得的位置数

SpeedTrap(速度陷阱)

字段名类型说明
vehicleIdxuint8触发速度陷阱的车辆索引
speedfloat达到的最高速度(公里/小时)
isOverallFastestInSessionuint8是否是会话中总体最快速度:1=是,0=否
isDriverFastestInSessionuint8是否是该车手会话中最快速度:1=是,0=否
fastestVehicleIdxInSessionuint8会话中最快车辆的索引
fastestSpeedInSessionfloat会话中最快车辆的速度

StartLights(起步灯)

字段名类型说明
numLightsuint8显示的灯数

StopGoPenaltyServed(停站处罚已执行)

字段名类型说明
vehicleIdxuint8执行停站处罚的车辆索引
stopTimefloat停站时间(秒)

SafetyCar(安全车)

字段名类型说明
safetyCarTypeuint8安全车类型:0=无,1=全场,2=虚拟,3=暖胎圈
eventTypeuint8事件类型:0=部署,1=返回,2=已返回,3=恢复比赛

Collision(碰撞)

字段名类型说明
vehicle1Idxuint8碰撞中第一辆车的索引
vehicle2Idxuint8碰撞中第二辆车的索引

PacketEventData 结构

字段名类型说明
m_headerPacketHeader数据包头部
m_eventStringCode[4]uint8事件字符串代码
m_eventDetailsEventDataDetails事件详情(根据类型解释)

5. Participants Packet (ID: 4)

参与者列表数据包。对于 AI 控制的车辆,名称为车手名称。对于多人游戏,名称将是 Steam ID(PC)或 LAN 名称。

频率: 每 5 秒
大小: 1284 字节
版本: 1

LiveryColour 结构

大小: 3 字节

字段名类型说明
reduint8红色值(0-255)
greenuint8绿色值(0-255)
blueuint8蓝色值(0-255)

ParticipantData 结构

大小: 58 字节(每个参与者)

字段名类型说明
m_aiControlleduint8是否为 AI 控制:1=AI,0=人类
m_driverIduint8车手 ID,参见附录,255=网络人类玩家
m_networkIduint8网络 ID(网络玩家的唯一标识符)
m_teamIduint8车队 ID,参见附录
m_myTeamuint8我的车队标志:1=我的车队,0=其他
m_raceNumberuint8赛车号码
m_nationalityuint8车手国籍,参见附录
m_name[32]char参与者名称(UTF-8 格式,null 结尾)
m_yourTelemetryuint8玩家的 UDP 设置:0=受限,1=公开
m_showOnlineNamesuint8显示在线名称设置:0=关,1=开
m_techLeveluint16F1 世界科技等级
m_platformuint8平台:1=Steam,3=PlayStation,4=Xbox,6=Origin,255=未知
m_numColoursuint8有效颜色数量
m_liveryColours[4]LiveryColour车辆颜色

PacketParticipantsData 结构

字段名类型说明
m_headerPacketHeader数据包头部
m_numActiveCarsuint8活跃车辆数量(应与 HUD 上的车辆数匹配)
m_participants[22]ParticipantData参与者数据

6. Car Setups Packet (ID: 5)

此数据包详细说明会话中每辆车的设置。注意,在多人游戏中,其他玩家的车辆将显示为空白,您只能看到自己的车辆设置。

频率: 每秒 2 次
大小: 1133 字节
版本: 1

CarSetupData 结构

大小: 51 字节(每辆车)

字段名类型说明
m_frontWinguint8前翼下压力
m_rearWinguint8后翼下压力
m_onThrottleuint8油门时的差速器调整(百分比)
m_offThrottleuint8松油门时的差速器调整(百分比)
m_frontCamberfloat前轮外倾角(悬挂几何)
m_rearCamberfloat后轮外倾角(悬挂几何)
m_frontToefloat前轮前束角(悬挂几何)
m_rearToefloat后轮前束角(悬挂几何)
m_frontSuspensionuint8前悬挂
m_rearSuspensionuint8后悬挂
m_frontAntiRollBaruint8前防倾杆
m_rearAntiRollBaruint8后防倾杆
m_frontSuspensionHeightuint8前车身高度
m_rearSuspensionHeightuint8后车身高度
m_brakePressureuint8刹车压力(百分比)
m_brakeBiasuint8刹车平衡(百分比)
m_engineBrakinguint8引擎制动(百分比)
m_rearLeftTyrePressurefloat左后轮胎压(PSI)
m_rearRightTyrePressurefloat右后轮胎压(PSI)
m_frontLeftTyrePressurefloat左前轮胎压(PSI)
m_frontRightTyrePressurefloat右前轮胎压(PSI)
m_ballastuint8配重
m_fuelLoadfloat燃油负载

PacketCarSetupData 结构

字段名类型说明
m_headerPacketHeader数据包头部
m_carSetups[22]CarSetupData车辆设置
m_nextFrontWingValuefloat下次进站后的前翼值(仅玩家)

7. Car Telemetry Packet (ID: 6)

此数据包详细说明比赛中所有车辆的遥测数据。

频率: 按菜单设置的频率
大小: 1352 字节
版本: 1

CarTelemetryData 结构

大小: 61 字节(每辆车)

字段名类型说明
m_speeduint16车速(公里/小时)
m_throttlefloat油门开度(0.0 到 1.0)
m_steerfloat转向角度(-1.0 完全左转,1.0 完全右转)
m_brakefloat刹车力度(0.0 到 1.0)
m_clutchuint8离合器踩下量(0 到 100)
m_gearint8档位(1-8,N=0,R=-1)
m_engineRPMuint16引擎转速
m_drsuint8DRS 状态:0=关,1=开
m_revLightsPercentuint8转速灯指示(百分比)
m_revLightsBitValueuint16转速灯(位 0=最左 LED,位 14=最右 LED)
m_brakesTemperature[4]uint16刹车温度(摄氏度)
m_tyresSurfaceTemperature[4]uint8轮胎表面温度(摄氏度)
m_tyresInnerTemperature[4]uint8轮胎内部温度(摄氏度)
m_engineTemperatureuint16引擎温度(摄氏度)
m_tyresPressure[4]float轮胎压力(PSI)
m_surfaceType[4]uint8驾驶表面类型,参见附录

注意: 所有轮胎数组顺序为:[0]=左后,[1]=右后,[2]=左前,[3]=右前

PacketCarTelemetryData 结构

字段名类型说明
m_headerPacketHeader数据包头部
m_carTelemetryData[22]CarTelemetryData车辆遥测数据
m_mfdPanelIndexuint8打开的 MFD 面板索引,255=MFD 关闭
m_mfdPanelIndexSecondaryPlayeruint8第二玩家的 MFD 面板索引
m_suggestedGearint8建议档位(1-8),0=无建议

8. Car Status Packet (ID: 7)

此数据包详细说明比赛中所有车辆的状态。

频率: 按菜单设置的频率
大小: 1239 字节
版本: 1

CarStatusData 结构

大小: 56 字节(每辆车)

字段名类型说明
m_tractionControluint8牵引力控制:0=关,1=中,2=完全
m_antiLockBrakesuint8防抱死刹车:0=关,1=开
m_fuelMixuint8燃油混合:0=精益,1=标准,2=富油,3=最大
m_frontBrakeBiasuint8前刹车平衡(百分比)
m_pitLimiterStatusuint8维修站限速器状态:0=关,1=开
m_fuelInTankfloat当前油箱燃油量
m_fuelCapacityfloat油箱容量
m_fuelRemainingLapsfloat剩余燃油圈数(MFD 上的值)
m_maxRPMuint16车辆最大转速(转速限制器点)
m_idleRPMuint16车辆怠速转速
m_maxGearsuint8最大档位数
m_drsAlloweduint8DRS 是否允许:0=不允许,1=允许
m_drsActivationDistanceuint16DRS 激活距离,0=不可用,非零=可在 X 米内使用
m_actualTyreCompounduint8实际轮胎配方,参见附录
m_visualTyreCompounduint8视觉轮胎配方,参见附录
m_tyresAgeLapsuint8当前轮胎组的使用圈数
m_vehicleFiaFlagsint8FIA 旗帜:-1=无效/未知,0=无,1=绿旗,2=蓝旗,3=黄旗
m_enginePowerICEfloat内燃机功率输出(瓦)
m_enginePowerMGUKfloatMGU-K 功率输出(瓦)
m_ersStoreEnergyfloatERS 能量储存(焦耳)
m_ersDeployModeuint8ERS 部署模式:0=无,1=中等,2=热圈,3=超车
m_ersHarvestedThisLapMGUKfloat本圈 MGU-K 回收的 ERS 能量
m_ersHarvestedThisLapMGUHfloat本圈 MGU-H 回收的 ERS 能量
m_ersDeployedThisLapfloat本圈部署的 ERS 能量
m_networkPauseduint8车辆在网络游戏中是否暂停

PacketCarStatusData 结构

字段名类型说明
m_headerPacketHeader数据包头部
m_carStatusData[22]CarStatusData车辆状态数据

9. Final Classification Packet (ID: 8)

此数据包详细说明比赛结束时的最终排名。

频率: 比赛结束时一次
大小: 1042 字节
版本: 1

FinalClassificationData 结构

大小: 47 字节(每辆车)

字段名类型说明
m_positionuint8完赛位置
m_numLapsuint8完成的圈数
m_gridPositionuint8发车位置
m_pointsuint8获得的积分
m_numPitStopsuint8进站次数
m_resultStatusuint8结果状态:0=无效,1=未激活,2=激活,3=完成,4=未完成,5=被取消资格,6=未分类,7=退赛
m_resultReasonuint8结果原因:0=无效,1=退赛,2=完成,3=终端损伤,4=未激活,5=圈数不足,6=黑旗,7=红旗,8=机械故障,9=跳过会话,10=模拟会话
m_bestLapTimeInMSuint32会话中的最佳圈速(毫秒)
m_totalRaceTimedouble总比赛时间(秒,不含处罚)
m_penaltiesTimeuint8累计处罚时间(秒)
m_numPenaltiesuint8处罚次数
m_numTyreStintsuint8轮胎使用段数
m_tyreStintsActual[8]uint8车手使用的实际轮胎
m_tyreStintsVisual[8]uint8车手使用的视觉轮胎
m_tyreStintsEndLaps[8]uint8轮胎段结束的圈数

PacketFinalClassificationData 结构

字段名类型说明
m_headerPacketHeader数据包头部
m_numCarsuint8最终排名中的车辆数
m_classificationData[22]FinalClassificationData排名数据

10. Lobby Info Packet (ID: 9)

此数据包详细说明当前在多人大厅中的玩家。

频率: 大厅中每秒 2 次
大小: 954 字节
版本: 1

LobbyInfoData 结构

大小: 43 字节(每个玩家)

字段名类型说明
m_aiControlleduint8是否为 AI 控制:1=AI,0=人类
m_teamIduint8车队 ID,参见附录,255=未选择车队
m_nationalityuint8车手国籍
m_platformuint8平台:1=Steam,3=PlayStation,4=Xbox,6=Origin,255=未知
m_name[32]char参与者名称(UTF-8 格式)
m_carNumberuint8玩家的赛车号码
m_yourTelemetryuint8玩家的 UDP 设置:0=受限,1=公开
m_showOnlineNamesuint8显示在线名称设置:0=关,1=开
m_techLeveluint16F1 世界科技等级
m_readyStatusuint8准备状态:0=未准备,1=准备,2=观战

PacketLobbyInfoData 结构

字段名类型说明
m_headerPacketHeader数据包头部
m_numPlayersuint8大厅中的玩家数
m_lobbyPlayers[22]LobbyInfoData大厅玩家数据

11. Car Damage Packet (ID: 10)

此数据包详细说明比赛中所有车辆的损伤参数。

频率: 每秒 10 次
大小: 1041 字节
版本: 1

CarDamageData 结构

大小: 47 字节(每辆车)

字段名类型说明
m_tyresWear[4]float轮胎磨损(百分比)
m_tyresDamage[4]uint8轮胎损伤(百分比)
m_brakesDamage[4]uint8刹车损伤(百分比)
m_tyreBlisters[4]uint8轮胎起泡值(百分比)
m_frontLeftWingDamageuint8左前翼损伤(百分比)
m_frontRightWingDamageuint8右前翼损伤(百分比)
m_rearWingDamageuint8后翼损伤(百分比)
m_floorDamageuint8底板损伤(百分比)
m_diffuserDamageuint8扩散器损伤(百分比)
m_sidepodDamageuint8侧箱损伤(百分比)
m_drsFaultuint8DRS 故障:0=正常,1=故障
m_ersFaultuint8ERS 故障:0=正常,1=故障
m_gearBoxDamageuint8变速箱损伤(百分比)
m_engineDamageuint8引擎损伤(百分比)
m_engineMGUHWearuint8引擎 MGU-H 磨损(百分比)
m_engineESWearuint8引擎 ES 磨损(百分比)
m_engineCEWearuint8引擎 CE 磨损(百分比)
m_engineICEWearuint8引擎 ICE 磨损(百分比)
m_engineMGUKWearuint8引擎 MGU-K 磨损(百分比)
m_engineTCWearuint8引擎 TC 磨损(百分比)
m_engineBlownuint8引擎爆缸:0=正常,1=故障
m_engineSeizeduint8引擎卡死:0=正常,1=故障

PacketCarDamageData 结构

字段名类型说明
m_headerPacketHeader数据包头部
m_carDamageData[22]CarDamageData车辆损伤数据

12. Session History Packet (ID: 11)

此数据包包含会话的圈速和轮胎使用情况。每个数据包关联一辆特定车辆,每 1/20 秒发送一次,循环发送车辆。

频率: 每秒 20 次(循环车辆)
大小: 1460 字节
版本: 1

LapHistoryData 结构

大小: 14 字节(每圈)

字段名类型说明
m_lapTimeInMSuint32圈速时间(毫秒)
m_sector1TimeMSPartuint16第 1 扇区毫秒部分
m_sector1TimeMinutesPartuint8第 1 扇区分钟部分
m_sector2TimeMSPartuint16第 2 扇区毫秒部分
m_sector2TimeMinutesPartuint8第 2 扇区分钟部分
m_sector3TimeMSPartuint16第 3 扇区毫秒部分
m_sector3TimeMinutesPartuint8第 3 扇区分钟部分
m_lapValidBitFlagsuint8有效性标志:0x01=圈有效,0x02=扇区1有效,0x04=扇区2有效,0x08=扇区3有效

TyreStintHistoryData 结构

大小: 3 字节(每个轮胎段)

字段名类型说明
m_endLapuint8轮胎使用结束圈数(255=当前轮胎)
m_tyreActualCompounduint8车手使用的实际轮胎配方
m_tyreVisualCompounduint8车手使用的视觉轮胎配方

PacketSessionHistoryData 结构

字段名类型说明
m_headerPacketHeader数据包头部
m_carIdxuint8此圈速数据关联的车辆索引
m_numLapsuint8数据中的圈数(包括当前部分圈)
m_numTyreStintsuint8数据中的轮胎段数
m_bestLapTimeLapNumuint8达到最佳圈速的圈数
m_bestSector1LapNumuint8达到最佳第 1 扇区的圈数
m_bestSector2LapNumuint8达到最佳第 2 扇区的圈数
m_bestSector3LapNumuint8达到最佳第 3 扇区的圈数
m_lapHistoryData[100]LapHistoryData最多 100 圈的历史数据
m_tyreStintsHistoryData[8]TyreStintHistoryData轮胎段历史数据

13. Tyre Sets Packet (ID: 12)

此数据包提供车辆在会话期间分配的轮胎组的详细信息。

频率: 每秒 20 次(循环车辆)
大小: 231 字节
版本: 1

TyreSetData 结构

大小: 11 字节(每组轮胎)

字段名类型说明
m_actualTyreCompounduint8实际使用的轮胎配方
m_visualTyreCompounduint8视觉使用的轮胎配方
m_wearuint8轮胎磨损(百分比)
m_availableuint8此组是否当前可用
m_recommendedSessionuint8此轮胎组的推荐会话,参见附录
m_lifeSpanuint8此轮胎组剩余圈数
m_usableLifeuint8此配方推荐的最大圈数
m_lapDeltaTimeint16与安装的轮胎组相比的圈速差(毫秒)
m_fitteduint8是否安装:0=否,1=是

PacketTyreSetsData 结构

字段名类型说明
m_headerPacketHeader数据包头部
m_carIdxuint8此数据关联的车辆索引
m_tyreSetData[20]TyreSetData轮胎组数据(13 干胎 + 7 雨胎)
m_fittedIdxuint8安装的轮胎在数组中的索引

14. Motion Ex Packet (ID: 13)

运动扩展数据包为正在驾驶的车辆提供扩展数据,目标是能够驱动运动平台设置。

频率: 按菜单设置的频率
大小: 273 字节
版本: 1

PacketMotionExData 结构

字段名类型说明
m_headerPacketHeader数据包头部
m_suspensionPosition[4]float悬挂位置
m_suspensionVelocity[4]float悬挂速度
m_suspensionAcceleration[4]float悬挂加速度
m_wheelSpeed[4]float每个车轮的速度
m_wheelSlipRatio[4]float每个车轮的滑移率
m_wheelSlipAngle[4]float每个车轮的滑移角
m_wheelLatForce[4]float每个车轮的横向力
m_wheelLongForce[4]float每个车轮的纵向力
m_heightOfCOGAboveGroundfloat重心离地高度
m_localVelocityXfloat本地空间 X 轴速度(米/秒)
m_localVelocityYfloat本地空间 Y 轴速度
m_localVelocityZfloat本地空间 Z 轴速度
m_angularVelocityXfloat角速度 X 分量(弧度/秒)
m_angularVelocityYfloat角速度 Y 分量
m_angularVelocityZfloat角速度 Z 分量
m_angularAccelerationXfloat角加速度 X 分量(弧度/秒²)
m_angularAccelerationYfloat角加速度 Y 分量
m_angularAccelerationZfloat角加速度 Z 分量
m_frontWheelsAnglefloat当前前轮角度(弧度)
m_wheelVertForce[4]float每个车轮的垂直力
m_frontAeroHeightfloat前扰流板边缘离地高度
m_rearAeroHeightfloat后扰流板边缘离地高度
m_frontRollAnglefloat前悬挂侧倾角
m_rearRollAnglefloat后悬挂侧倾角
m_chassisYawfloat底盘相对运动方向的偏航角(弧度)
m_chassisPitchfloat底盘相对运动方向的俯仰角(弧度)
m_wheelCamber[4]float每个车轮的外倾角(弧度)
m_wheelCamberGain[4]float每个车轮的外倾增益(弧度,主动外倾与动态外倾的差)

注意: 所有车轮数组顺序为:[0]=左后,[1]=右后,[2]=左前,[3]=右前


15. Time Trial Packet (ID: 14)

计时赛数据包提供仅与计时赛游戏模式相关的额外信息。

频率: 每秒 1 次
大小: 101 字节
版本: 1

TimeTrialDataSet 结构

大小: 32 字节

字段名类型说明
m_carIdxuint8此数据关联的车辆索引
m_teamIduint8车队 ID,参见附录
m_lapTimeInMSuint32圈速时间(毫秒)
m_sector1TimeInMSuint32第 1 扇区时间(毫秒)
m_sector2TimeInMSuint32第 2 扇区时间(毫秒)
m_sector3TimeInMSuint32第 3 扇区时间(毫秒)
m_tractionControluint8牵引力控制:0=辅助关,1=辅助开
m_gearboxAssistuint8变速箱辅助:0=辅助关,1=辅助开
m_antiLockBrakesuint8防抱死刹车:0=辅助关,1=辅助开
m_equalCarPerformanceuint8车辆性能:0=真实,1=均衡
m_customSetupuint8自定义设置:0=否,1=是
m_validuint8有效性:0=无效,1=有效

PacketTimeTrialData 结构

字段名类型说明
m_headerPacketHeader数据包头部
m_playerSessionBestDataSetTimeTrialDataSet玩家会话最佳数据组
m_personalBestDataSetTimeTrialDataSet个人最佳数据组
m_rivalDataSetTimeTrialDataSet对手数据组

16. Lap Positions Packet (ID: 15)

圈位置数据包指示每辆车在每圈开始时的位置。最多传输 50 圈的数据。

频率: 每秒 1 次
大小: 1131 字节
版本: 1

PacketLapPositionsData 结构

字段名类型说明
m_headerPacketHeader数据包头部
m_numLapsuint8数据中的圈数
m_lapStartuint8数据开始的圈索引(从 0 开始)
m_positionForVehicleIdx[50][22]uint8数组保存车辆在给定圈的位置,0=无记录

附录

车队 ID

ID车队名称
0梅赛德斯 (Mercedes)
1法拉利 (Ferrari)
2红牛赛车 (Red Bull Racing)
3威廉姆斯 (Williams)
4阿斯顿马丁 (Aston Martin)
5阿尔卑斯 (Alpine)
6RB
7哈斯 (Haas)
8迈凯伦 (McLaren)
9索伯 (Sauber)
41F1 通用
104F1 自定义车队

赛道 ID

ID赛道名称
0墨尔本 (Melbourne)
2上海 (Shanghai)
3萨基尔/巴林 (Sakhir/Bahrain)
4加泰罗尼亚 (Catalunya)
5摩纳哥 (Monaco)
6蒙特利尔 (Montreal)
7银石 (Silverstone)
9匈牙利环 (Hungaroring)
10斯帕 (Spa)
11蒙扎 (Monza)
12新加坡 (Singapore)
13铃鹿 (Suzuka)
14阿布扎比 (Abu Dhabi)
15德克萨斯/美洲赛道 (Texas/COTA)
16巴西 (Brazil)
17奥地利 (Austria)
19墨西哥 (Mexico)
20巴库/阿塞拜疆 (Baku/Azerbaijan)
26赞德沃特 (Zandvoort)
27伊莫拉 (Imola)
29吉达 (Jeddah)
30迈阿密 (Miami)
31拉斯维加斯 (Las Vegas)
32洛赛尔 (Losail)

会话类型

ID会话类型
0未知 (Unknown)
1练习赛 1 (Practice 1)
2练习赛 2 (Practice 2)
3练习赛 3 (Practice 3)
4短练习赛 (Short Practice)
5排位赛 1 (Qualifying 1)
6排位赛 2 (Qualifying 2)
7排位赛 3 (Qualifying 3)
8短排位赛 (Short Qualifying)
9单圈排位赛 (One-Shot Qualifying)
10冲刺赛排位 1 (Sprint Shootout 1)
11冲刺赛排位 2 (Sprint Shootout 2)
12冲刺赛排位 3 (Sprint Shootout 3)
13短冲刺赛排位 (Short Sprint Shootout)
14单圈冲刺赛排位 (One-Shot Sprint Shootout)
15正赛 (Race)
16正赛 2 (Race 2)
17正赛 3 (Race 3)
18计时赛 (Time Trial)

路面类型

ID路面类型
0柏油路 (Tarmac)
1减速带 (Rumble strip)
2混凝土 (Concrete)
3岩石 (Rock)
4砂砾 (Gravel)
5泥地 (Mud)
6沙地 (Sand)
7草地 (Grass)
8水面 (Water)
9鹅卵石 (Cobblestone)
10金属 (Metal)
11波纹路面 (Ridged)

轮胎配方

F1 现代

ID配方
16C5
17C4
18C3
19C2
20C1
21C0
22C6
7中性胎 (Inter)
8雨胎 (Wet)

F1 视觉

ID配方
16软胎 (Soft)
17中性胎 (Medium)
18硬胎 (Hard)
7中性胎 (Inter)
8雨胎 (Wet)

处罚类型

ID处罚类型
0通过维修站 (Drive through)
1停站处罚 (Stop Go)
2发车位罚退 (Grid penalty)
3处罚提醒 (Penalty reminder)
4时间处罚 (Time penalty)
5警告 (Warning)
6取消资格 (Disqualified)
7从暖胎圈移除 (Removed from formation lap)
8停车时间过长计时器 (Parked too long timer)
9轮胎规则违规 (Tyre regulations)
10本圈无效 (This lap invalidated)
11本圈和下一圈无效 (This and next lap invalidated)
16退赛 (Retired)
17黑旗计时器 (Black flag timer)

游戏模式 ID

ID模式
4大奖赛 '23 (Grand Prix '23)
5计时赛 (Time Trial)
6分屏 (Splitscreen)
7在线自定义 (Online Custom)
15在线每周赛事 (Online Weekly Event)
17剧情模式/刹车点 (Story Mode - Braking Point)
27我的车队生涯 '25 (My Team Career '25)
28车手生涯 '25 (Driver Career '25)
29在线生涯 '25 (Career '25 Online)
30挑战生涯 '25 (Challenge Career '25)
75剧情模式/APXGP (Story Mode - APXGP)
127基准测试 (Benchmark)

UDP 配置

如何启用 UDP 遥测输出

在 F1 25 中,通过游戏内菜单控制 UDP 遥测输出:

  1. 进入主菜单的选项菜单(三角形 / Y)

  2. 进入设置菜单

  3. UDP 选项在列表底部

  4. 可以启用/禁用 UDP 输出、配置 IP 地址和端口、切换广播模式并设置发送频率

高级 PC 用户 XML 配置

文件位置:...\Documents\My Games\<game_folder>\hardwaresettings\hardware_settings_config.xml

参数说明


数据包发送频率

首帧数据包(会话时间戳 0.000)

按菜单设置频率发送

每秒 2 次

每 5 秒

每秒 10 次

每秒 20 次(循环车辆)

事件触发


受限数据(遥测隐私设置)

当玩家将"Your Telemetry"设置为"Restricted"时,以下数据项对其他玩家将设置为零:

Car Status Packet

Car Damage Packet

Tyre Sets Packet


F1 25 UDP 格式变更

相比去年(F1 24),F1 25 的变更包括:

  1. 事件数据包中增加了停站处罚时间

  2. 车辆损伤数据包中增加了轮胎起泡百分比

  3. Motion Ex 数据包中增加了底盘俯仰角

  4. 参与者数据包中增加了车辆颜色(名称大小减少到 32 字符)

  5. Motion Ex 数据包中增加了车轮外倾角和外倾增益

  6. 增加了 DRS 禁用的详细原因

  7. 退赛事件中增加了退赛原因

  8. 新增圈位置数据包 (ID: 15)

  9. 最终排名数据包中增加了结果原因

  10. 文档中增加了 C6 配方轮胎


开发注意事项

  1. 字节对齐: 所有结构都是紧密打包的,不要假设有任何填充字节

  2. 车辆索引: 在会话期间,每辆车分配一个车辆索引,不会改变

  3. 活跃车辆: 始终检查 m_numActiveCars 和每辆车的 resultStatus

  4. 归一化值: 方向向量(int16)需除以 32767.0 转换为浮点数

  5. 数组顺序: 所有车轮数组顺序为 [左后, 右后, 左前, 右前]

  6. 兼容性: F1 25 支持 2025、2024 和 2023 三种 UDP 格式


法律声明

F1® 25 Game - FIA Formula One World Championship™ 的官方产品

© 2025 本文档根据 EA 许可提供,仅供参考。


文档版本: 1.0
适用游戏: F1® 25
最后更新: 2025