Vehicle config fields
Source: the *VehicleConfigDataAsset, MTrackedVehicleWheelData, BHRotaryFlightDataAsset, BHAirVehicleDragDataAsset and WDVehicleGameplayComponentsDataAsset exports under the vehicle plugins. Generated by _tools/vehicle_round85_tables.py. Evidence and status: round 85 vehicles.
Vehicle parts and handling holds the engine, axle, wheel and suspension tables. This page adds the fields it leaves out. - means the asset does not set the field (a native default applies, see the defaults section of that page).
1. Wheeled vehicle config (MWheeledVehicleConfigDataAsset)
The exit damage type is the same WDImpactDamageType everywhere. Gameplay cue tags (engine, collision, moving, horn, destroyed) are cosmetic and are listed in the export only.
2. Tracked vehicle config (MTrackedVehicleConfigDataAsset)
| Asset | Horn min hold (s) | Moving-effect speed threshold | Moving-effect angular threshold | Third-person camera offset | Prediction settings |
|---|---|---|---|---|---|
DA_SPW_Spawn_Config | 0.05 | - | 0.2 | (0, 0, 110) | - |
DA_Config_TNK_01_Artillery | 0.05 | - | 0.2 | (0, 0, 110) | DA_PredictionSettings_TNK_01_Artillery |
DA_Config_TNK_03 | 0.05 | - | 0.2 | (0, 0, 110) | DA_PredictionSettings_TNK_03 |
DA_Config_TNK_01_Heavy | 0.05 | - | 0.2 | (0, 0, 110) | DA_PredictionSettings_TNK_01_Heavy |
DA_Config_TNK_04 | 0.05 | - | 0.2 | (0, 0, 110) | DA_PredictionSettings_TNK_04 |
Tracked wheel data (MTrackedVehicleWheelData)
| Asset | Suspension length | Wheel radius | Spring rate | Damping compress | Damping rebound | Max incline (deg) | Incline grip multiplier (X, Y, Z) | Lateral friction | Steering friction reduction | Unnamed float (_aaabodchgifaioegpnmah) |
|---|---|---|---|---|---|---|---|---|---|---|
DA_SPW_01_WheelData | 40 | 38 | 112,500 | 12,000 | 17,000 | 50 | (1, 2, 1) | 3.5 | - | 4.5 |
DA_TNK_01_WheelData | 40 | 35 | 112,500 | 12,000 | 17,000 | 50 | (1, 2, 1) | 3.25 | 1 | 4.5 |
DA_TNK_04_WheelData | 40 | 40.5 | 112,500 | 12,000 | 17,000 | 50 | (1, 2, 1) | 3.335 | 0.75 | 4.5 |
The tracks share the spring rate (112,500), damping (12,000 / 17,000), suspension length (40) and 50 degree incline limit; they differ in wheel radius (SPW 38, TNK_01 35, TNK_04 40.5) and lateral friction (3.5, 3.25, 3.335). SPW_01 sets no steering friction reduction (native default).
3. Rotary vehicle config and flight (BHRotaryVehicleConfigDataAsset, BHRotaryFlightDataAsset)
Flight characteristics scalars:
| Asset | Rotor radius | Max lift coeff | Stall blade angle (deg) | Low alt (m) | High alt (m) | Cyclic attenuation | Ground effect % | Falloff (m) | Exponent | Translational lift | Max angular velocity (deg/s) |
|---|---|---|---|---|---|---|---|---|---|---|---|
DA_ROT_02_FlightCharacteristics | 600 | 1.8 | 40 | 40 | 200 | 0.45 | - | 12 | - | 20% over 24 to 34 m/s | 83 (off) |
DA_ROT_03_FlightCharacteristicsDataAsset2000KGLight | - | 1.25 | - | 75 | 250 | 0.6 | - | 12 | 1.1 | 16% over 20 to 28 m/s | 83 (off) |
DA_ROT_04_FlightCharacteristicsDataAsset | 800 | 5.75 | - | 50 | 250 | 0.45 | 30 | 12 | - | 25% over 24 to 34 m/s | 83 (off) |
Control forces:
| Asset | Control | Type | Max torque | Min force | Max force | Min blade delta | Max blade delta |
|---|---|---|---|---|---|---|---|
DA_ROT_02_FlightCharacteristics | Pitch | RotorBladeAngle | 4.8e+09 | - | - | - | 1.3 |
DA_ROT_02_FlightCharacteristics | Roll | RotorBladeAngle | 1.5e+09 | - | - | - | 0.42 |
DA_ROT_02_FlightCharacteristics | Yaw | - | 3.3e+08 | - | - | - | - |
DA_ROT_02_FlightCharacteristics | Collective | RotorBladeAngle | - | 400,000 | 2,800,000 | -0.5 | 10 |
DA_ROT_03_FlightCharacteristicsDataAsset2000KGLight | Pitch | RotorBladeAngle | 4.8e+09 | - | - | - | 2 |
DA_ROT_03_FlightCharacteristicsDataAsset2000KGLight | Roll | RotorBladeAngle | 1.5e+09 | - | - | - | 0.6 |
DA_ROT_03_FlightCharacteristicsDataAsset2000KGLight | Yaw | - | 3.7e+07 | - | - | - | - |
DA_ROT_03_FlightCharacteristicsDataAsset2000KGLight | Collective | RotorBladeAngle | - | 400,000 | 2,800,000 | -3 | 14.5 |
DA_ROT_04_FlightCharacteristicsDataAsset | Pitch | RotorBladeAngle | 4.8e+09 | - | - | - | 6 |
DA_ROT_04_FlightCharacteristicsDataAsset | Roll | RotorBladeAngle | 1.5e+09 | - | - | - | 0.85 |
DA_ROT_04_FlightCharacteristicsDataAsset | Yaw | - | 5e+08 | - | - | - | - |
DA_ROT_04_FlightCharacteristicsDataAsset | Collective | RotorBladeAngle | - | 400,000 | 3,400,000 | -1.9 | 10.67 |
4. Air drag (BHAirVehicleDragDataAsset, BHAirplaneDragDataAsset)
| Property | ROT_02_Drag | ROT_03_Drag2000KGLight | ROT_03_RocketPods_Drag2000KGLight | ROT_04_Drag | FWG_01_Drag |
|---|---|---|---|---|---|
AirDensityAtSeaLevel | 0.00125 | 0.00125 | 0.00125 | 0.00125 | 0.00125 |
FrontDragArea | 4,000 | 1,000 | 1,000 | 4,000 | 4,000 |
RearDragArea | 4,500 | 3,500 | 3,500 | 6,000 | 3,500 |
SideArea | 7,000 | 5,000 | 5,000 | 9,000 | 5,000 |
BottomArea | 700,000 | 350,000 | 350,000 | 350,000 | 2,800,000 |
TopArea | 700,000 | 400,000 | 400,000 | 400,000 | 2,800,000 |
DragCoefficient | 0.0056 | 0.0056 | 0.0056 | 0.0056 | 0.0056 |
YawAngularVelocityInducedDragTorqueCoef | 2.4e+11 | 8e+10 | 8e+10 | 2e+11 | 2.4e+12 |
PitchAngularVelocityInducedDragTorqueCoef | 1.2e+12 | 1e+11 | 1e+11 | 3e+11 | 1.2e+13 |
RollAngularVelocityInducedDragTorqueCoef | 9.5e+10 | 8e+09 | 8e+09 | 3.2e+10 | 9.5e+11 |
YawLinearVelocityInducedDragTorqueCoef | 40,000 | 12,000 | 12,000 | 120,000 | 70,000 |
PitchLinearVelocityInducedDragTorqueCoef | 800 | 180 | 180 | 540 | 90,000 |
RollLinearVelocityInducedDragTorqueCoef | 0.18 | 0.18 | 0.18 | 0.3 | 0.18 |
ReverseYawCorrectionCoef | 0.8 | 0.8 | 0.8 | 0.8 | 0.8 |
The 2000 KG light drag asset is shared by ROT_03 and its rocket-pod variant (identical values). All five assets have bDrawDragDebugLines true. Against Havoc (ROT_02) the airplane has the same front area and coefficient, a 4 times larger top and bottom area (2,800,000 against 700,000), 10 times larger angular-velocity torque coefficients (yaw, pitch, roll) and a smaller rear and side area. What the area fields mean in the native formula is not decoded.
5. Fuel settings (FuelSettings in each *GameplaySystems asset)
| Asset | Max fuel (L) | KML (km per litre) | Listed economy = 1/KML (L/km, derived) | Range on a full tank (km, derived) | RPML | Boost multiplier | Refuel interaction range |
|---|---|---|---|---|---|---|---|
DA_GameplaySystems_ROT_02 | 130 | 0.225 | 4.44 | 29.2 | 350 | - | - |
DA_GameplaySystems_ROT_03 | 105 | 0.225 | 4.44 | 23.6 | 350 | - | - |
DA_ROT_04_GameplaySystems | 120 | 0.225 | 4.44 | 27 | 350 | - | 250 |
DA_GameplaySystems_SPW | - | 0.175 | 5.71 | - | 115 | - | - |
DA_GameplaySystems_STN_04 | 1 | - | - | - | 1 | 1 | - |
DA_GameplaySystems_TNK_03 | 105 | 0.1 | 10 | 10.5 | 115 | - | - |
DA_GameplaySystems_TNK_01_Artillery | 105 | 0.125 | 8 | 13.1 | 115 | - | - |
DA_GameplaySystems_TNK_01_Heavy | 110 | 0.125 | 8 | 13.8 | 115 | - | - |
DA_GameplaySystems_TNK_04 | 110 | 0.1437 | 6.96 | 15.8 | 115 | - | - |
DA_WHL_01_GameplaySystems | 15 | 0.45 | 2.22 | 6.8 | 180 | - | - |
DA_GameplaySystems_WHL_02 | 50 | 0.35 | 2.86 | 17.5 | 140 | - | - |
DA_GameplaySystems_WHL_05_Humvee | 65 | 0.3 | 3.33 | 19.5 | 110 | - | - |
DA_GameplaySystems_WHL_05_Humvee_Minigun | 65 | 0.3 | 3.33 | 19.5 | 110 | - | - |
DA_GameplaySystems_WHL_05_Humvee_RingTurret | 65 | 0.3 | 3.33 | 19.5 | 110 | - | - |
DA_GameplaySystems_WHL_06_DuneBuggy | 68 | 0.2 | 5 | 13.6 | 135 | - | - |
DA_GameplaySystems_WHL_07 | 85 | 0.25 | 4 | 21.2 | 130 | - | - |
DA_GameplaySystems_WHL_08 | 60 | 0.25 | 4 | 15 | 110 | - | - |
DA_FWG_01_GameplaySystems | - | - | - | - | - | - | - |
What the fields do. The fuel component’s tick (native 0x7666FA0, round 85) subtracts rate x dt + leak x dt from the fuel attribute each frame while the owning vehicle’s network role is 3 (ROLE_Authority: the drain runs only where the vehicle is authoritative, a host or server; round 88, static reading) and the component is not flagged off. The rate term is only added when the vehicle’s bIsEngineRunning flag is set (round 88: the extra owner check of round 85 is that flag); the leak term does not depend on it, so a vehicle with its engine off still loses fuel to a leak. rate comes from 0x7665DB0:
- Moving:
rate = speed(km/h) / 3600 / KMLlitres per second, so a vehicle burns 1/KML litres per kilometre andMax fuel x KMLkilometres is the range on a full tank (derived). - At or below the idle speed threshold (
IdleSpeedThreshold, never set in the cooked assets; the constructor default is 1.0 km/h, round 88) the rate switches from speed to the engine RPM, and divides byRPMLinstead ofKML:rate = RPM / 3600 / RPMLlitres per second (Native, static reading). Wheeled vehicles read the engine RPM of their movement simulation; helicopters read a rotor or engine RPM from their rotary component; tracked vehicles and the airplane return 0, so they burn nothing while stopped or crawling at 1 km/h or less. Worked example (Derived): a Humvee idling at its 700 RPM idle setting withRPML110 burns 700 / 3600 / 110 = 0.0018 L/s, about 0.11 L per minute, against about 5.6 L per minute at 100 km/h (100 / 3600 / 0.3 = 0.093 L/s); this assumes the simulation holds the engine at its idle RPM while stopped. - Other constructor defaults of the fuel settings (Native,
0x7665AC0):MaxFuel100,KML1.0,RPML1500, boost multiplier 1.5, and two further floats 20 and 95 that the rate does not use (one is presumablyLowFuelThreshold). The cooked assets overrideMaxFuel,KMLandRPMLfor most vehicles in the table above (a-there means the constructor default applies). - The rate is multiplied by the boost multiplier while boosting, and by a fuel-usage multiplier from character skills (
FuelUsageReduction, see the Driver and Pilot skill tables). leakis the stored fuel-leak value set by the fuel-tank damage effects (0.1 to 3.0 litres per second, see Fuel and refueling).
Which settings field each native slot holds is inferred from how the value is used; the component constructor (0x7665AC0) confirms the order KML, idle threshold, RPML, then the boost multiplier, which differs from the SDK field order. The listed economy in the vendor stats equals 1/KML for most vehicles (Havoc 4.4, Humvee 3.3, Kodiak 2.9, Bobcat 2.2, Dune Buggy 5.0, Ural 4.0, M113 5.7, SPH-2 and L2A6 8.0, Gepard 10.0); the T-72B3 is the exception (vendor 8.5, 1/KML 6.96). The airplane sets no fuel settings at all.
6. Per-vehicle gameplay settings and ramming
These fields are read from cooked data. Fields marked Native were traced in the executable (static reading, round 91); the rest are read from their names (Derived). - means the asset does not set the field. The same values are in assets/data/vehicle-gameplay-settings.json.
Abandonment, inventory, faction (*GameplaySystems)
| Asset | Vehicle | Inactivity lifetime outside a safe zone (s) | Inventory accessible | Faction changes | Neutral after (s) |
|---|---|---|---|---|---|
DA_GameplaySystems_ROT_02 | Havoc | 90 | true | - | - |
DA_GameplaySystems_ROT_03 | MH-6 / AH-6M / AH-6R | 10 | true | - | - |
DA_ROT_04_GameplaySystems | Z20 Lakota | - | true | - | - |
DA_GameplaySystems_SPW | M113 APC SV | - | true | - | - |
DA_GameplaySystems_STN_01 | stationary emplacement | 30,000 (about 8.3 hours) | true | false | - |
DA_GameplaySystems_STN_02 | stationary emplacement | 30,000 (about 8.3 hours) | true | false | - |
DA_GameplaySystems_STN_03 | stationary emplacement | 30,000 (about 8.3 hours) | true | false | - |
DA_GameplaySystems_STN_04 | stationary emplacement | - | - | false | 36,000 |
DA_GameplaySystems_STN_05 | stationary emplacement | 30,000 (about 8.3 hours) | true | false | - |
DA_GameplaySystems_STN_06 | stationary emplacement | 30,000 (about 8.3 hours) | true | false | - |
DA_GameplaySystems_TNK_03 | Flakpanzer Gepard | - | true | - | - |
DA_GameplaySystems_TNK_01_Artillery | SPH-2 | - | true | - | - |
DA_GameplaySystems_TNK_01_Heavy | L2A6 | - | true | - | - |
DA_GameplaySystems_TNK_04 | T-72B3 | - | true | - | - |
DA_WHL_01_GameplaySystems | Bobcat | - | - | - | - |
DA_GameplaySystems_WHL_02 | Kodiak family | - | true | - | - |
DA_GameplaySystems_WHL_05_Humvee | Humvee family | - | true | - | - |
DA_GameplaySystems_WHL_05_Humvee_Minigun | Humvee family | - | true | - | - |
DA_GameplaySystems_WHL_05_Humvee_RingTurret | Humvee family | - | true | - | - |
DA_GameplaySystems_WHL_06_DuneBuggy | Dune Buggy | - | - | - | - |
DA_GameplaySystems_WHL_07 | Ural family | - | true | - | - |
DA_GameplaySystems_WHL_08 | Wolf-110 family | - | true | - | - |
DA_FWG_01_GameplaySystems | Fixed-wing airplane | - | - | - | - |
InactivityLifetimeOutSafeZone is the only inactivity field any asset sets: Havoc 90 s, the MH-6 family 10 s, the stationary emplacements 30,000 s. The other vehicles keep the native default, which is not in the data. Reading the name, an unoccupied vehicle outside a safe zone is removed after that time (Derived). The client executable only copies the value into the vehicle’s gameplay-systems component at start-up (offset 1884, 0x767BC40) and has no function that reads it back, so the timer runs on the server and could not be traced; the vehicle lifetime manager (UBHVehicleLifetimeManager) holds separate server-side lifetime settings. Every asset that sets InventorySettings makes the vehicle inventory accessible; the assets without it are stationary emplacement, Bobcat, Dune Buggy, Fixed-wing airplane. The M113 APC SV also sets an unnamed float of 0.1 there. FactionSettings appears only on the stationary emplacements: none changes faction (bShouldFactionChange false), and STN_04 turns neutral after 36,000 s. Every asset sets the same lock cue tag GameplayCue.Vehicle.LockStateChange, so locking has no per-vehicle setting here.
Same-faction-only occupants (bAllowSameFactionOccupantsOnly true on the WDVehicleInteractionsDataAsset): DA_VehicleInteractions_ROT_02, DA_VehicleInteractions_SPW, DA_VehicleInteractions_TNK_03, DA_VehicleInteractions_TNK_01_Artillery, DA_VehicleInteractions_TNK_01_Heavy, DA_VehicleInteractions_TNK_04 (6 of 28 interaction assets). Native (the enter check of the vehicle operator component, 0x7693880): with the flag set, a player may enter only when the vehicle’s faction equals the player’s faction or the vehicle is neutral, and every player already seated must also match the vehicle’s faction; otherwise the enter is denied. Without the flag the check is skipped, and a separate rule (a vehicle state test, not decoded) still denies enemy-faction entry to a non-neutral vehicle. Every other vehicle leaves the flag unset. MaxInteractDistanceRadius is set on one asset only.
Ramming (WD_MVF_DestructionInvokerFragment, one per platform asset)
| Platform asset | Vehicle | Vehicle mass | Collision box size X x Y x Z (cm) | Box centre (cm) | Damage received per destroyed chunk | Counter-force multiplier | Velocity offset multiplier |
|---|---|---|---|---|---|---|---|
VP_ROT_02 | Havoc | 1,200 | 1,000 x 300 x 180 | 50, 0, 200 | 200 | 0 | 0.2 |
VP_ROT_03 | MH-6 / AH-6M / AH-6R | 1,200 | 400 x 210 x 180 | 0, 0, 150 | 150 | 0 | 0.2 |
VP_ROT_04 | Z20 Lakota | 1,200 | 1,000 x 300 x 240 | 50, 0, 220 | 200 | 0 | 0.2 |
VP_SPW | M113 APC SV | 2,000 | 675 x 286 x 198 | 0, 0, 152.1 | 3 | 3 | 0.25 |
VP_TNK_01_AntiAir | Flakpanzer Gepard | 1,900 | 675 x 286 x 198 | 0, 0, 152.1 | 3 | 5 | 0.25 |
VP_TNK_01_Artillery | SPH-2 | 1,900 | 675 x 286 x 198 | 0, 0, 152.1 | 3 | 5 | 0.25 |
VP_TNK_01_Heavy | L2A6 | 1,900 | 675 x 286 x 198 | 0, 0, 152.1 | 3 | 5 | 0.25 |
VP_TNK_04 | T-72B3 | 1,900 | 675 x 286 x 198 | 0, 0, 152.1 | 3 | 5 | 0.25 |
VP_WHL_01 | Bobcat | 400 | 225 x 100 x 90 | 0, 0, 97.5 | - | 0.5 | 0.2 |
VP_WHL_02 | Kodiak family | 800 | 562.5 x 200 x 180 | 0, 0, 97.5 | - | - | 0.075 |
VP_WHL_05 | Humvee family | 800 | 562.5 x 200 x 180 | 0, 0, 97.5 | - | - | 0.075 |
VP_WHL_06_DuneBuggy | Dune Buggy | 600 | 562.5 x 200 x 180 | 0, 0, 97.5 | - | - | 0.075 |
VP_WHL_07 | Ural family | 800 | 900 x 330 x 250 | 0, 0, 97.5 | - | - | 0.075 |
VP_WHL_08 | Wolf-110 family | 800 | 562.5 x 200 x 180 | 0, 0, 97.5 | - | - | 0.075 |
The fragment gives a vehicle a box that breaks destructible geometry it runs into. Native (the destruction-invoker component, 0x6BC96E0, 0x6BC9160, 0x6BC9250, 0x6BC9450): every physics step the component sweeps the collision box (centre and size from the table) along the vehicle’s velocity, shifting the box ahead by velocity times VelocityOffsetMultiplier (a look-ahead in seconds: 0.2 s on helicopters, 0.25 s on tracked vehicles, 0.075 s on wheeled ones). Ramming only counts when speed times VehicleMass reaches a threshold held by the destruction system (its value was not read). For each destructible chunk that breaks, the vehicle is damaged by DamageRecievedWhenChunkDestroyed (a vehicle health damage call, once per chunk), and an amount supplied by the destruction event is added to a pending total (clamped to 0 to 300,000) that a delayed callback turns into an impulse on the vehicle against the direction of its velocity, scaled by CounterForceMultiplier (zero on helicopters, so they take no recoil). A - in the table is a field the asset does not set (the component then uses the zero default). A - is a field the asset does not set (a native default applies); bPlayerCustomizable is false on the platforms that set it.