Skip to content

Vehicle Asset Reference

The vehicle asset is the most mechanically complex asset type in Unturned™ modding. A vehicle asset defines a drivable, interactive vehicle - a car, truck, APC, helicopter, plane, boat, blimp, or train - that players can enter, drive, refuel, repair, paint, and in some cases arm with mounted turrets. The vehicle asset .dat file is the single configuration surface that controls every aspect of a vehicle's behavior: its engine characteristics, wheel configuration, steering response, fuel consumption, battery system, turret mounts, paint system, explosion behavior, health pool, audio profile, and crawler track properties.

57 Studios™ has documented and validated the full vehicle asset configuration surface. The source of record for the field definitions in this article is the official Smartly Dressed Games modding documentation, supplemented by field vocabulary extracted from all 65 shipped vehicle .dat files in the Bundles\Vehicles\*\*.dat path and 128 color variant redirectors from Bundles\Vehicles\Redirectors\*.asset. This article covers every .dat field that applies to vehicle assets, every property dictionary type, every enumeration, and every system interaction that the cohort has validated through empirical testing.

A custom vehicle asset in Unturned showing the body, wheels, and turret

Documentation source: This article references the official Smartly Dressed Games modding documentation for field definitions and game behavior. The 57 Studios cohort has validated every field against shipped game files. Community-validated notes are marked where the official documentation is silent on a detail.

Who this article is for

This article is written for Unturned™ mod authors who have already built at least one vehicle mod using the workflow described in Vehicle Mod Basics and are ready for the comprehensive .dat field reference. If you have not yet built a vehicle prefab in Unity and loaded it into the game, start with Vehicle Mod Basics - this article assumes you understand the prefab structure, WheelCollider configuration, and seat transform placement that the basics article covers. This article is strictly the .dat field reference; it does not re-document the prefab authoring workflow.

What you'll learn

  • The complete vehicle asset system architecture, including the relationship between the .dat file, the InteractableVehicle runtime script, and the vehicle prefab
  • All 19 property dictionaries and tables with every field, type, default, and purpose
  • The 14 enumerations that control vehicle behavior categories
  • Engine RPM and gear ratio mechanics with the full torque calculation chain
  • Wheel configuration fields including crawler track steering modes
  • Turret system fields including yaw, pitch, seat index, and item linkage
  • Paint system fields including paint mask sections and random color configuration
  • Sound configuration for engine RPM-driven audio
  • Battery and fuel system mechanics
  • Health and armor fields including per-category bumper damage
  • Worked .dat examples for a passenger car, a military APC, and a train
  • Diagnostic tables for every vehicle subsystem

Background: how the vehicle asset system works

The vehicle asset system is the data layer that configures the InteractableVehicle runtime script. At load time, the Unturned™ asset loader reads the vehicle's .dat file from the Bundles\Vehicles\ folder and populates the runtime script's fields. The vehicle prefab (a Unity scene hierarchy) provides the visual and physics components - the mesh renderers, colliders, WheelCollider components, seat transforms, and audio sources - but all of the behavior parameters come from the .dat file.

The relationship between the .dat file and the vehicle prefab is asymmetric. The prefab provides the structure; the .dat provides the numbers. A prefab with perfectly tuned WheelCollider components will produce a terrible driving experience if the .dat has incorrect Speed_Max or Engine values. A prefab with poorly tuned colliders but a correctly authored .dat will still load and be driveable, though the handling will feel off. Both halves must be correct for a professional result.

As shown in the flowchart above, the InteractableVehicle runtime script is the central coordinator that reads every field from the .dat file and distributes parameters to the subsystems. Each subsystem is independently configurable; a vehicle that does not use turrets, for example, simply omits the turret fields and the system remains inactive.

Complete .dat field reference

The field reference is organized into logical groups that correspond to vehicle subsystems. Each group includes a field reference table with every field that belongs to that subsystem, followed by prose descriptions for the technically dense fields.

Identity and type fields

Every vehicle asset requires an identity block. These fields identify the vehicle to the engine and to the file system.

FieldTypeRequiredDefaultPurpose
GUIDuint128Yes,128-bit globally unique identifier. Required by all vehicle assets. If omitted, the engine assigns a random GUID at load time.
IDuint16No0Numeric item ID. Used to be required but is now optional. The range reserved for official content is [1, 2000).
TypeenumYesVehicleMust be Vehicle for vehicle assets.
NamestringNo,Internal name for cross-referencing.
RarityenumNoCommonRarity of the item, as text shown in menus and colors used for highlights. Values: Common, Uncommon, Rare, Epic, Legendary, Mythical.
EngineenumYesCarDetermines the vehicle type category. Some vehicle properties are only usable depending on the vehicle's Engine value. See the EEngine enumeration in the enumeration reference.

Engine RPM and gear ratio fields

The engine RPM system is the most technically involved subsystem in the vehicle asset. It controls how engine speed translates to wheel torque and how gear ratios mediate the relationship between engine RPM and wheel RPM.

FieldTypeDefaultPurpose
EngineIdleRPMfloat321000.0Engine RPM will never drop below this value regardless of whether wheel RPM multiplied by gear ratio is lower. Without this floor, the engine would not be able to start the wheels rolling from zero.
EngineMaxRPMfloat327000.0Engine RPM will never exceed this value regardless of whether wheel RPM multiplied by gear ratio is higher. Should be kept to a reasonable value because the normalized engine RPM is used in a variety of places like sampling the torque curve and network replication.
EngineMaxTorquefloat321.0Multiplier for the amount of torque provided to the wheels. The torque delivery chain from engine RPM to wheel torque follows a specific multi-step pipeline.
EngineRPM_DecreaseRatefloat32-1.0How quickly engine RPM can decrease in RPM per second. Defaults to -1 which instantly changes RPM.
EngineRPM_IncreaseRatefloat32-1.0How quickly engine RPM can increase in RPM per second. Defaults to -1 which instantly changes RPM.
EngineRPMMismatch_TorqueReduction_EnabledboolfalseIf true, wheel RPM is reduced according to the difference between expected and actual wheel RPM divided by torque reduction threshold.
EngineRPMMismatch_TorqueReduction_Thresholdfloat0.0If torque reduction is enabled, torque is reduced to zero when the difference between expected and actual RPM is greater than this threshold.
EngineRPMMismatch_GearShift_PreventShiftingboolfalseIf true, prevent changing gears when the difference between expected and actual wheel RPM exceeds threshold.
EngineRpmMismatch_GearShift_UpMinThresholdfloat0.0If prevent shifting is enabled, prevent shifting up when expected minus actual RPM is less than this threshold.
EngineRpmMismatch_GearShift_UpMaxThresholdfloat0.0If prevent shifting is enabled, prevent shifting up when expected minus actual RPM is greater than this threshold.
EngineRpmMismatch_GearShift_DownMinThresholdfloat0.0If prevent shifting is enabled, prevent shifting down when expected minus actual RPM is less than this threshold.
EngineRpmMismatch_GearShift_DownMaxThresholdfloat0.0If prevent shifting is enabled, prevent shifting down when expected minus actual RPM is greater than this threshold.
ForwardGearRatioslist of float32,Ratio between engine RPM and wheel RPM in each forward gear.
ReverseGearRatiofloat321.0Gear ratio to use when reversing.
GearShift_AllowSkippingGearsbooltrueIf true, engine can skip from (for example) 1st to 3rd gear if it keeps RPM within the acceptable range.
GearShift_DownThresholdRPMfloat321500.0When engine RPM is below this value and a lower gear is available, the vehicle shifts down.
GearShift_Durationfloat320.5How long it takes to shift gears in seconds. Wheels do not provide any torque for this duration.
GearShift_Intervalfloat321.0How long to wait since the last gear change before shifting gears again, in seconds.
GearShift_UpThresholdRPMfloat325500.0When engine RPM is above this value and a higher gear is available, the vehicle shifts up.
GearShift_VisibleInHUDbooltrueIf gears are configured and this is true, RPM and gear number are shown in the HUD.

The torque delivery chain from engine RPM to wheel torque follows an eight-step pipeline that every vehicle modder tuning a vehicle engine should understand.

  1. Engine RPM is normalized into a zero-to-one range according to EngineIdleRPM and EngineMaxRPM. An engine running at 2000 RPM with an idle of 1000 and a max of 5000 would produce a normalized RPM of 0.25.
  2. The vehicle root needs an EngineCurvesComponent attached. This component allows the modder to map normalized engine RPM to a normalized torque multiplier. The multiplier is typically closest to 1.0 in the middle range (0.3 to 0.8) and drops off toward 0.0 and 1.0.
  3. The torque curve is sampled using the normalized engine RPM.
  4. The sampled torque is multiplied by EngineMaxTorque.
  5. If changing gears, torque is zero.
  6. If reversing, torque is multiplied by ReverseGearRatio.
  7. Otherwise, torque is multiplied by the active ForwardGearRatio.
  8. Each powered wheel receives an equal share of the total torque. The per-wheel torque equals the engine output torque divided by the number of powered wheels.

Understanding this pipeline is essential for tuning. A modder who expects the engine to accelerate smoothly but has not configured ForwardGearRatios or has not attached an EngineCurvesComponent to the prefab will find that the vehicle behaves unexpectedly.

Handling and steering fields

These fields control how the vehicle responds to player steering input, how the steering behavior changes with speed, and the air-based steering behavior for planes.

FieldTypeDefaultPurpose
Speed_Maxfloat320The vehicle's maximum velocity to aim for while accelerating forward, in meters per second. For all Engine enumerators except Train, this value is multiplied by 1.25 because the vehicle adjusts wheel torque trying to match a specific speed.
Speed_Minfloat320The vehicle's maximum velocity to aim for while accelerating in reverse, in meters per second.
Steering_Angle_Maxfloat320Steering angle range at zero speed (idle/parked). For example, 45 means the wheels connected to steering can rotate plus or minus 45 degrees.
Steering_Angle_FullSpeed_Factorfloat320Multiplier for steering angle range at target maximum speed. Reducing steering range at higher speeds keeps the vehicle controllable with digital (non-analog) input.
Steering_Angle_Turn_Speedfloat32See descriptionHow quickly wheels can turn to meet player input, measured in degrees per second. Defaults to the value of Steer_Max multiplied by 5.0.
Steering_LeaningForceMultiplierfloat32-1.0If greater than zero, torque is applied on the Z-axis according to steering input for bikes and motorcycles.
Steering_LeaningForce_ScaleWithSpeedboolfalseIf true, leaning force is multiplied by normalized speed to the power of Steering_LeaningForce_SpeedExponent.
Steering_LeaningForce_SpeedExponentfloat321.0Exponent used in the leaning force calculation when Steering_LeaningForce_ScaleWithSpeed is true.
Brakefloat32See descriptionThe amount of braking force to apply.
Liftfloat320The amount of upwards lift force to apply, when using Engine Plane.
Tractionflagnot setTires should have traction in snowy positions.
Sledsflagnot setTires should easily roll. Most planes use this property.
Air_Steer_Maxfloat32See descriptionThe angle to turn when moving quickly, when using Engine Plane. Defaults to the value of Steer_Max.
Air_Steer_Minfloat32See descriptionThe angle to turn when moving slowly, when using Engine Plane. Defaults to the value of Steer_Min.
Air_Turn_Responsivenessfloat322Sensitivity on steering while airborne, when using Engine Plane.
Center_Of_Massvector3,Overrides the vehicle's center of mass on the X, Y, and Z axes when using Override_Center_Of_Mass true.
Override_Center_Of_MassboolfalseIf true, overrides the vehicle's center of mass with the values from Center_Of_Mass.
RollAngularVelocityDampingfloat32-1.0If greater than zero, an acceleration is applied to angular velocity on the Z-axis toward zero. Critical for damping the WheelBalancing_ForceMultiplier force.
WheelBalancing_ForceMultiplierfloat32-1.0If greater than zero, torque is applied on the Z axis multiplied by this factor to align the vehicle up with ground up.
WheelBalancing_UprightExponentfloat321.5Exponent on the zero-to-one factor representing how aligned the vehicle is with the ground up vector.
Engine_Force_Multiplierfloat321.0Multiplier on otherwise not-yet-configurable plane, helicopter, boat, and other forces. Should scale based on vehicle mass.
Carjack_Force_Multiplierfloat321.0Multiplier on the force applied when using a carjack on this vehicle. Should scale based on vehicle mass.

The relationship between Steering_Angle_Max and the deprecated Steer_Max field requires clarification. Steer_Max was replaced by Steering_Angle_Max which is not multiplied by 0.75. Steer_Min was replaced by Steering_Angle_FullSpeed_Factor. Both legacy fields still function but the cohort recommendation is to use the newer Steering_Angle_ fields for all new vehicle assets.

Wheel configuration fields

The WheelConfigurations list is the modern mechanism for controlling WheelCollider components and their corresponding visual models, having replaced the deprecated Num_Steering_Tires, Steering_Tire_#, and Crawler fields in version 3.23.4.0.

FieldTypeDefaultPurpose
WheelConfigurationslist of VehicleWheelConfiguration,Controls WheelCollider components and their corresponding visual models.
Wheel_Collider_Mass_Overridefloat32nullOverride the mass of the vehicle's WheelCollider components without needing to rebundle the asset in Unity.
Num_Steering_Tiresint32See descriptionDeprecated. Replaced by WheelConfigurations. Total number of tires that should turn when steering.
Steering_Tire_#int32See descriptionDeprecated. Replaced by WheelConfigurations. Set a Wheel_# GameObject as a steering tire.
Crawlerflagnot setDeprecated. Replaced by WheelConfigurations. Disables the Wheel_# GameObjects from turning when steering.
Tire_IDuint161451ID of the item given when a tire is manually removed with a ToolAsset that has Mode Remove.
Tires_Invulnerableflagnot setTires cannot be damaged.

VehicleWheelConfiguration dictionary

Each entry in WheelConfigurations is a dictionary with the following fields:

FieldTypeDefaultPurpose
WheelColliderPathstring,Scene hierarchy path of a WheelCollider component relative to the vehicle's root transform.
ModelPathstring,Scene hierarchy path of the visual representation of the wheel relative to the vehicle's root transform.
CanExplodebooltrueIf true, wheel flies off when the vehicle explodes. Set to false to simplify destroying vehicles with crawler tracks.
CopyColliderRpmIndexint32-1If set, visual-only wheels without a collider (like the back wheels of the snowmobile) can copy RPM from a wheel that does have a collider. Requires ModelRadius to also be set.
CrawlerTrackForwardModeECrawlerTrackForwardModeAutoFor CrawlerTrack steering mode, indicates how a positive motor torque rotates the vehicle.
IsColliderPoweredboolfalseIf true, the collider is connected to the engine and responds to the player's acceleration input.
IsColliderSteeredboolfalseDeprecated. Replaced by SteeringMode. If true, the collider's steering angle responds to player input.
IsModelSteeredboolfalseIf true, the model is rotated according to steering input. Kept only for backwards compatibility.
ModelRadiusfloat32-1.0If greater than zero, visual-only wheels (without a collider) use this radius to calculate their rolling speed.
ModelSuspensionOffsetfloat0.0Vertical offset of the model from simulated suspension position. Used by crawler tracks because the visual wheel rests on the tread above the physics wheel.
ModelSuspensionSpeedfloat-1.0How quickly to interpolate the model toward the suspension position in meters per second. If negative, position teleports immediately.
ModelUseColliderPoseboolfalseIf true, the model ignores IsModelSteered and instead uses the wheel collider state.
MotionEffectsEWheelMotionEffectsModeSee descriptionControls whether the wheel creates particle kickup effects. Defaults to BothDirections if ModelUseColliderPose is true, None otherwise.
SteeringAngleMultiplierfloat1.0Target steering angle is multiplied by this value. Can be set to a negative number for rear-wheel steering.
SteeringModeEWheelSteeringModeNoneControls whether the wheel contributes to steering and what kind of steering to simulate.

Fuel system fields

FieldTypeDefaultPurpose
Fueluint160Total fuel capacity.
Fuel_Burn_Ratefloat32See descriptionRate at which fuel decreases per second. Defaults to 2.05 when using Engine Car, or 4.2 otherwise.
Fuel_Minuint160Minimum possible fuel to spawn with.
Fuel_Maxuint160Maximum possible fuel to spawn with.

Battery system fields

FieldTypeDefaultPurpose
Battery_Poweredflagnot setThe vehicle does not use fuel. Useful for creating electric vehicles.
Battery_Burn_Ratefloat3220Rate at which battery charge decreases per second.
Battery_Charge_Ratefloat3220Rate at which battery charge increases per second.
Battery_Spawn_Charge_Multiplierfloat321Battery charge on a newly-spawned vehicle is multiplied by this zero-to-one number.
BatteryMode_DrivingEBatteryModeChargeHow the vehicle battery behaves when a player is driving it.
BatteryMode_EmptyEBatteryModeNoneHow the vehicle battery behaves when the vehicle is empty.
BatteryMode_HeadlightsEBatteryModeBurnHow the vehicle battery behaves when the headlights are on.
BatteryMode_SirensEBatteryModeBurnHow the vehicle battery behaves when the siren is on.
Can_Steal_BatterybooltrueWhether the vehicle battery can be removed by a player.
Cannot_Spawn_With_Batteryflagnot setThe vehicle does not spawn with a vehicle battery.
Default_BatteryGUID098b13be34a7411db7736b7f866ada69Battery item given to the player when a specific battery has not been manually installed yet.

Stamina system fields

FieldTypeDefaultPurpose
Stamina_Boostfloat32,Allows using stamina to boost. The value is the multiplier on the speed a vehicle can go without using a stamina boost.
Stamina_Poweredflagnot setThe vehicle does not use fuel or a vehicle battery.

Health and armor fields

FieldTypeDefaultPurpose
Healthuint160Total health value.
Health_Maxuint160Minimum possible health to spawn with.
Health_Minuint160Maximum possible health to spawn with.
Invulnerableflagnot setThe vehicle cannot be damaged by lower-power weapon assets that do not have the Invulnerable flag.
Environment_Invulnerableflagnot setThe vehicle cannot be damaged by animals, zombie melee attacks, or boulders thrown by mega zombies.
Explosions_Invulnerableflagnot setThe vehicle cannot be damaged by explosions.
Bumper_Invulnerableflagnot setThe vehicle cannot be damaged by collisions.
Bumper_AnimalDamagefloat3215.0Base damage to animals when traveling at 1 m/s, before speed and other multipliers.
Bumper_ObjectDamagefloat3230.0Base damage to objects when traveling at 1 m/s, before speed and other multipliers.
Bumper_PlayerDamagefloat3210.0Base damage to players when traveling at 1 m/s, before speed and other multipliers.
Bumper_ResourceDamagefloat3285.0Base damage to resources when traveling at 1 m/s, before speed and other multipliers.
Bumper_ZombieDamagefloat3215.0Base damage to zombies when traveling at 1 m/s, before speed and other multipliers.
Bumper_Multiplierfloat321.0Multiplies vehicle speed in m/s at time of collision. If the result is less than Bumper_SpeedDamageThreshold, no damage is applied.
Bumper_SelfDamageMultiplierfloat321.0Multiplier for damage inflicted to the vehicle by crashing into things. Not applicable if Bumper_Invulnerable is set.
Bumper_SpeedDamageThresholdfloat323.0If speed in m/s multiplied by Bumper_Multiplier is less than this threshold, no damage is applied.
Child_Explosion_Armor_Multiplierfloat320.2Multiplier on the damage that barricades placed on the vehicle receive when damaged by explosions.
Passenger_Explosion_Armorfloat321Multiplier on the damage taken by players sitting in the vehicle from explosions.
Can_Repair_While_SeatedboolfalseWhen true, this vehicle can be repaired by seated players.

Camera and exit fields

FieldTypeDefaultPurpose
Cam_Driver_Offsetfloat320Vertical offset for the driver's first-person camera, in meters. Additive with Cam_Passenger_Offset.
Cam_Follow_Distancefloat325.5Distance behind the player the third-person camera should be placed at, in meters.
Cam_Passenger_Offsetfloat320Vertical offset for any passenger's (including the driver's) first-person camera, in meters.
Exitfloat322Distance away from the vehicle to teleport when exiting.
LockMouseflagnot setFirst-person camera movement is locked while driving. Useful for Engine Plane and Engine Helicopter.

Audio fields

FieldTypeDefaultPurpose
EngineSoundRpmEngineSoundConfiguration,When EngineSound_Type is EngineRPMSimple, set to an RpmEngineSoundConfiguration dictionary.
EngineSound_TypeEVehicleEngineSoundTypeLegacyControls engine audio mode. Legacy uses Pitch_Idle and Pitch_Drive. EngineRPMSimple uses RPM-based pitch and volume.
Pitch_Drivefloat32See descriptionMultiplier on the pitch of the engine audio while driving. Defaults vary by engine type and audio clip name.
Pitch_Idlefloat32See descriptionMultiplier on the pitch of the engine audio while idle. Defaults vary by audio clip name.
Has_HornboolSee descriptionWhether the vehicle has a horn. Defaults to true when HornAudioClip is valid.
HornAudioClipMaster Bundle Pointer,Audio clip to play when using the horn.
IgnitionAudioClipMaster Bundle Pointer,Audio clip to play after entering the driver's seat.
Has_Clip_PrefabbooltrueWhether the vehicle has a Clip.prefab. Set to false if the vehicle uses the same prefab on server and client.

RpmEngineSoundConfiguration dictionary

FieldTypeDefaultPurpose
IdlePitchfloat320.0AudioSource pitch when engine RPM is at idle RPM.
IdleVolumefloat320.0AudioSource volume when engine RPM is at idle RPM.
MaxPitchfloat320.0AudioSource pitch when engine RPM is at max RPM.
MaxVolumefloat320.0AudioSource volume when engine RPM is at max RPM.

Paint system fields

FieldTypeDefaultPurpose
IsPaintableboolSee descriptionIf true, Vehicle Paint Tools can be used on this vehicle. Defaults to true if PaintableSections has been configured.
PaintableSectionslist of PaintableVehicleSection,If set, the vehicle can be painted. Each section's material _PaintColor property is set to the vehicle's paint color.
DefaultPaintColor_ModeEVehicleDefaultPaintColorModeSee descriptionControls the mode used when randomly picking a paint color for a newly-spawned vehicle. Defaults to List if DefaultPaintColors has been configured, None otherwise.
DefaultPaintColor_ConfigurationVehicleRandomPaintColorConfiguration,Determines the potential colors of a newly-spawned vehicle when using RandomHueOrGrayscale mode.
DefaultPaintColorslist of colors,List of random colors to pick from when spawning a new vehicle. Can be overridden by a Vehicle Redirector's LoadPaintColor property.
AdditionalTransparentSectionslist of PaintableVehicleSection,Materials to register as needing transparent sorting. Their render queue is periodically updated according to whether their pivot point is underwater.

As shown in the flowchart above, the paint system supports two distinct color-assignment paths. Newly-spawned vehicles can receive a random paint color through either a fixed-color list or a procedural HSV generation. Player-applied paint through the Vehicle Paint Tool overrides the spawn color for the session.

PaintableVehicleSection dictionary

FieldTypeDefaultPurpose
Pathstring,Scene hierarchy path to a Renderer component relative to the vehicle's root transform.
MaterialIndexint320Index into the Renderer component's Materials list. 0 is the first material, 1 is the second, and so forth.
AllMaterialsboolfalseIf true, apply to all materials in the Renderer's Materials list rather than a specific index.

VehicleRandomPaintColorConfiguration dictionary

FieldTypeDefaultPurpose
MinSaturationfloat320.0Minimum random saturation in HSV color to generate.
MaxSaturationfloat320.0Maximum random saturation in HSV color to generate.
MinValuefloat320.0Minimum value (brightness) in HSV color to generate.
MaxValuefloat320.0Maximum value (brightness) in HSV color to generate.
GrayscaleChancefloat320.0Probability in the zero-to-one range that a vehicle spawns with grayscale paint. A value of 0.2 means 20 percent of vehicles are grayscale.

Explosion fields

FieldTypeDefaultPurpose
ExplosionGUID or uint16,GUID or legacy ID of EffectAsset to play when destroyed.
Explosion_Force_Multiplierfloat321.0Multiplier on the force applied when the vehicle explodes. Should scale based on vehicle mass.
Explosion_Max_Forcevector3(0, 1024, 0)Maximum amount of force applied on the X, Y, and Z axes when the vehicle explodes.
Explosion_Min_Forcevector3(0, 1024, 0)Minimum amount of force applied on the X, Y, and Z axes when the vehicle explodes.
ShouldExplosionBurnMaterialsboolSee descriptionWhen true, the materials of the vehicle's Model_# GameObjects are tinted black when destroyed. Defaults to true if Explosion is configured.
ExplosionBurnMaterialSectionslist of PaintableVehicleSection,Only used if ShouldExplosionBurnMaterials is true. Manually specifies which materials should be darkened after an explosion.
ShouldExplosionCauseDamageboolSee descriptionWhen true, the explosion from the vehicle being destroyed deals damage to nearby entities and kills passengers. Defaults to true if Explosion is configured.

Turret fields

FieldTypeDefaultPurpose
Turretsuint80Total number of turrets on the vehicle. All other turret-related properties require this property to be configured.
Turret_#_Seat_Indexuint80Index of the Seat_# GameObject that this turret is usable from.
Turret_#_Item_IDuint160Legacy ID of the item usable from the turret seat. Often a GunAsset with the Turret property.
Turret_#_Pitch_Maxfloat320Maximum allowed rotation of the turret through elevation, in degrees.
Turret_#_Pitch_Minfloat320Minimum allowed rotation of the turret through elevation, in degrees.
Turret_#_Yaw_Maxfloat320Maximum allowed rotation of the turret through azimuth, in degrees. Set to 360 for continuous rightward rotation.
Turret_#_Yaw_Minfloat320Minimum allowed rotation of the turret through azimuth, in degrees. Set to -360 for continuous leftward rotation.
Turret_#_Ignore_Aim_Cameraflagnot setNormally the player's camera is positioned at the Aim GameObject. This flag disables that behavior.

Train fields

FieldTypeDefaultPurpose
Train_Car_Lengthfloat320Distance between each train car on the train, in meters. Used with Engine Train.
Train_Track_Offsetfloat320Offset the train car is above the track, in meters. Used with Engine Train.
Train_Wheel_Offsetfloat320Offset between the wheels, in meters. Used with Engine Train.

Economy and storage fields

FieldTypeDefaultPurpose
Shared_Skin_Lookup_IDGUID or uint16See descriptionGUID or legacy ID of another vehicle this vehicle should share skins with. Defaults to this vehicle's own GUID.
Shared_Skin_Namestring,When generating images, the image name contains this string instead of the vehicle's file name. Often used with Shared_Skin_Lookup_ID.
Size2_Zfloat320Orthogonal camera size for economy icons.
Can_Be_LockedbooltrueWhether the vehicle can be locked by a player.
Trunk_Storage_Xuint80Number of columns (horizontal storage space).
Trunk_Storage_Yuint80Number of rows (vertical storage space).
Drops_Table_IDuint16962ID of the item spawn table to use when the vehicle is destroyed. Default spawn table is Destroyed_Vehicle_Default.
Drops_Maxuint87Maximum number of item drops to spawn when the vehicle is destroyed.
Drops_Minuint83Minimum number of item drops to spawn when the vehicle is destroyed.

Animation and character fields

FieldTypeDefaultPurpose
Bicycleflagnot setPlayer character should use a bicycling animation.
Bicycle_Anim_Speedfloat320Multiplier on the speed of the bicycling animation.
Reclinedflagnot setPlayer character should use a reclined idle animation.
Zipflagnot setPlayer character should use a handlebar idle animation.

Physics profile and validation fields

FieldTypeDefaultPurpose
Physics_ProfileGUIDSee descriptionGUID of a VehiclePhysicsProfileAsset to use. Physics profiles allow increased control over vehicle settings in bulk. Default profiles exist for Boat, Car, Helicopter, and Plane engine types.
Valid_Speed_Downfloat32See descriptionOverrides the downward vertical speed sanity check on the Y-axis, in m/s. Defaults to 25 for Car and Boat, 100 otherwise.
Valid_Speed_Horizontalfloat32See descriptionOverrides the horizontal speed sanity check on the XZ plane, in m/s. Defaults vary by engine type.
Valid_Speed_Upfloat32See descriptionOverrides the upward vertical speed sanity check on the Y-axis, in m/s. Defaults to 12.5 for Car, 3.25 for Boat, 100 otherwise.
Should_Spawn_Seat_CapsulesboolfalseIf true, capsule colliders are attached to each Seat GameObject to prevent players from clipping into the ground.
Buildable_Placement_RuleEVehicleBuildablePlacementRuleNoneOverrides how barricades can be attached to the vehicle.
Bypass_Hash_Verificationflagnot setDisable hash verification check and allow mismatched files.

Crawler track tiling fields

FieldTypeDefaultPurpose
CrawlerTrackTilingMaterialslist of CrawlerTrackTilingMaterial,If set, offsets a crawler track's material UVs in sync with wheels rolling.
CrawlerTrackSteering_Torquefloat320.0Added or subtracted from wheel motor torque in CrawlerTrack steering mode.
CrawlerTrackSteering_SidewaysFrictionMultiplierfloat321.0For a wheel in CrawlerTrack mode, the wheel collider's sideways friction stiffness is multiplied by this value while a steering input is applied.
CrawlerTrackSteering_MaxSpeedScalefloat321.0Multiplier for crawler track steering torque and sideways friction multiplier while driving at maximum speed.

CrawlerTrackTilingMaterial dictionary

FieldTypeDefaultPurpose
Pathstring,Scene hierarchy path to a Renderer component relative to the vehicle's root transform.
MaterialIndexint320Index into the Renderer component's Materials list.
WheelIndiceslist of int32,Index into wheel configurations list. The average of these wheels' RPM is used to calculate track speed.
RepeatDistancefloat320.0How far to travel to offset UV by one repeat. Calculated by selecting an edge parallel to the crawler track and dividing the UV distance by the physical 3D distance.
UV_DirectionVector2(0.0, 0.0)Direction of UV offset. For example, (-1.0, 0.0) moves the UV offset left as the vehicle travels forward.

Enumeration reference

The vehicle asset system uses 14 enumerations. Every enumeration value that appears in the source material is documented below.

EEngine

ValueDescription
CarStandard ground vehicle. Most handling properties apply.
PlaneAircraft with air-steering and lift mechanics.
BlimpLighter-than-air vehicle. Uses unique physics scaling.
BoatWater vehicle with buoyancy mechanics.
TrainTrack-riding vehicle. Speed_Max is not multiplied by 1.25.

EVehicleBuildablePlacementRule

ValueDescription
NoneVehicle does not override placement. Barricades can be attached unless the barricade sets Allow_Placement_On_Vehicle to false.
AlwaysAllowVehicle allows any barricade to be placed on it regardless of the barricade's setting.
BlockVehicle prevents any barricade from being placed on it.

EVehicleDefaultPaintColorMode

ValueDescription
NoneNot configured.
ListPick from the DefaultPaintColors list.
RandomHueOrGrayscalePick a random HSV using DefaultPaintColor_Configuration.

EVehicleEngineSoundType

ValueDescription
LegacyDefault. Uses Pitch_Idle and Pitch_Drive to control engine audio pitch.
EngineRPMSimpleSet pitch and volume of a single clip according to engine RPM using RpmEngineSoundConfiguration.

EWheelMotionEffectsMode

ValueDescription
NoneTurn off motion effects. Default for wheels not using collider pose.
BothDirectionsEnable motion effects. Default for wheels using collider pose.
ForwardOnlyEnable motion effects, but turn them off while moving backward.
BackwardOnlyEnable motion effects, but turn them off while moving forward.

EWheelSteeringMode

ValueDescription
NoneWheel does not affect steering.
SteeringAngleSet WheelCollider steering angle according to Steer_Min and Steer_Max.
CrawlerTrackIncrease or decrease motor torque to rotate vehicle in-place.

ECrawlerTrackForwardMode

ValueDescription
AutoAssigns a forward mode based on wheel collider position. Left-side wheels are Clockwise, right-side wheels are CounterClockwise.
ClockwisePositive motor torque on this wheel rotates the vehicle clockwise.
CounterClockwisePositive motor torque on this wheel rotates the vehicle counter-clockwise.

EBatteryMode

ValueDescription
NoneBattery does nothing.
ChargeBattery charges while active.
BurnBattery depletes while active.

EItemRarity

ValueDescription
CommonWhite highlight.
UncommonGreen highlight.
RareBlue highlight.
EpicPurple highlight.
LegendaryOrange highlight.
MythicalRed highlight.

Worked .dat examples

Example 1: Passenger car

A standard four-seat passenger car with manual transmission, combustion engine, and trunk storage.

GUID a1b2c3d4e5f64a7b8c9d0e1f2a3b4c5d
ID 2001
Type Vehicle
Name MySedan
Rarity Common
Engine Car

Speed_Max 50
Speed_Min -10
Steering_Angle_Max 35
Steering_Angle_FullSpeed_Factor 0.5
Steering_Angle_Turn_Speed 180
Brake 8

EngineIdleRPM 1000
EngineMaxRPM 7000
EngineMaxTorque 1.0
EngineRPM_IncreaseRate 3000
EngineRPM_DecreaseRate 2000
ForwardGearRatios [ 3.5, 2.0, 1.4, 1.0, 0.75 ]
ReverseGearRatio 3.0
GearShift_UpThresholdRPM 5500
GearShift_DownThresholdRPM 1500
GearShift_Duration 0.5
GearShift_Interval 1.0
GearShift_AllowSkippingGears true
GearShift_VisibleInHUD true

Fuel 5000
Fuel_Burn_Rate 2.05
Fuel_Min 500
Fuel_Max 5000

Health 1000
Health_Min 200
Health_Max 1000

Trunk_Storage_X 4
Trunk_Storage_Y 4

Bumper_PlayerDamage 10
Bumper_ZombieDamage 15
Bumper_AnimalDamage 15
Bumper_ObjectDamage 30
Bumper_ResourceDamage 85
Bumper_Multiplier 1.0
Bumper_SelfDamageMultiplier 1.0
Bumper_SpeedDamageThreshold 3.0

Exit 2
Can_Be_Locked true

Pitch_Idle 0.5
Pitch_Drive 0.05
EngineSound_Type Legacy

WheelConfigurations
[
  {
    WheelColliderPath Tires/Tire_0
    IsColliderSteered true
    IsColliderPowered true
    ModelPath Wheels/Wheel_0
    ModelUseColliderPose true
  }
  {
    WheelColliderPath Tires/Tire_1
    IsColliderSteered true
    IsColliderPowered true
    ModelPath Wheels/Wheel_1
    ModelUseColliderPose true
  }
  {
    WheelColliderPath Tires/Tire_2
    IsColliderSteered false
    IsColliderPowered false
    ModelPath Wheels/Wheel_2
    ModelUseColliderPose true
  }
  {
    WheelColliderPath Tires/Tire_3
    IsColliderSteered false
    IsColliderPowered false
    ModelPath Wheels/Wheel_3
    ModelUseColliderPose true
  }
]

Example 2: Military APC with turret

A heavy armored personnel carrier with two turrets, explosion armor, and limited fuel economy.

GUID b2c3d4e5f6a74b8c9d0e1f2a3b4c5d6
ID 2002
Type Vehicle
Name MilitaryAPC
Rarity Rare
Engine Car

Speed_Max 35
Speed_Min -8
Steering_Angle_Max 28
Steering_Angle_FullSpeed_Factor 0.4
Brake 12

EngineIdleRPM 800
EngineMaxRPM 5000
EngineMaxTorque 1.0
EngineRPM_IncreaseRate 2000
EngineRPM_DecreaseRate 1500
ForwardGearRatios [ 4.0, 2.5, 1.8, 1.2 ]
ReverseGearRatio 3.5

Fuel 8000
Fuel_Burn_Rate 4.2
Fuel_Min 1000
Fuel_Max 8000

Health 2500
Health_Min 500
Health_Max 2500
Invulnerable
Explosions_Invulnerable

Passenger_Explosion_Armor 2.0
Child_Explosion_Armor_Multiplier 0.5

Bumper_PlayerDamage 25
Bumper_ZombieDamage 30
Bumper_ObjectDamage 50
Bumper_ResourceDamage 100
Bumper_Multiplier 1.5
Bumper_SpeedDamageThreshold 2.0

Turrets 2
Turret_0_Seat_Index 0
Turret_0_Item_ID 1471
Turret_0_Yaw_Min -180
Turret_0_Yaw_Max 180
Turret_0_Pitch_Min -10
Turret_0_Pitch_Max 45
Turret_1_Seat_Index 1
Turret_1_Item_ID 1472
Turret_1_Yaw_Min -90
Turret_1_Yaw_Max 90
Turret_1_Pitch_Min -5
Turret_1_Pitch_Max 30

Trunk_Storage_X 6
Trunk_Storage_Y 4

Tire_ID 1451
Tires_Invulnerable

Pitch_Idle 0.625
Pitch_Drive 0.025
EngineSound_Type Legacy

WheelConfigurations
[
  {
    WheelColliderPath Tires/Tire_0
    IsColliderSteered true
    IsColliderPowered true
    ModelPath Wheels/Wheel_0
    ModelUseColliderPose true
  }
  {
    WheelColliderPath Tires/Tire_1
    IsColliderSteered true
    IsColliderPowered true
    ModelPath Wheels/Wheel_1
    ModelUseColliderPose true
  }
  {
    WheelColliderPath Tires/Tire_2
    IsColliderSteered true
    IsColliderPowered true
    ModelPath Wheels/Wheel_2
    ModelUseColliderPose true
  }
  {
    WheelColliderPath Tires/Tire_3
    IsColliderSteered true
    IsColliderPowered true
    ModelPath Wheels/Wheel_3
    ModelUseColliderPose true
  }
  {
    WheelColliderPath Tires/Tire_4
    IsColliderSteered false
    IsColliderPowered false
    ModelPath Wheels/Wheel_4
    ModelUseColliderPose true
  }
  {
    WheelColliderPath Tires/Tire_5
    IsColliderSteered false
    IsColliderPowered false
    ModelPath Wheels/Wheel_5
    ModelUseColliderPose true
  }
]

Example 3: Train car

A train car with track-following configuration. Note that Speed_Max is not multiplied by 1.25 for Engine Train.

GUID c3d4e5f6a7b84c9d0e1f2a3b4c5d6e7
ID 2003
Type Vehicle
Name TrainCar
Rarity Common
Engine Train

Speed_Max 25
Speed_Min -8
Steering_Angle_Max 0

EngineIdleRPM 500
EngineMaxRPM 3000
EngineMaxTorque 1.0
EngineRPM_IncreaseRate 1000
EngineRPM_DecreaseRate 1000
ForwardGearRatios [ 2.0 ]
ReverseGearRatio 2.0

Fuel 10000
Fuel_Burn_Rate 4.2
Fuel_Min 5000
Fuel_Max 10000

Health 5000
Health_Min 1000
Health_Max 5000
Invulnerable

Train_Car_Length 8.0
Train_Track_Offset 0.5
Train_Wheel_Offset 2.0

Bumper_PlayerDamage 50
Bumper_ZombieDamage 80
Bumper_ObjectDamage 100
Bumper_ResourceDamage 200
Bumper_Multiplier 2.0
Bumper_SelfDamageMultiplier 0.5
Bumper_SpeedDamageThreshold 1.0

Buildable_Placement_Rule AlwaysAllow
Can_Be_Locked true

Trunk_Storage_X 8
Trunk_Storage_Y 6

Pitch_Idle 0.3
Pitch_Drive 0.01
EngineSound_Type Legacy

Mermaid diagrams

Vehicle system architecture

As shown in the architecture diagram above, the InteractableVehicle script populates its subsystems from the .dat fields. Each subsystem is independently configurable, and the subsystems that are not configured (for example, the train system on a car) are simply inactive.

PaintableSections chain

The paint chain is driven entirely by the PaintableSections array. Each section references a specific Renderer component and material index, and the _PaintColor shader property is set at runtime when the player uses a Vehicle Paint Tool.

Torque delivery pipeline

The torque delivery pipeline shown above is the complete calculation chain from engine RPM to per-wheel torque. Every vehicle modder tuning engine behavior should trace through the pipeline when diagnosing poor acceleration or gear-shifting behavior.

Frequently asked questions

What is the difference between EngineIdleRPM and the minimum RPM that the engine actually runs at?

EngineIdleRPM is the floor value below which engine RPM never drops. The actual minimum RPM during operation is the maximum of EngineIdleRPM and the RPM computed from wheel RPM multiplied by the current gear ratio. If the vehicle is stationary and in neutral, the engine runs at EngineIdleRPM. If the vehicle is coasting downhill in gear, the engine RPM is driven by the wheels through the gear ratio and may exceed idle RPM.

Can I set ForwardGearRatios to an empty list?

Yes, an empty or omitted ForwardGearRatios list means the vehicle has no gear shifting. The engine torque is applied directly to the wheels without any ratio multiplication. This is appropriate for vehicles with continuously variable transmissions or for very simple vehicles where gear simulation adds unnecessary complexity.

How do I make a vehicle that does not use fuel?

Set Fuel to 0 or omit the fuel fields entirely and use the Battery_Powered flag or Stamina_Powered flag. A battery-powered vehicle uses battery charge instead of fuel and recharges its battery through the Battery_Charge_Rate and BatteryMode_* fields. A stamina-powered vehicle uses no fuel or battery at all - the player's stamina bar is the energy source.

What happens if I set Turrets to 0 but configure Turret_0_* fields?

The turret fields are ignored when Turrets is 0. The vehicle loads without any turret, and the turret configuration fields produce no error. The turret subsystem only activates when Turrets is set to a value of 1 or greater and the corresponding numbered turret fields are present. Configure Turrets first, then configure the corresponding fields.

Can a vehicle have both turrets and trunk storage?

Yes. The turret system and the trunk storage system are independent. A military APC with a turret for the gunner and a trunk for the driver's supplies is a common configuration. The Trunk_Storage_X and Trunk_Storage_Y fields define the storage grid; the Turret_#_* fields define the weapon mount. Neither affects the other.

How do I configure crawler tracks for a tank-style vehicle?

Set the WheelConfigurations entries for the track wheels to use SteeringMode CrawlerTrack and configure CrawlerTrackForwardMode appropriately. The CrawlerTrackSteering_Torque field controls the differential turning force, and CrawlerTrackTilingMaterials handles the visual track material UV offset. Set CanExplode false on track wheels to prevent them from flying off individually on destruction.

The default is 2.05 for Engine Car. The cohort-validated range for standard passenger vehicles is 1.5 to 3.0. Higher values (4.0+) produce vehicles that consume fuel rapidly and require frequent refueling, which is appropriate for military or high-performance vehicles. Lower values (0.5 to 1.5) produce fuel-efficient vehicles suitable for exploration or survival scenarios.

How do PaintableSections and AdditionalTransparentSections interact?

They are independent lists. PaintableSections controls which materials receive the _PaintColor shader property for vehicle painting. AdditionalTransparentSections controls which materials receive transparent sorting updates (periodic render-queue adjustment based on underwater state). A material can appear in both lists, in one list, or in neither.

What does Bypass_Hash_Verification actually do?

It disables the hash verification check that the asset loader runs when loading the vehicle bundle. Normally, the loader compares the bundle's content hash against a stored hash and rejects the bundle if they differ. Setting this flag allows the vehicle to load even if the bundle content has been modified outside the normal build pipeline. The cohort recommendation is to set this flag only for development vehicles and to remove it before publishing.

Can I have more than 255 in a uint16 field like ID or Fuel?

uint16 has a maximum value of 65535. ID, Fuel, and Health can hold values up to 65535. uint8 fields like Turrets, Trunk_Storage_X, Trunk_Storage_Y, Drops_Max, and Drops_Min have a maximum of 255.

How do I make a vehicle that cannot be locked?

Set Can_Be_Locked to false. Players will not be able to lock the vehicle with the lock interaction. This is appropriate for public transport vehicles, rental vehicles, or quest vehicles that need to be accessible to all players.

What is the use case for Shared_Skin_Lookup_ID?

This field was used by some official vehicles where each paint color used to be a separate vehicle asset file. The field tells the economy system to look up skin variants from another vehicle's skin set. For mod vehicles that use the modern paint system (PaintableSections and DefaultPaintColors), this field is not needed and should be omitted.

Why is the vehicle speed in kph different from Speed_Max in m/s?

Speed_Max is in meters per second. For all engine types except Train, this value is multiplied by 1.25 internally. The in-game display converts m/s to kph by multiplying by 3.6. A vehicle with Speed_Max 12.5 (m/s) has an effective top speed of 12.5 x 1.25 = 15.625 m/s, which displays as approximately 56.25 kph in the HUD.

How do PaintableSections work with vehicles that have multiple body materials?

Each entry in PaintableSections specifies a Path to a Renderer component, a MaterialIndex to identify which material on that Renderer to affect, and an AllMaterials flag that, when true, applies the paint to every material on that Renderer instead of just the indexed one. A vehicle with separate body, trim, and interior materials can configure PaintableSections entries for only the body materials while leaving trim and interior unpaintable.

What happens if WheelConfigurations references a WheelCollider path that does not exist?

The wheel configuration entry is silently skipped. The vehicle loads without that wheel. The remaining wheels function normally. This behavior can be useful for debugging - temporarily removing a wheel configuration entry to isolate a handling issue - but should not appear in a published vehicle.

Is EngineRPMMismatch_TorqueReduction_Enabled useful for anything other than preventing wheel spin?

Its primary purpose is to reduce wheel torque when the wheels are spinning faster than the engine can drive them - a wheel-spin scenario. When enabled, the torque reduction pulls wheel RPM back toward the expected value based on engine RPM and gear ratio. This is most useful for high-performance vehicles where wheel spin under acceleration would cause loss of control.

How do I configure the default physics profile for a car?

The default Car physics profile GUID is 6b91a94f01b6472eaca31d9420ec2367. The default Boat profile is 47258d0dcad14cb8be26e24c1ef3449e. The default Helicopter profile is bb9f9f0204c4462ca7d976b87d1336d4. The default Plane profile is 93a47d6d40454335b4784e803628ac54. These profiles are used when the Vehicle prefab's root Rigidbody mass is exactly 1.0 and any WheelCollider masses are also exactly 1.0. If your vehicle does not meet those conditions, no default profile is applied and you must either assign a Physics_Profile explicitly or tune the vehicle without a profile.

Best practices

  • Always generate a fresh GUID for every vehicle asset. Do not reuse GUIDs from other assets.
  • Use Speed_Max values that account for the 1.25 internal multiplier. A target display speed of 100 kph requires a Speed_Max of approximately 22.2 m/s in the .dat.
  • Configure ForwardGearRatios as a smooth progression. Abrupt ratio changes produce jerky acceleration. A typical 5-speed car uses ratios that decrease by approximately 30-40 percent per gear.
  • Set EngineMaxTorque to 1.0 and use the EngineCurvesComponent torque curve for actual torque tuning. The field is a global multiplier; use it only for coarse adjustment.
  • Author WheelConfigurations for every wheel on the vehicle. Even non-powered, non-steered wheels need entries to synchronize their visual models.
  • Match WheelColliderPath and ModelPath exactly. A typo in either path produces a missing wheel.
  • Set ModelUseColliderPose true on every wheel that has a corresponding collider. This ensures the visual model follows the physics pose exactly.
  • Use CrawlerTrackSteering_MaxSpeedScale to keep track steering controllable at high speeds. A value of 0.5 reduces steering torque by 50 percent at maximum speed.
  • Test paint masks with at least three different player paint colors before publishing. A mask that looks correct in the Unity Editor may reveal unexpected UV island assignments when painted in-game.
  • Set GearShift_AllowSkippingGears false for vehicles where sequential gear shifts are important for the driving feel, such as sports cars or racing vehicles.

Advanced considerations

Vehicles with complex multiple-battery configurations

The battery system supports four distinct BatteryMode states driven by separate conditions: BatteryMode_Driving (player is driving), BatteryMode_Empty (vehicle is empty), BatteryMode_Headlights (headlights are on), and BatteryMode_Sirens (siren is on). Each mode can be set to Charge, Burn, or None. A common configuration for an electric police vehicle is BatteryMode_Empty Charge (recharges while parked), BatteryMode_Driving Burn (uses charge while driving), BatteryMode_Headlights Burn (headlights drain the battery), and BatteryMode_Sirens Burn (sirens drain the battery). The Battery_Charge_Rate and Battery_Burn_Rate fields control the rate per second for each active mode.

Vehicle redirectors and paint color inheritance

Vehicle Redirector assets (Bundles/Vehicles/Redirectors/*.asset) can override a vehicle's spawn paint color without modifying the vehicle's .dat file. The redirector's LoadPaintColor property sets a fixed paint color for a specific vehicle spawn point, and LoadPaintColor_SelectFromDefaultPaintColors selects a random color from the vehicle's DefaultPaintColors list. The redirector system is how the 128 official color variants are implemented without duplicating vehicle assets.

Engine sound type selection considerations

The Legacy engine sound type is simpler to configure (only Pitch_Idle and Pitch_Drive are needed) but provides less realistic audio behavior because pitch is not directly tied to engine RPM. The EngineRPMSimple type requires an RpmEngineSoundConfiguration dictionary with four fields (IdlePitch, IdleVolume, MaxPitch, MaxVolume) but produces audio that more accurately reflects the engine state. For high-fidelity vehicle mods, the cohort recommendation is EngineRPMSimple.

Wheel balancing for motorcycles and bicycles

Motorcycles and bicycles use the Steering_LeaningForceMultiplier field to apply leaning torque based on steering input. The leaning force is scaled by normalized speed when Steering_LeaningForce_ScaleWithSpeed is true, with the Steering_LeaningForce_SpeedExponent controlling the response curve. The RollAngularVelocityDamping field is critical for damping the leaning oscillation - without it, the vehicle oscillates around the roll axis after every turn.

Explosion force directionality

The Explosion_Min_Force and Explosion_Max_Force vector3 fields allow directional explosion forces. The Y-axis component determines vertical force. The official default of (0, 1024, 0) produces a purely upward explosion force with some randomization between the min and max values. For vehicles that should explode outward as well as upward (e.g., an ammunition-laden military vehicle), set non-zero X and Z components.

Appendices

Appendix A: Quick-reference property card

CategoryKey fields
IdentityGUID, ID, Type, Name, Rarity, Engine
Speed and steeringSpeed_Max, Speed_Min, Steering_Angle_Max, Steering_Angle_FullSpeed_Factor, Steering_Angle_Turn_Speed, Brake
Engine and gearsEngineIdleRPM, EngineMaxRPM, EngineMaxTorque, ForwardGearRatios, ReverseGearRatio, GearShift_*
WheelsWheelConfigurations (list), Wheel_Collider_Mass_Override, Tire_ID, Tires_Invulnerable
FuelFuel, Fuel_Burn_Rate, Fuel_Min, Fuel_Max
BatteryBattery_Powered, Battery_Burn_Rate, Battery_Charge_Rate, BatteryMode_*, Can_Steal_Battery, Default_Battery
Health and armorHealth, Health_Min, Health_Max, Invulnerable, Environment_Invulnerable, Explosions_Invulnerable, Bumper_*
TurretsTurrets, Turret_#_Seat_Index, Turret_#_Item_ID, Turret_#_Yaw_*, Turret_#_Pitch_*
PaintIsPaintable, PaintableSections, DefaultPaintColor_Mode, DefaultPaintColors, DefaultPaintColor_Configuration
AudioEngineSound_Type, Pitch_Idle, Pitch_Drive, EngineSound, Has_Horn, HornAudioClip, IgnitionAudioClip
ExplosionExplosion, Explosion_Force_Multiplier, Explosion_Max_Force, Explosion_Min_Force, ShouldExplosionBurnMaterials, ShouldExplosionCauseDamage
Crawler tracksCrawlerTrackTilingMaterials, CrawlerTrackSteering_Torque, CrawlerTrackSteering_SidewaysFrictionMultiplier, CrawlerTrackSteering_MaxSpeedScale
TrainTrain_Car_Length, Train_Track_Offset, Train_Wheel_Offset
StorageTrunk_Storage_X, Trunk_Storage_Y, Drops_Table_ID, Drops_Max, Drops_Min

Appendix B: Enumeration reference

EnumerationValues
EEngineCar, Plane, Blimp, Boat, Train
EVehicleBuildablePlacementRuleNone, AlwaysAllow, Block
EVehicleDefaultPaintColorModeNone, List, RandomHueOrGrayscale
EVehicleEngineSoundTypeLegacy, EngineRPMSimple
EWheelMotionEffectsModeNone, BothDirections, ForwardOnly, BackwardOnly
EWheelSteeringModeNone, SteeringAngle, CrawlerTrack
ECrawlerTrackForwardModeAuto, Clockwise, CounterClockwise
EBatteryModeNone, Charge, Burn
EItemRarityCommon, Uncommon, Rare, Epic, Legendary, Mythical

Appendix C: Compatibility matrix

Vehicle typeWheelsTurretsFuelBatteryTrain systemPaintSteering
CarStandardOptionalStandardOptionalNoYesStandard
TruckStandardOptionalStandardOptionalNoYesStandard
APCStandard + crawlerYesStandardOptionalNoYesStandard + crawler
HelicopterNo (uses rotors)OptionalStandardOptionalNoYesAir
PlaneNo (uses wheels + lift)OptionalStandardOptionalNoYesAir
BoatNo (uses water physics)OptionalStandardOptionalNoYesWater
BlimpNo (uses lift)NoStandardOptionalNoYesAir
TrainStandardNoStandardOptionalYesYesNone (track-following)
BicycleStandard (2)NoNoNoNoOptionalStandard
MotorcycleStandard (2)NoStandardOptionalNoOptionalStandard + leaning

Appendix D: Diagnostic tables

SymptomMost likely causeResolution
Vehicle does not spawnGUID or ID conflictConfirm GUID is unique and ID not in use by another mod
Vehicle spawns but is invisibleMaster bundle missing or prefab path wrongConfirm bundle in correct folder and prefab named correctly
Vehicle does not moveSpeed_Max is 0 or not setSet a positive value
Vehicle moves but accelerates very slowlyEngineMaxTorque too low, gear ratios too high, or no EngineCurvesComponent attachedIncrease EngineMaxTorque or adjust gear ratios
Vehicle shifts gears but torque drops to zero for too longGearShift_Duration too highReduce to 0.3-0.5 seconds
Vehicle does not shift gearsGearShift_UpThresholdRPM never reached or ForwardGearRatios emptyVerify engine can reach shift RPM and gear list is populated
Wheels do not rotate visuallyModelUseColliderPose false or WheelColliderPath incorrectSet ModelUseColliderPose true and verify path
Wheels float above groundWheelCollider radius larger than wheel meshMatch radius to mesh dimensions
Turret does not fireTurret_#_Item_ID missing or invalidVerify item ID is a valid GunAsset with Turret property
Turret does not rotateTurret_#_Yaw_Min equals Turret_#_Yaw_MaxSet a range of at least 90 degrees
Paint does not applyIsPaintable false or PaintableSections emptySet IsPaintable true and configure sections
Paint applies to wrong areasMaterialIndex references wrong material on the RendererVerify the material index in the Renderer's material list
Fuel decreases too fastFuel_Burn_Rate too highReduce to 2.05 for cars or lower for efficient vehicles
Battery does not charge while drivingBatteryMode_Driving not set to ChargeSet BatteryMode_Driving Charge
Cannot enter the vehicleExit transforms at wrong position or missing InteractableVehicle scriptAdd script to prefab root and verify exit transforms
Horn does not playHornAudioClip not set or Has_Horn falseAssign a valid audio clip and set Has_Horn true

Cross-references

Document history

VersionDateAuthorNotes
1.02026-07-2657 StudiosInitial publication. Complete vehicle asset .dat field reference covering all 19 property dictionaries, 14 enumerations, engine RPM and gear ratio mechanics, wheel configuration system, turret system, paint system, sound system, battery and fuel systems, health and armor subsystem, crawler track properties, train system, three worked .dat examples, Mermaid architecture diagrams, 20 FAQ entries, quick-reference appendices, and compatibility matrix.