Wardogs: Vehicle Control Assists
Generated by _tools/vehicle_round40_tables.py (--write refreshes this page and assets/data/vehicle-arcade-controls.json / vehicle-rotary-assists.json). Values are shown as stored in the cooked data; - means the asset does not set the field (the native default applies, not read). Evidence: round 40.
1. Wheeled arcade controls (DA_ArcadeControls_*)
Each wheeled vehicle names one MWheeledVehicleArcadeDataAsset. The names are the engine’s own: recover power pushes the car back on line after under- or oversteer between the minimum and full recover speeds; anti-roll powers resist body roll per axle; drift ratios shape the drift assist; lean and pitch angles limit body lean; predictive landing and airborne damping act while airborne. How each number maps to the feel of the car is native and not traced.
| Asset | Understeer recover | Oversteer recover | Recover min speed | Recover full speed | Drift assist | Drift front | Drift rear | Front anti-roll | Rear anti-roll | Anti-roll spring | Damper smooth | Traction ratio | Traction max speed | Torque splitter | Balance assist | Lean min speed | Max lean angle | Max pitch angle | Lean in air | Predictive landing | Predict time (s) | Extra time buffer (s) | Air roll torque | Air pitch torque | Airborne damping |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DA_ArcadeControls_WHL_01 | - | 50 | - | 35 | - | -1 | 3 | 100 | 100 | 1250 | 0.1 | 200 | 50 | 100 | True | 5 | 50 | 50 | - | True | - | - | - | - | 1 |
DA_ArcadeControls_WHL_02 | 100 | 100 | 0 | 200 | True | 5 | 60 | - | - | - | - | - | - | - | - | - | - | - | - | True | - | - | 0 | 400000 | 1 |
DA_ArcadeControls_WHL_05_Humvee | 100 | 100 | 0 | 120 | - | - | - | 40 | 40 | - | - | - | - | - | - | - | - | - | - | True | 1 | - | 0 | 400000 | 1 |
DA_ArcadeControls_WHL_06_DuneBuggy | 100 | 100 | 0 | 120 | - | 1 | 1 | 35 | - | 1 | 0.1 | - | - | - | - | 5 | 15 | 20 | False | True | 3.5 | 0.2 | - | - | 1.5 |
DA_ArcadeControls_WHL_07 | 100 | 100 | 0 | 200 | - | 2.5 | 30 | - | - | - | - | - | - | - | - | - | - | - | False | - | - | - | 0 | 400000 | 1 |
DA_ArcadeControls_WHL_08 | 100 | 100 | 0 | 120 | - | - | - | 40 | 40 | - | - | - | - | - | - | - | - | - | - | True | 1 | - | 0 | 400000 | 1 |
Fields set by no asset appear nowhere in the table. The Kodiak/SUV (WHL_02) and Ural (WHL_07) set no anti-roll power; the Wolf-110 (WHL_08) and Humvee (WHL_05) share the same values.
2. Wheeled tyre models (MWheeledVehicleTireModelSimpleDataAsset)
Only three wheeled vehicles name a simple tyre model asset: WHL_01, WHL_02 (Kodiak and Pickup) and WHL_07 (Ural). The eight coefficients are the engine’s own names (Ln* longitudinal, Lt* lateral; b, c, d, e follow the stiffness, shape, peak and curvature pattern of a Pacejka-style magic formula; that reading comes from the names, it is not confirmed in code). The asset also stores two editor preview curves (force against slip); the largest magnitude and the slip it occurs at are listed.
| Asset | Lnb | Lnc | Lnd | Lne | Ltb | Ltc | Ltd | Lte | Longitudinal preview peak | Lateral preview peak |
|---|---|---|---|---|---|---|---|---|---|---|
DA_WHL_01_TireModelSimple | 14 | 1.9 | 1.35 | 1 | 10 | 1.2 | 1.65 | 0.97 | -4049.8 at slip -0.14 | -4776.5 at slip -1.492 |
DA_SimpleTireModel_WHL_02 | 10 | 1.15 | 1.55 | 0.7 | 8.8 | 1.15 | 1.3 | 0.65 | -4645.5 at slip -1 | -3900 at slip -1.253 |
DA_SimpleTireModel_WHL_07 | 10 | 1.65 | 0.9 | 0.85 | 9.5 | 1.35 | 1.32 | 0.65 | -2700 at slip -0.26 | -3960 at slip -0.433 |
The other wheeled vehicles (WHL_05, WHL_06, WHL_08) name no tyre model asset in the exported data.
3. Helicopter flight assists
Each helicopter has one BHRotaryFlightDataAsset. The pitch, roll, yaw and collective controls each hold a list of assists. An assist is on or off in the data (Enabled), belongs to a category (Core, Stability, AutoHover, EnvelopeLimits, TurnCoordination), runs when all its conditions are true, and its body computes the control value (a PID loop, a damping interpolation, or a fixed value). Speeds are km/h, angular rates deg/s, as the condition names state.
ROT_02 (DA_ROT_02_FlightCharacteristics)
Rotor: MaxLiftCoeff 1.8, BladeAngleOfAttackForStall_deg 40, RotorRadius 600, LiftForcesAppliedAtRadius 1000, LowAltitude_m 40, HighAltitude_m 200, MaxAltitude_m 280, HighAltitudeRotorEfficiency 0.65, MaxAltitudeRotorEfficiency 0.4, TailRotorNeutralTorque 6e+08.
Control force: PitchControlForce Type RotorBladeAngle, MaxTorque 4.8e+09, MaxRotorBladeAngleDelta 1.3; RollControlForce Type RotorBladeAngle, MaxTorque 1.5e+09, MaxRotorBladeAngleDelta 0.42; YawControlForce MaxTorque 3.3e+08; CollectiveControlForce Type RotorBladeAngle, MinForce 400000, MaxForce 2.8e+06, MinRotorBladeAngleDelta -0.5, MaxRotorBladeAngleDelta 10.
Pitch
| Assist | Category | Enabled | Conditions | Body |
|---|---|---|---|---|
| Dampen pressed inputs | Core | yes | input CyclicY = 1 | damp via INTERP_TO InterpSpeed 7 |
| Set to 0 on ground | Core | yes | on ground; input CyclicY = 0 | set to 0 |
| Stabilize after input released | Stability | yes | stable (LocalAngularVelocity_DegPerS Y below 0.572958, for 0.06 s); input CyclicY = 0 | PID P 0.558505 I 0 D 0.139626 on LocalAngularVelocity_DegPerS Y |
| Level at low speeds | Stability | yes | input CyclicY = 0; WorldVelocity_KmPerH Length < 36 (At low speeds) | PID P 0.00436332 I 0 D 0.00349066 on WorldRotation_Deg Y max out 0.035 |
| Stabilize released pitch when collective up | Stability | yes | input CyclicY = 0; input Collective = 1; WorldRotation_Deg Y > 0 (Nose up) | PID P 0.0122173 I 0 D 0.0305433 on LocalAngularVelocity_DegPerS Y |
| Stabilize released pitch when collective down | Stability | no | input CyclicY = 0; input Collective = -1; WorldRotation_Deg Y < 0 (Nose down) | PID P 0.00872665 I 0 D 0.0244346 on LocalAngularVelocity_DegPerS Y |
| Snap to 0 skid pitch | TurnCoordination | yes | input CyclicY = 0; WorldVelocity_KmPerH Length > 18 (Speed must be above threshold to avoid faulty skid angles); SkidAngle_Deg Y < 0.572958 | PID P 0 I 0 D 0.00767945 on SkidAngle_Deg Y |
| Dampen released inputs | Core | yes | input CyclicY = 0 | damp via INTERP_TO InterpSpeed 7 |
Roll
| Assist | Category | Enabled | Conditions | Body |
|---|---|---|---|---|
| Dampen pressed inputs | Core | yes | input CyclicX = 1 | damp via INTERP_TO InterpSpeed 7 |
| Set to 0 on ground | Core | yes | on ground; input CyclicX = 0 | set to 0 |
| Stabilize after input released | Stability | yes | stable (LocalAngularVelocity_DegPerS X below 2.86479); input CyclicX = 0 | PID P 0.20944 I 0.00174533 D 0.0872665 on LocalAngularVelocity_DegPerS X |
| Level at low speeds | Stability | yes | input CyclicX = 0; WorldVelocity_KmPerH Length < 36 (At low speeds) | PID P 0.00436332 I 0 D 0.00349066 on WorldRotation_Deg X max out 0.035 |
| Prevent drag torque overshoot | Core | no | LocalAngularVelocity_DegPerS X < 28.6479 (Roll speed close to zero); input CyclicX = 0 | PID P 0.0872665 I 0 D 0.0523599 on LocalAngularVelocity_DegPerS X |
| Dampen inputs | Core | no | input CyclicX = 0 | damp via INTERP_TO InterpSpeed 4 |
Yaw
| Assist | Category | Enabled | Conditions | Body |
|---|---|---|---|---|
| Dampen pressed inputs | Core | yes | input Pedals = 1 | damp via INTERP_TO InterpSpeed 7 |
| Set to 0 on ground | Core | no | on ground; input Pedals = 0 | set to 0 |
| Stabilize after input released | Stability | yes | stable (LocalAngularVelocity_DegPerS Z below 0.286479); input Pedals = 0 | PID P 0.2 I 0.05 D 0.10472 on LocalAngularVelocity_DegPerS Z |
| Prevent drag torque overshoot | Core | no | LocalAngularVelocity_DegPerS Z < 5.72958 (Yaw value close to zero); input Pedals = 0 | PID P 0.10472 I 0 D 0.10472 on LocalAngularVelocity_DegPerS Z |
| Dampen angular velocity near 0 yaw | Core | yes | SkidAngle_Deg Z < 18.9076; input Pedals = 0; LocalAngularVelocity_DegPerS Z > 2.86479 (Don’t dampen low yaw angular speed as it is drag trying to aling the heli with the flight direction) | PID P 0.0523599 I 0 D 0.0523599 on LocalAngularVelocity_DegPerS Z |
| Dampen inputs | Core | yes | input Pedals = 0 | damp via INTERP_TO InterpSpeed 20 |
Collective
| Assist | Category | Enabled | Conditions | Body |
|---|---|---|---|---|
| Limit climb rate | EnvelopeLimits | yes | WorldVelocity_KmPerH Z > 36; input Collective = 1 | PID P 0.111111 I 0 D 0.166667 on WorldVelocity_KmPerH Z target 36 |
| Limit sink rate | EnvelopeLimits | no | WorldVelocity_KmPerH Z < -50; input Collective = 1 | PID P 0.166667 I 0 D 0.111111 on WorldVelocity_KmPerH Z target -31.32 |
| Reset collective on ground when engaged | Core | no | was on ground at start; input Collective = 1 | damp via EASE_IN_EASE_OUT InterpTimeS 2.5 exp 3 |
| Dampen pressed inputs - up | Core | yes | input Collective = 1 | damp via EASE_IN_EASE_OUT InterpTimeS 1.5 exp 1.25 |
| Dampen pressed inputs - down | Core | yes | input Collective = -1 | damp via EASE_IN_EASE_OUT InterpTimeS 1.5 exp 1.25 |
| Set to -1 on ground | Core | yes | input Collective = 0; on ground | set to -1 |
| Stabilize after input released | AutoHover | yes | stable (WorldVelocity_KmPerH Z below 0.00036); input Collective = 0 | PID P 0.0555556 I 0 D 0.0555556 on WorldVelocity_KmPerH Z |
| Hover assist | AutoHover | yes | input Collective = 0; has pilot | PID P 0.0555556 I 0 D 0.0555556 on WorldVelocity_KmPerH Z |
| Dampen released inputs | Core | yes | input Collective = 0 | damp via EASE_IN_EASE_OUT InterpTimeS 1.5 exp 1.5 |
ROT_03 (DA_ROT_03_FlightCharacteristicsDataAsset2000KGLight)
Rotor: MaxLiftCoeff 1.25, LowAltitude_m 75, HighAltitude_m 250, MaxAltitude_m 325, HighAltitudeRotorEfficiency 0.75, MaxAltitudeRotorEfficiency 0.45, TailRotorNeutralTorque 6e+08.
Control force: PitchControlForce Type RotorBladeAngle, MaxTorque 4.8e+09, MaxRotorBladeAngleDelta 2; RollControlForce Type RotorBladeAngle, MaxTorque 1.5e+09, MaxRotorBladeAngleDelta 0.6; YawControlForce MaxTorque 3.7e+07; CollectiveControlForce Type RotorBladeAngle, MinForce 400000, MaxForce 2.8e+06, MinRotorBladeAngleDelta -3, MaxRotorBladeAngleDelta 14.5.
Pitch
| Assist | Category | Enabled | Conditions | Body |
|---|---|---|---|---|
| Stabilize after input released | Stability | yes | input CyclicY = 0; stable (LocalAngularVelocity_DegPerS Y below 0.572958, for 0.06 s) | PID P 0.02 I 0 D 0 on LocalAngularVelocity_DegPerS Y |
| Pitch input pressed | Core | yes | input CyclicY GreaterThan 0 | RotaryMovementControlMultiAssist |
| Pitch input released | Core | yes | input CyclicY = 0 | RotaryMovementControlMultiAssist |
Roll
| Assist | Category | Enabled | Conditions | Body |
|---|---|---|---|---|
| Stabilize after input released | Stability | yes | input CyclicX = 0; stable (LocalAngularVelocity_DegPerS X below 0.6, for 0.3 s) | PID P 0.1 I 0.002 D 0.05 on LocalAngularVelocity_DegPerS X |
| Roll input pressed | Core | yes | input CyclicX GreaterThan 0 | RotaryMovementControlMultiAssist |
| Roll input released | Core | yes | input CyclicX = 0 | RotaryMovementControlMultiAssist |
Yaw
| Assist | Category | Enabled | Conditions | Body |
|---|---|---|---|---|
| Yaw Damping | Core | yes | input Pedals = 0 | damp via EASE_IN InterpTimeS 0.35 exp 2.5 |
| Stabilize after input released | Stability | yes | input Pedals = 0; stable (LocalAngularVelocity_DegPerS Z below 1, for 0.5 s); YawLimitedAtSpeed | PID P 0.45 I 0.05 D 0.0872665 on LocalAngularVelocity_DegPerS Z |
| Pedals input pressed | Core | yes | input Pedals GreaterThan 0.05 | RotaryMovementControlMultiAssist |
| Pedals input released | Core | yes | input Pedals = 0 | RotaryMovementControlMultiAssist |
Collective
| Assist | Category | Enabled | Conditions | Body |
|---|---|---|---|---|
| Limit climb rate | EnvelopeLimits | yes | WorldVelocity_KmPerH Z > 36; input Collective = 1 | PID P 0.0555556 I 0 D 0.0555556 on WorldVelocity_KmPerH Z target 36 |
| Limit sink rate | EnvelopeLimits | no | WorldVelocity_KmPerH Z < -36; input Collective = 1 | PID P 0 I 0 D 0 on WorldVelocity_KmPerH Z target -36 |
| Reset collective on ground when engaged | Core | no | was on ground at start; input Collective = 1 | damp via EASE_IN_EASE_OUT InterpTimeS 2.5 exp 3 |
| Dampen pressed inputs - up | Core | yes | input Collective = 1 | damp via EASE_IN_EASE_OUT InterpTimeS 1.5 exp 1.25 |
| Dampen pressed inputs - down | Core | yes | input Collective = -1 | damp via EASE_IN_EASE_OUT InterpTimeS 1.5 exp 1.25 |
| Set to -1 on ground | Core | yes | input Collective = 0; on ground | set to -1 |
| Stabilize after input released | AutoHover | yes | stable (WorldVelocity_KmPerH Z below 0.00036); input Collective = 0 | PID P 0.02 I 0 D 0.02 on WorldVelocity_KmPerH Z |
| Hover assist | AutoHover | yes | input Collective = 0; has pilot | PID P 0.555556 I 0 D 0.555556 on WorldVelocity_KmPerH Z |
| Dampen released inputs | Core | yes | input Collective = 0 | damp via EASE_IN_EASE_OUT InterpTimeS 1.5 exp 1.5 |
ROT_04 (DA_ROT_04_FlightCharacteristicsDataAsset)
Rotor: MaxLiftCoeff 5.75, StallLiftCoeff 3, RotorRadius 800, LiftForcesAppliedAtRadius 275, LowAltitude_m 50, HighAltitude_m 250, MaxAltitude_m 350, HighAltitudeRotorEfficiency 0.65, MaxAltitudeRotorEfficiency 0.4, TailRotorNeutralTorque 6e+08.
Control force: PitchControlForce Type RotorBladeAngle, MaxTorque 4.8e+09, MaxRotorBladeAngleDelta 6; RollControlForce Type RotorBladeAngle, MaxTorque 1.5e+09, MaxRotorBladeAngleDelta 0.85; YawControlForce MaxTorque 5e+08; CollectiveControlForce Type RotorBladeAngle, MinForce 400000, MaxForce 3.4e+06, MinRotorBladeAngleDelta -1.9, MaxRotorBladeAngleDelta 10.67.
Pitch
| Assist | Category | Enabled | Conditions | Body |
|---|---|---|---|---|
| Stabilize after input released | Stability | yes | stable (LocalAngularVelocity_DegPerS Y below 0.572958, for 0.06 s); input CyclicY = 0 | PID P 0.296706 I 0 D 0.10472 on LocalAngularVelocity_DegPerS Y |
| Pitch input pressed | Core | yes | input CyclicY GreaterThan 0 | RotaryMovementControlMultiAssist |
| Pitch input released | Core | yes | input CyclicY = 0 | RotaryMovementControlMultiAssist |
Roll
| Assist | Category | Enabled | Conditions | Body |
|---|---|---|---|---|
| Stabilize after input released | Stability | yes | stable (LocalAngularVelocity_DegPerS X below 0.6, for 0.5 s); input CyclicX = 0 | PID P 0.335103 I 0 D 0.125664 on LocalAngularVelocity_DegPerS X max out 10 |
| Roll input pressed | Core | yes | input CyclicX GreaterThan 0 | RotaryMovementControlMultiAssist |
| Roll input released | Core | yes | input CyclicX = 0 | RotaryMovementControlMultiAssist |
Yaw
| Assist | Category | Enabled | Conditions | Body |
|---|---|---|---|---|
| Stabilize after input released | Stability | yes | input Pedals = 0; stable (LocalAngularVelocity_DegPerS Z below 0.286479, for 0.06 s); YawLimitedAtSpeed | PID P 0.279253 I 0 D 0.139626 on LocalAngularVelocity_DegPerS Z |
| Pedals input pressed | Core | yes | input Pedals GreaterThan 0 | RotaryMovementControlMultiAssist |
| Pedals input released | Core | yes | input Pedals = 0 | RotaryMovementControlMultiAssist |
Collective
| Assist | Category | Enabled | Conditions | Body |
|---|---|---|---|---|
| Reset when airfoil stalling | Core | no | SmoothedInfluenceConditions | set to -1 |
| Limit climb rate | EnvelopeLimits | yes | WorldVelocity_KmPerH Z > 36; input Collective = 1 | PID P 0.35 I 0 D 0.25 on WorldVelocity_KmPerH Z target 36 |
| Limit sink rate | EnvelopeLimits | yes | WorldVelocity_KmPerH Z < -36; input Collective = 1 | PID P 0.1 I 0 D 0.1 on WorldVelocity_KmPerH Z target -36 |
| Reset collective on ground when engaged | Core | no | was on ground at start; input Collective = 1 | damp via EASE_IN_EASE_OUT InterpTimeS 2.5 exp 3 |
| Dampen pressed inputs - up | Core | yes | input Collective GreaterThan 0 | damp via EASE_IN_EASE_OUT InterpTimeS 1 exp 1.25 |
| Dampen pressed inputs - down | Core | yes | input Collective LessThan 0 | damp via EASE_IN_EASE_OUT InterpTimeS 1.5 exp 1.25 |
| Set to -1 on ground | Core | yes | input Collective = 0; on ground | set to -1 |
| Stabilize after input released | AutoHover | yes | stable (WorldVelocity_KmPerH Z below 0.00036); input Collective = 0 | PID P 0.0555556 I 0 D 0.0555556 on WorldVelocity_KmPerH Z |
| Hover assist | AutoHover | yes | input Collective = 0; has pilot | PID P 0.0555556 I 0 D 0.0555556 on WorldVelocity_KmPerH Z |
| Dampen released inputs | Core | yes | input Collective = 0 | damp via EASE_IN_EASE_OUT InterpTimeS 1.5 exp 1.5 |