Wardogs: Vehicle Inputs and Explosive Effects

Generated by _tools/vehicle_round41_tables.py (--write refreshes this page and assets/data/vehicle-input-controls.json, explosive-vs-vehicles.json, weapon-spread-curves.json, grenade-throwback-gate.json, air-vehicle-mass-override.json). Values are shown as stored in the cooked data; - means the asset does not set the field. Evidence: round 41.

1. Wheeled input tuning (DA_Input_*)

Each wheeled vehicle names one MWheeledVehicleInputDataAsset. The names are the engine’s own: sensitivity scales the raw stick or key input, input gravity is the return-to-centre rate, the deadzone is the stick range ignored, steering assist is an extra correction; the speed and limit curves shape steering against vehicle speed, and the engagement curves shape throttle, brake and clutch against pedal travel. Units are not labelled by the game.

Asset Steer sensitivity Steer input gravity Steer deadzone Steering assist Throttle sensitivity Braking sensitivity
DA_WHL_01_Input 1.3 1 0.05 20 2 1
DA_Input_WHL_02 - 2 - - - -
DA_Input_WHL_05 2.5 2 - - 2 6.5
DA_Input_WHL_06_DuneBuggy 1.25 2 - - 1.75 1.25
DA_Input_WHL_07 - 2 - - 1 -
DA_Input_WHL_08 - 2.6 - - 1.5 6.5

The curves each asset names, as (input: output) keys:

Asset Slot Curve Keys
DA_WHL_01_Input SteerSpeedCurve CRV_SteerSpeed_3 0: 2.5; 41.5: 2.5; 59.4: 2.125; 75: 1
DA_WHL_01_Input SteerLimitCurve CRV_SteerLimit_1 0: 100; 80: 80
DA_WHL_01_Input ThrottleEngagement CRV_ThrottleEngagement 0: 0; 1: 1
DA_WHL_01_Input BrakeEngagement CRV_BrakeEngagement 0: 0; 1: 1
DA_WHL_01_Input ClutchEngagement CRV_ClutchEngagement 0: 0; 0.1: 0; 1: 1
DA_Input_WHL_02 SteerSpeedCurve CRV_SteerSpeedVariant 0: 1.425; 40: 1.4; 50: 1.2; 113.6: 0.6; 160: 0.5
DA_Input_WHL_02 SteerLimitCurve CRV_SteerLimitVariant 2.1: 97.5; 32.5: 95; 66.4: 66.25; 107.9: 51.25
DA_Input_WHL_02 ThrottleEngagement CRV_ThrottleEngagement 0: 0; 1: 1
DA_Input_WHL_02 BrakeEngagement CRV_BrakeEngagement 0: 0; 1: 1
DA_Input_WHL_02 ClutchEngagement CRV_ClutchEngagement 0: 0; 0.1: 0; 1: 1
DA_Input_WHL_05 SteerSpeedCurve CRV_SteerSpeedVariant_WHL_05 0.6: 2.138; 38.5: 1.4; 90: 1
DA_Input_WHL_05 SteerLimitCurve CRV_SteerLimitVariant_WHL_05 2.1: 97.5; 32.5: 95; 66: 72; 113: 62
DA_Input_WHL_05 ThrottleEngagement CRV_ThrottleEngagement_WHL_05 0: 0; 1: 1
DA_Input_WHL_05 BrakeEngagement CRV_BrakeEngagement_WHL_05 0: 0; 0.1: 1
DA_Input_WHL_05 ClutchEngagement CRV_ClutchEngagement_WHL_05 0: 0; 0.1: 0; 1: 1
DA_Input_WHL_06_DuneBuggy SteerSpeedCurve CRV_SteerSpeed_Reactive 0: 1.5; 100: 1
DA_Input_WHL_06_DuneBuggy SteerLimitCurve CRV_SteerLimitVariant 0: 100; 35: 80; 55.002: 61.855; 88: 32; 130: 20
DA_Input_WHL_06_DuneBuggy ThrottleEngagement CRV_ThrottleEngagement 0: 0; 1: 1
DA_Input_WHL_06_DuneBuggy BrakeEngagement CRV_BrakeEngagement 0: 0; 1: 1
DA_Input_WHL_06_DuneBuggy ClutchEngagement CRV_ClutchEngagement 0: 0; 0.1: 0; 1: 1
DA_Input_WHL_07 SteerSpeedCurve CRV_SteerSpeedVariant_WHL_07 0: 1.425; 21: 1; 42.1: 0.65; 80: 0.5
DA_Input_WHL_07 SteerLimitCurve CRV_SteerLimitVariant_WHL_07 2.1: 97.5; 23.2: 90; 48.8: 67.5; 80: 51.25
DA_Input_WHL_07 ThrottleEngagement CRV_ThrottleEngagement_WHL_07 0: 0; 1: 1
DA_Input_WHL_07 BrakeEngagement CRV_BrakeEngagement_WHL_07 0: 0; 1: 1
DA_Input_WHL_07 ClutchEngagement CRV_ClutchEngagement_WHL_07 0: 0; 0.1: 0; 1: 1
DA_Input_WHL_08 SteerSpeedCurve CRV_SteerSpeedVariant_WHL_08 0.6: 2.138; 45: 1.25; 85: 0.9
DA_Input_WHL_08 SteerLimitCurve CRV_SteerLimitVariant_WHL_08 2.1: 97.5; 32.5: 95; 66.4: 66.25; 107.9: 51.25
DA_Input_WHL_08 ThrottleEngagement CRV_ThrottleEngagement_WHL_08 0: 0; 1: 1
DA_Input_WHL_08 BrakeEngagement CRV_BrakeEngagement_WHL_08 0: 0; 0.1: 1
DA_Input_WHL_08 ClutchEngagement CRV_ClutchEngagement_WHL_08 0: 0; 0.1: 0; 1: 1

2. Vehicle smoke screen (tanks and the M113)

Four vehicle assets carry the smoke block (TNK_01 Heavy, TNK_03 Gepard, TNK_04 T-72B3, SPW M113). In the native handler (0x766F240) the first float starts a timer that clears the “smoke active” flag and the second float starts a timer that marks the smoke ready again, so they read as a 16 s active window and a 90 s cooldown. The byte is the starting number of smoke charges (SPW 255, the tanks 1), by analogy with the flare struct’s starting amount (the load path was not traced). The vector (0, 400, 200) is stored with the effect and is read as a spawn offset (not traced).

Gameplay systems asset Starting charges Active window (s) Cooldown (s) Offset (X, Y, Z)
DA_GameplaySystems_SPW 255 16 90 0, 400, 200
DA_GameplaySystems_TNK_03 1 16 90 0, 400, 200
DA_GameplaySystems_TNK_01_Heavy 1 16 90 0, 400, 200
DA_GameplaySystems_TNK_04 1 16 90 0, 400, 200

3. Stingray drone (STN_05) projectile

The drone is a projectile actor (BP_Drone_Projectile). Projectile asset DA_Drone_ProjectileData: base damage 120, explosive radius 1000, effective radius 500, minimum explosive damage 15, falloff 0.45, blunt damage 100, impulse 2500 / Z 3500, length 130, diameter 10, mass 10, arming delay 0.1 s, maximum lifetime 500, typical speed 15000, thrust speed 22000, damage tag Meta.Damage.Explosive.Drone. The Blueprint holds a box collision of half extents 46.6431 x 46 x 18.7716 (cm), a camera of field of view 50 and a skeletal mesh at scale 0.7.

4. Explosives against each vehicle row

Every entry in DT_GlobalDamage_VehicleData* whose source tag is the listed explosive. The amount is the table’s own number: Percentage_Ongoing multiplies the running damage by 1 + amount/100 (so -25 keeps 75 %, +200 triples it), Add adds a flat amount. Other entries on the same row (the generic Explosive rows, rocket rows, hit locations) apply in addition and are in the damage pipeline. A vehicle row missing from a column has no entry for that source. The Frag grenade column lists the plain grenade source; where the entry also requires the inner radius that is marked.

Vehicle row AT mine C4 Claymore IED Frag grenade 40 mm grenade Drone
Air.Rotary.Havoc +200 -15 -75 +45 -20 (+Inner) -30 +450
Air.Rotary.LittleBird +200 +0 -50 +25 +50 (+Inner) -40 +500
Air.Rotary.ROT_04 +200 -35 -75 +30 +0 (+Inner) -20 +450
Land.Tracked.Leopard.Spawn +100 +15 -95 +150 -80 (+Inner) +20 +500
Land.Tracked.TNK_01.AntiAir +145 -25 -95 +30 -60 (+Inner) +20 +450
Land.Tracked.TNK_01.Artillery +145 -25 -95 +10 -60 (+Inner) +20 +500
Land.Tracked.TNK_01.Heavy +145 -25 -95 +30 -60 (+Inner) +20 +450
Land.Tracked.TNK_04.Default +145 -25 -95 +30 -60 (+Inner) +20 / -95 +450
Land.Wheeled.Bobcat +200 - -50 +150 +0 (+Inner) +250 (+Explosive.Rocket) +500
Land.Wheeled.DuneBuggy +200 +0 -50 +150 +5 (+Inner) +300 +500
Land.Wheeled.Humvee.Default +200 -20 -75 +150 -35 (+Inner) +75 +350
Land.Wheeled.Humvee.MachineGun +200 -35 -75 +150 -40 (+Inner) +75 +350
Land.Wheeled.Humvee.Minigun +200 -52.5 -75 +150 -45 (+Inner) +75 +350
Land.Wheeled.Patriot.Kodiak +200 +0 -50 +150 -17.5 (+Inner) +300 +500
Land.Wheeled.Ural +250 -55 -65 +50 -15 (+Inner) -30 (+Inner) +500
Land.Wheeled.WHL_08.Default +200 -10 -62.5 +150 -26 (+Inner) +187.5 +425
Land.Wheeled.WHL_08.MachineGun +200 -17.5 -62.5 +150 -29 (+Inner) +187.5 +425
Stationary.Mistral - +1500 - +150 +0 - -
Stationary.Mortar - +300 - +400 +0 - -
Stationary.Phalanx - +700 - +2000 +0 - -
Stationary.RadioTower +200 +0 -50 +150 +100 (+Inner) - -
Stationary.STN_05 - +300 / +300 - +400 / +400 +0 / +0 - -

5. Weapon spread curves (CT_Weapon_Spread)

One curve table, 29 rows named <class>.<stance> (or a mounted-gun name). Each row is a two-key linear curve from input 0 to input 1; the output values are spread numbers whose unit and the meaning of the 0 to 1 input (read as the share of the weapon’s maximum spread buildup) are native and not traced. The last column counts the item and weapon-extension assets that name the row.

Row Keys (input: output) Assets naming it
AR.Crouch 0: 2; 1: 4 0
AR.Prone 0: 1.5; 1: 3 0
AR.Stand 0: 3; 1: 6 0
Bow.Crouch 0: 0.5; 1: 1 0
Bow.Prone 0: 0.5; 1: 0.5 0
Bow.Stand 0: 1; 1: 2 0
DMR.Crouch 0: 2; 1: 4 0
DMR.Prone 0: 1; 1: 2 0
DMR.Stand 0: 3; 1: 6 0
LMG.Crouch 0: 2; 1: 4 0
LMG.Prone 0: 1; 1: 2 0
LMG.Stand 0: 3; 1: 6 0
Launcher.Crouch 0: 1.5; 1: 3 0
Launcher.Prone 0: 1; 1: 2 0
Launcher.Stand 0: 2; 1: 4 0
MountedMachineGun 0: 1; 1: 2 0
Pistol.Crouch 0: 2; 1: 4 0
Pistol.Prone 0: 1; 1: 2 0
Pistol.Stand 0: 3; 1: 6 0
SMG.Crouch 0: 1.5; 1: 3 0
SMG.Prone 0: 1; 1: 2 0
SMG.Stand 0: 2; 1: 4 0
Shotgun.Crouch 0: 2; 1: 4 0
Shotgun.Prone 0: 1; 1: 2 0
Shotgun.Stand 0: 3; 1: 6 0
Sniper.Crouch 0: 3; 1: 6 0
Sniper.Prone 0: 2; 1: 4 0
Sniper.Stand 0: 4; 1: 7 0
StableMountedMachineGun 0: 0.5; 1: 1 0

6. Grenade throw-back gate

A thrown grenade can be picked up and thrown back only while a native check (0x6CAE290) passes: the grenade is older than 0.5 s, moves at no more than 250 cm/s, and its fuse timer has more than MinimumRemainingFuseTime seconds left. The fuse timer starts when the grenade is launched, with a length of BaseFuseTime minus the cooked time, so the time left can never exceed BaseFuseTime. The M67 Blueprint sets bCanThrowBack true and MinimumRemainingFuseTime 5.0 against a 4.0 s fuse, so by this reading the gate cannot pass for the M67 as shipped. Other throwables keep the native default (bCanThrowBack false). Evidence: round 42.

Grenade Blueprint Fuse (s) Throw-back enabled Minimum fuse left (s) Gate can pass
M67 B_FragGrenade 4 yes 5 no
Gold M67 (inherits the M67 Blueprint) B_GoldFragGrenade 4 yes 5 no
Molotov B_Molotov 5 no 0 no
Smoke grenades B_SmokeGrenade_Red 3 no 0 no

7. Air vehicle mass override

The airplane and helicopter body data assets (UBHAirplaneBodyDataAsset) can override the physics body mass. The body initialiser (0x531D520) reads the enable flag (+0x52) and the double at +0x58, converts it to a float and hands it unchanged to the physics mass setter (no scaling), so the number is in the engine’s own mass unit, kilograms. The wheeled Characteristics.Mass values use a different path that was not read.

Body asset Override enabled Mass (kg)
DA_FWG_01_Body yes 10000
DA_ROT_02_Body yes 7500
DA_ROT_03_BodyDataAsset yes 722
DA_ROT_03_RocketPods_BodyDataAsset yes 722
DA_ROT_04_Body yes 9500