Vehicle turret controls
Source: every WDVehicleWeaponDataAsset and every DT_VehicleCrosshair_* table under Plugins/GameFeatures/Vehicles. Generated by _tools/vehicle_round85_tables.py. Evidence and status: round 85 vehicles.
Each vehicle weapon is a WDVehicleWeaponDataAsset (W_*) that holds the weapon tag, the turret mesh, the muzzle sockets, the aim-rotation settings and the camera for each aim state. The damage and ballistics are on the WE_* weapon-extension assets, which are covered in Vehicle weapons and effects. - means the asset does not set the field.
1. Rotation sensitivity and limits
Sensitivity and update-max values are per input device (X, Y). Yaw and pitch limits are in degrees; a limit is only enforced when its bLimit... flag is true. Rotation speed is the turret slew speed in degrees per second.
| Asset | Vehicle | Weapon tag | Mouse sens. | Mouse update max (X / Y) | Gamepad sens. | Gamepad update max (X / Y) | Key sens. | Key rotation allowed | Apply FOV scale |
|---|---|---|---|---|---|---|---|---|---|
W_ROT_02_122mm | ROT_02 | Id.Vehicle.Weapon.ROT_02.122mm | 10 | 60 / 60 | 10 | 60 / 60 | 5 | false | false |
W_ROT_02_30mmCannon | ROT_02 | Id.Vehicle.Weapon.ROT_02.30mmCannon | 35 | 150 / 150 | 60 | 115 / 115 | 95 | - | false |
W_ROT_03_122mm | ROT_03_WeaponVariants | Id.Vehicle.Weapon.ROT_03.122mm | 10 | 60 / 60 | 10 | 60 / 60 | 5 | false | false |
W_ROT_03_AttachedMachineGuns_Grouped | ROT_03_WeaponVariants | Id.Vehicle.Weapon.ROT_03.MachineGun | - | - / - | - | - / - | - | - | false |
W_ROT_04_MountedMachineGun_L | ROT_04_MachineGun | Id.Vehicle.Weapon.ROT_04.MachineGun | 25 | 150 / 150 | 65 | 105 / 105 | 100 | - | false |
W_ROT_04_MountedMachineGun_R | ROT_04_MachineGun | Id.Vehicle.Weapon.ROT_04.MachineGun | 25 | 150 / 150 | 65 | 105 / 105 | 100 | - | false |
W_STN_01_MountedMachineGun | STN_01 | Id.Vehicle.Weapon.STN_01.MistralAA | 20 | 85 / 85 | 100 | 150 / 150 | 100 | - | false |
W_STN_02_MainCannon | STN_02 | Id.Vehicle.Weapon.STN_02.MainCannon | 12.5 | 85 / 85 | 90 | 150 / 150 | 90 | - | false |
W_STN_03_MainBarrel | STN_03 | Id.Vehicle.Weapon.STN_03.MainBarrel | 5 | 50 / 50 | 50 | 120 / 120 | 50 | - | false |
W_STN_05_MainBarrel | STN_05 | Id.Vehicle.Weapon.STN_05.MainBarrel | 5 | 50 / 50 | 50 | 120 / 120 | 50 | - | false |
W_STN_06_MountedMachineGun | STN_06 | Id.Vehicle.Weapon.STN_06.MountedMachineGun | 12.5 | 85 / 85 | 90 | 150 / 150 | 90 | - | false |
W_TNK_03 | TNK_01 | Id.Vehicle.Weapon.TNK_01.Turret.AntiAir | 25 | 150 / 150 | 50 | 150 / 150 | 100 | - | - |
W_TNK_01_Artillery | TNK_01 | Id.Vehicle.Weapon.TNK_01.Turret.Artillery | - | - / - | 5 | 60 / 60 | 6 | - | - |
W_TNK_01_Heavy | TNK_01 | Id.Vehicle.Weapon.TNK_01.Turret.Heavy | 8 | 75 / 75 | 35 | 75 / 75 | 45 | - | - |
W_TNK_01_Heavy_MountedMachineGun | TNK_01 | Id.Vehicle.Weapon.TNK_01.MountedMachineGun | 15 | 125 / 125 | 80 | 85 / 85 | 80 | - | false |
W_TNK_04 | TNK_04 | Id.Vehicle.Weapon.TNK_04.Turret.Default | 8 | 75 / 75 | 45 | 80 / 80 | 45 | - | - |
W_TNK_04_MountedMachineGun | TNK_04 | Id.Vehicle.Weapon.TNK_04.MountedMachineGun | 15 | 125 / 125 | 80 | 85 / 85 | 80 | - | false |
W_SUV_RingTurret | WHL_02_RingTurret | Id.Vehicle.Weapon.WHL_02.SUV.RingTurret | 15 | 125 / 125 | 80 | 85 / 85 | 80 | - | false |
W_WHL_05_Humvee_RingMinigun | WHL_05_Minigun | Id.Vehicle.Weapon.WHL_05.RingMinigun | 25 | 150 / 150 | 100 | 110 / 110 | 100 | - | false |
W_WHL_05_Humvee_RingTurret | WHL_05_RingTurret | Id.Vehicle.Weapon.WHL_05.RingTurret | 15 | 125 / 125 | 80 | 85 / 85 | 80 | - | false |
W_WHL_07_Ural_RingTurret_L | WHL_07_ArmouredBattle | Id.Vehicle.Weapon.WHL_07.MountedMachineGun | 15 | 125 / 125 | 80 | 85 / 85 | 80 | - | false |
W_WHL_07_Ural_RingTurret_R | WHL_07_ArmouredBattle | Id.Vehicle.Weapon.WHL_07.MountedMachineGun | 15 | 125 / 125 | 80 | 85 / 85 | 80 | - | false |
W_WHL_08_RingTurret | WHL_08_RingTurret | Id.Vehicle.Weapon.WHL_08.RingTurret | 15 | 125 / 125 | 80 | 85 / 85 | 80 | - | false |
| Asset | Yaw (deg) | Pitch (deg) | Rotation speed | Simulation | Yaw / pitch drive strength | Stabilisation permitted | Collision target factor |
|---|---|---|---|---|---|---|---|
W_ROT_02_122mm | -45 to 45 | - to 30 | - | - | - / - | - | - |
W_ROT_02_30mmCannon | -65 to 65 | -65 to 12 | 75 | FullSim | 10,000 / 10,000 | true | 0.1 |
W_ROT_03_122mm | -45 to 45 | - to 30 | - | - | - / - | - | - |
W_ROT_03_AttachedMachineGuns_Grouped | -170 to -5 | -30 to 22 | 75 | - | - / - | - | - |
W_ROT_04_MountedMachineGun_L | -46 to 80 | -30 to 22 | 150 | - | - / - | true | - |
W_ROT_04_MountedMachineGun_R | -80 to 46 | -30 to 22 | 150 | - | - / - | true | - |
W_STN_01_MountedMachineGun | 90 to -90 (limit flag not set) | -20 to 55 | 125 | - | - / - | - | - |
W_STN_02_MainCannon | 90 to -90 (limit flag not set) | -5 to 65 | 115 | - | - / - | - | - |
W_STN_03_MainBarrel | 90 to -90 (limit flag not set) | -29 to 15 | 75 | - | - / - | - | - |
W_STN_05_MainBarrel | 90 to -90 (limit flag not set) | - to - | 75 | - | - / - | - | - |
W_STN_06_MountedMachineGun | -85 to 85 | -40 to 20 | 115 | - | - / - | - | - |
W_TNK_03 | -20 to 10 (limit flag not set) | 2.5 to 87.5 | - | FullSim | 3,000 / 3,000 | true | - |
W_TNK_01_Artillery | - to - (limit flag not set) | 2 to 80 | - | FullSim | - / 2,000 | true | - |
W_TNK_01_Heavy | - to - (limit flag not set) | -5 to 25 | - | FullSim | - / 2,000 | true | - |
W_TNK_01_Heavy_MountedMachineGun | 90 to -90 (limit flag not set) | -20 to 30 | 110 | - | - / - | true | - |
W_TNK_04 | - to - (limit flag not set) | -5 to 25 | - | FullSim | - / 2,000 | true | - |
W_TNK_04_MountedMachineGun | 90 to -90 (limit flag not set) | -20 to 30 | 110 | - | - / - | true | - |
W_SUV_RingTurret | -60 to 60 (limit flag not set) | -20 to 30 | 110 | - | - / - | true | - |
W_WHL_05_Humvee_RingMinigun | -60 to 60 (limit flag not set) | -22.5 to 30 | 150 | - | - / - | - | - |
W_WHL_05_Humvee_RingTurret | -60 to 60 (limit flag not set) | -22.5 to 30 | 110 | - | - / - | true | - |
W_WHL_07_Ural_RingTurret_L | -190 to 15 | -22.5 to 22.5 | 110 | - | - / - | true | - |
W_WHL_07_Ural_RingTurret_R | -15 to 190 | -22.5 to 22.5 | 110 | - | - / - | true | - |
W_WHL_08_RingTurret | -60 to 60 (limit flag not set) | -22.5 to 30 | 110 | - | - / - | true | - |
FullSim (a physically simulated turret with drive strength and damping) is used by the Havoc 30 mm cannon and the four tank main guns (TNK_03, TNK_01 Artillery and Heavy, TNK_04); every other weapon uses a plain rotation speed. Where the minimum yaw is larger than the maximum (STN_01: 90 and -90) the pair is stored in that order and the limit flag is unset; read it as a +/- 90 degree arc (the engine behaviour for an unset flag is not traced).
2. Sockets, view and HUD
| Asset | Muzzle sockets | Player attach (source / socket) | Turret mesh | HUD layout | Scope blur alpha | Weapon as view target | Possess FOV lerp (s) | Weapon extensions |
|---|---|---|---|---|---|---|---|---|
W_ROT_02_122mm | S_MuzzleFlash_R, S_MuzzleFlash_L | - / - | SK_AT4_Rockets | Crew.Air | - | false | - | 1 |
W_ROT_02_30mmCannon | S_MuzzleFlash | - / - | SK_Helicopter_Turret | Crew.Air | 1 | - | - | 1 |
W_ROT_03_122mm | S_MuzzleFlash_R, S_MuzzleFlash_L | - / - | SK_AT4_Rockets | Crew.Air | - | false | - | 1 |
W_ROT_03_AttachedMachineGuns_Grouped | muzzleFlash_WeaponExtension_L, muzzleFlash_WeaponExtension_R | - / - | SK_Littlebird_Turrets | Crew.Air | - | false | - | 1 |
W_ROT_04_MountedMachineGun_L | muzzleFlash_WeaponExtension | TurretSkeleton_L / S_Attach_MountedMachineGun_Player | SK_ROT_04_PassengerGun_01a | - | - | - | - | 1 |
W_ROT_04_MountedMachineGun_R | muzzleFlash_WeaponExtension | TurretSkeleton_R / S_Attach_MountedMachineGun_Player | SK_ROT_04_PassengerGun_01a | - | - | - | - | 1 |
W_STN_01_MountedMachineGun | muzzleFlash_WeaponExtension | Chassis / S_Player_Seat | SK_Mistral_Anti_Aircraft | Crew.Land.Stationary | 1 | - | 0.22 | 1 |
W_STN_02_MainCannon | Muzzle | Chassis / S_Player_Seat | SK_Phalanx_CIWS | Crew.Land.Stationary | 1 | - | - | 1 |
W_STN_03_MainBarrel | Muzzle | Chassis / S_Player_Seat | SK_Deployable_Mortar | Crew.Land.Stationary | 1 | - | - | 1 |
W_STN_05_MainBarrel | Muzzle | Chassis / S_Player_Seat | SK_STN_05 | Crew.Land.Stationary | 1 | - | - | 1 |
W_STN_06_MountedMachineGun | muzzleFlash_WeaponExtension | TurretSkeleton / S_BuildableAttach_MountedMachineGun_Player | SK_Browning_Mounted | Crew.Land.Stationary | 1 | - | 0.45 | 1 |
W_TNK_03 | muzzleSocket_Turret_L, muzzleSocket_Turret_R | TurretSkeleton / S_Attach_TankTurret_Player | SK_TNK_03_Turret | Crew.Land | 1 | - | - | 1 |
W_TNK_01_Artillery | S_MuzzleFlash | TurretSkeleton / S_Attach_TankTurret_Player | SK_TNK_02_Turret | Gunner.Artillery | 1 | - | - | 1 |
W_TNK_01_Heavy | S_MuzzleFlash | TurretSkeleton / S_Attach_TankTurret_Player | SK_TNK_01_Turret | Crew.Land | 1 | - | - | 2 |
W_TNK_01_Heavy_MountedMachineGun | muzzleFlash_WeaponExtension | MountedMachineGun / S_Attach_MountedMachineGun_Player | SK_M249_Mounted | Crew.Land | 1 | - | - | 1 |
W_TNK_04 | S_MuzzleFlash | TurretSkeleton / S_Attach_TankTurret_Player | SK_TNK_04_Turret | Crew.Land | 1 | - | - | 2 |
W_TNK_04_MountedMachineGun | muzzleFlash_WeaponExtension | MountedMachineGun / S_Attach_MountedMachineGun_Player | SK_M249_Mounted | Crew.Land | 1 | - | - | 1 |
W_SUV_RingTurret | muzzleFlash_WeaponExtension | TurretSkeleton / S_Attach_MountedMachineGun_Player | SK_M249_Mounted | Crew.Land | - | - | - | 1 |
W_WHL_05_Humvee_RingMinigun | muzzleFlash_WeaponExtension | TurretSkeleton / S_Attach_MountedMinigun_Player | SK_WHL_05_PassengerGun_01b | Crew.Land | - | - | - | 1 |
W_WHL_05_Humvee_RingTurret | muzzleFlash_WeaponExtension | TurretSkeleton / S_Attach_MountedMachineGun_Player | SK_M249_Mounted | Crew.Land | - | - | - | 1 |
W_WHL_07_Ural_RingTurret_L | muzzleFlash_WeaponExtension | TurretSkeleton_L / S_Attach_MountedMachineGun_Player | SK_M249_Mounted | Crew.Land | - | - | - | 1 |
W_WHL_07_Ural_RingTurret_R | muzzleFlash_WeaponExtension | TurretSkeleton_R / S_Attach_MountedMachineGun_Player | SK_M249_Mounted | Crew.Land | - | - | - | 1 |
W_WHL_08_RingTurret | muzzleFlash_WeaponExtension | TurretSkeleton / S_Attach_MountedMachineGun_Player | SK_Browning_Mounted | Crew.Land | - | - | - | 1 |
3. Aim cameras
WeaponStatesCameraData has one entry per aim state (State.Vehicle.Weapon.HipFire, .ADS). Zeroing is the distance the aim point is aligned to when bAlignWithTarget is true; FOV x is the field-of-view multiplier of that state.
| Asset | State | Supported | Camera socket | Align with target | Zeroing | FOV x | Camera behaviour |
|---|---|---|---|---|---|---|---|
W_ROT_02_30mmCannon | ADS | true | S_BarrelCamera | true | 200 | 1 | - |
W_ROT_04_MountedMachineGun_L | HipFire | true | vehicleWeapon_CameraSocket_Hipfire | true | 200 | 1 | - |
W_ROT_04_MountedMachineGun_L | ADS | true | vehicleWeapon_CameraSocket_ADS | true | 200 | 1.2 | - |
W_ROT_04_MountedMachineGun_R | HipFire | true | vehicleWeapon_CameraSocket_Hipfire | true | 200 | 1 | - |
W_ROT_04_MountedMachineGun_R | ADS | true | vehicleWeapon_CameraSocket_ADS | true | 200 | 1.2 | - |
W_STN_01_MountedMachineGun | HipFire | true | AA_Camera_HipFire | true | 200 | 1 | - |
W_STN_01_MountedMachineGun | ADS | true | AA_Camera_ADS | true | 200 | 3 | DA_STN_01_CameraBehaviour_FP |
W_STN_02_MainCannon | ADS | true | AA_Camera_ADS | true | 200 | 1 | DA_STN_02_CameraBehaviour_FP |
W_STN_03_MainBarrel | HipFire | true | AA_Camera_HipFire | false | 200 | 1 | - |
W_STN_03_MainBarrel | ADS | true | AA_Camera_ADS | false | 200 | 3 | - |
W_STN_05_MainBarrel | HipFire | true | AA_Camera_HipFire | false | 200 | 1 | - |
W_STN_06_MountedMachineGun | HipFire | true | vehicleWeapon_PlayerCameraSocket_HipFire | true | 200 | 1 | - |
W_STN_06_MountedMachineGun | ADS | true | vehicleWeapon_PlayerCameraSocket_ADS | true | 200 | 1.2 | - |
W_TNK_03 | HipFire | true | S_WeaponCamera | true | 200 | 1 | - |
W_TNK_03 | ADS | true | S_WeaponCamera_ADS | true | 200 | 1.35 | - |
W_TNK_01_Artillery | ADS | true | S_WeaponCamera | false | 200 | 1 | - |
W_TNK_01_Heavy | ADS | true | S_WeaponCamera | true | 200 | 1 | - |
W_TNK_01_Heavy_MountedMachineGun | HipFire | true | vehicleWeapon_PlayerCameraSocket_HipFire | true | 200 | 1 | - |
W_TNK_01_Heavy_MountedMachineGun | ADS | true | vehicleWeapon_PlayerCameraSocket_ADS | true | 200 | 1.2 | - |
W_TNK_01_Heavy_MountedMachineGun | Crouch | true | vehicleWeapon_PlayerCameraSocket_Crouch | true | 200 | 1 | - |
W_TNK_04 | ADS | true | S_WeaponCamera | true | 200 | 1 | - |
W_TNK_04_MountedMachineGun | HipFire | true | vehicleWeapon_PlayerCameraSocket_HipFire | true | 200 | 1 | - |
W_TNK_04_MountedMachineGun | ADS | true | vehicleWeapon_PlayerCameraSocket_ADS | true | 200 | 1.2 | - |
W_TNK_04_MountedMachineGun | Crouch | true | vehicleWeapon_PlayerCameraSocket_Crouch | true | 200 | 1 | - |
W_SUV_RingTurret | HipFire | true | vehicleWeapon_PlayerCameraSocket_HipFire | true | 200 | 1 | - |
W_SUV_RingTurret | ADS | true | vehicleWeapon_PlayerCameraSocket_ADS | true | 200 | 1.2 | - |
W_SUV_RingTurret | Crouch | true | vehicleWeapon_PlayerCameraSocket_Crouch | true | 200 | 1 | - |
W_WHL_05_Humvee_RingMinigun | HipFire | true | vehicleWeapon_PlayerCameraSocket_HipFire | true | 200 | 1 | - |
W_WHL_05_Humvee_RingMinigun | ADS | true | vehicleWeapon_PlayerCameraSocket_ADS | true | 200 | 1.2 | - |
W_WHL_05_Humvee_RingMinigun | Crouch | true | vehicleWeapon_PlayerCameraSocket_Crouch | true | 200 | 1 | - |
W_WHL_05_Humvee_RingTurret | HipFire | true | vehicleWeapon_PlayerCameraSocket_HipFire | true | 200 | 1 | - |
W_WHL_05_Humvee_RingTurret | ADS | true | vehicleWeapon_PlayerCameraSocket_ADS | true | 200 | 1.2 | - |
W_WHL_05_Humvee_RingTurret | Crouch | true | vehicleWeapon_PlayerCameraSocket_Crouch | true | 200 | 1 | - |
W_WHL_07_Ural_RingTurret_L | HipFire | true | vehicleWeapon_PlayerCameraSocket_HipFire | true | 200 | 1 | - |
W_WHL_07_Ural_RingTurret_L | ADS | true | vehicleWeapon_PlayerCameraSocket_ADS | true | 200 | 1.2 | - |
W_WHL_07_Ural_RingTurret_L | Crouch | true | vehicleWeapon_PlayerCameraSocket_Crouch | true | 200 | 1 | - |
W_WHL_07_Ural_RingTurret_R | HipFire | true | vehicleWeapon_PlayerCameraSocket_HipFire | true | 200 | 1 | - |
W_WHL_07_Ural_RingTurret_R | ADS | true | vehicleWeapon_PlayerCameraSocket_ADS | true | 200 | 1.2 | - |
W_WHL_07_Ural_RingTurret_R | Crouch | true | vehicleWeapon_PlayerCameraSocket_Crouch | true | 200 | 1 | - |
W_WHL_08_RingTurret | HipFire | true | vehicleWeapon_PlayerCameraSocket_HipFire | true | 200 | 1 | - |
W_WHL_08_RingTurret | ADS | true | vehicleWeapon_PlayerCameraSocket_ADS | true | 200 | 1.2 | - |
W_WHL_08_RingTurret | Crouch | true | vehicleWeapon_PlayerCameraSocket_Crouch | true | 200 | 1 | - |
Weapons with no camera states: W_ROT_02_122mm, W_ROT_03_122mm, W_ROT_03_AttachedMachineGuns_Grouped.
4. Crosshair tables (DT_VehicleCrosshair_*)
There are eight DT_VehicleCrosshair_* tables. Each is a DataTable of WDUIVehicleCrosshairDataTableRow: a row per weapon-extension tag, with the widget class that draws the reticle, the view model class, and an unnamed flag. Only the names are listed; the reticle art is out of scope.
| Table | Row (weapon extension tag) | Reticle widget | View model | Unnamed flag |
|---|---|---|---|---|
DT_VehicleCrosshair_ROT02 | Id.Vehicle.WeaponExtension.ROT_02.122mm | none (default reticle) | WDUIVehicleCrosshairViewModel | false |
DT_VehicleCrosshair_ROT02 | Id.Vehicle.WeaponExtension.ROT_02.30mmCannon | W_Havoc_Reticle_02_C | WDUIVehicleCrosshairViewModel | false |
DT_VehicleCrosshair_STN_02 | Id.Vehicle.WeaponExtension.STN_02.MainCannon | W_STN_02_C | WDUIVehicleCrosshairViewModel | false |
DT_VehicleCrosshair_STN_03 | Id.Vehicle.WeaponExtension.STN_03.MainBarrel | W_STN_03_Reticle_C | WDUIVehicleCrosshairViewModel | false |
DT_VehicleCrosshair_STN_05 | Id.Vehicle.WeaponExtension.STN_05.MainBarrel | W_STN_03_Reticle_C | WDUIVehicleCrosshairViewModel | false |
DT_VehicleCrosshair_TNK01 | Id.Vehicle.WeaponExtension.TNK_01.Heavy | W_Tank01_02_C | WDUIVehicleCrosshairViewModel | false |
DT_VehicleCrosshair_TNK01 | Id.Vehicle.WeaponExtension.TNK_01.MachineGun | W_Tank01_01_C | WDUIVehicleCrosshairViewModel | false |
DT_VehicleCrosshair_TNK01 | Id.Vehicle.WeaponExtension.TNK_01.Artillery | W_Artillery_Reticle_C | WDUIVehicleCrosshairViewModel | false |
DT_VehicleCrosshair_TNK01 | Id.Vehicle.WeaponExtension.TNK_01.AntiAir | W_AntiAir_Reticle_C | WDUIVehicleCrosshairViewModel | false |
DT_VehicleCrosshair_TNK04 | Id.Vehicle.WeaponExtension.TNK_04.Default | W_Tank01_02_C | WDUIVehicleCrosshairViewModel | false |
DT_VehicleCrosshair_TNK04 | Id.Vehicle.WeaponExtension.TNK_04.MachineGun | W_Tank01_01_C | WDUIVehicleCrosshairViewModel | false |
11 rows in 6 tables with rows; the tables DT_VehicleCrosshair_STN01, DT_VehicleCrosshair_STN06 exist but have no rows. 1 row has no widget class and uses the default reticle. All rows use the same view model class and have the unnamed flag false.