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 |