Vehicles System
Purpose and Scope
The Vehicles System in RPG Engine v6 provides drivable wheeled transport for the player, including entering and exiting vehicles, driver and passenger occupancy, possession flow, movement, fuel usage, damage processing, destruction, visual deformation, state handling, UI, and save/load support.
The core parent class for all drivable cars in the project is
BP_Vehicle_Drivable, from which concrete vehicle pawns such
as BP_SportsCar_Pawn and BP_OffroadCar_Pawn
inherit.
This document targets gameplay programmers and technical designers and focuses on runtime architecture: character-side vehicle logic, vehicle-side modules, movement actor setup, fuel and health management, vehicle data assets, interaction flow, state system, and integrations with other project systems.
It does not cover step-by-step setup of new vehicle blueprints, detailed Chaos physics tuning, or per-vehicle balancing. Those topics belong in dedicated how-to and reference documents.
High-Level Architecture
The Vehicles System is split between the character and the vehicle actor.
On the character side,
BP_VehicleComponent manages entering and leaving vehicles,
possession/unpossession, safe exit checks, input context switching, and
character-related vehicle states.
It drives a set of vehicle-related character states, including:
CharacterStates.UnusualSkills.PossessToVehicle— entering a vehicle as driver.CharacterStates.UnusualSkills.FuelVehicle— fueling a vehicle when the player has a compatible canister in inventory.CharacterStates.UnusualSkills.RepairVehicle— repairing a vehicle by interacting with appropriate zones.CharacterStates.UnusualSkills.EnterToVehiclePassenger— entering as passenger.CharacterStates.UnusualSkills.ExitVehiclePassenger— leaving the car as passenger.CharacterStates.UnusualSkills.UnpossessVehicle— unpossessing the vehicle as driver.CharacterStates.Effects.PawnInsideVehicle— indicates that the character is currently inside a vehicle.CharacterStates.Global.Respawn— used when the player is killed inside a vehicle and needs a dedicated respawn flow.
When the character possesses a vehicle as driver, input mapping is
switched to the vehicle-specific context
IMC_Vehicle_Driver.
This mapping context is resolved through the
DT_InputContexts DataTable, and the row to use is selected
by the vehicle’s clarification asset BP_DA_VehicleClar via
the NewInputMappingContext parameter.
Internally this is a map like:
enum_drive→DT_InputContexts, rowVehicleDriverenum_passenger→DT_InputContexts, rowVehiclePassenger
When the player becomes a driver, the Drive entry is
used.
When the player enters as a passenger, the character is attached to a vehicle socket without possession, and the input context switches to the passenger entry.
On the vehicle side,
BP_VehicleModulesMediator and
BP_MainVehicleComponent handle the vehicle’s own state
logic, fuel and health, occupant tracking, destruction state, visual
damage, and integration with the drivable pawn.
Vehicles use the same mediator pattern as characters, but with their own vehicle-side components and data:
BP_VehicleModulesMediator— vehicle mediator component.DT_VehicleStates— vehicle state table.DA_VehicleModulesHUB— vehicle module hub asset.
The core drivable base actor is BP_Vehicle_Drivable,
which inherits from WheeledVehiclePawn.
Project-specific vehicle classes such as
BP_SportsCar_Pawn and BP_OffroadCar_Pawn
inherit from this base and reuse the same shared runtime stack.
Core Runtime Classes
BP_VehicleComponent
BP_VehicleComponent is attached to the player character
and is the main bridge between the character and any drivable
vehicle.
Its responsibilities include:
- entering a vehicle as driver or passenger,
- leaving a vehicle as driver or passenger,
- handling possess/unpossess transitions,
- switching input context between character and vehicle,
- handling character death while inside a vehicle,
- synchronizing these actions across networked gameplay,
- managing collision and safe exit logic.
Important behavior and flags include:
- storing references to the current player and vehicle,
- handling
bThrowKilledOwnerFromVehicle, - handling
bOwnerKilledInsideVehicle, - controlling seat enter/exit states,
- controlling collision changes and ragdoll/camera transitions when needed.
BP_VehicleComponent also integrates with the
character-side mediator and state machine via:
BPI_VehicleComponent_CBPI_StateMachine_CBP_ModulesMediator_C
This makes it the central player-side module for all vehicle interactions.
BP_VehicleModulesMediator
BP_VehicleModulesMediator is the vehicle-side mediator
used to activate and deactivate vehicle gameplay states.
It plays the same architectural role for vehicle modules that
BP_ModulesMediator plays for character modules.
Vehicle state logic is driven through this mediator and the vehicle
state table DT_VehicleStates rather than being hardcoded
directly inside the pawn.
The mediator also uses a dedicated module hub asset:
DA_VehicleModulesHUB— configures which vehicle-specific components are active for a given vehicle type.
BP_MainVehicleComponent
BP_MainVehicleComponent is the central gameplay
component attached to drivable vehicles.
It is responsible for vehicle health, fuel, occupants, destruction state, morph target damage deformation, save/load integration, handling skills or effects applied to the vehicle, and vehicle state handling.
Parent class and interfaces:
ActorComponent— base parent class.BPI_SaveSystem_C— used for saving and loading vehicle data.BPI_VehicleMainComponent_C— main interface for vehicle-specific interactions.BPI_StateMachine_C— used for vehicle state machine integration.
Main variables:
DriverPawn(Pawn) — current driver pawn controlling the vehicle.FuelAmount(real) — current amount of fuel in the vehicle.FuelMaximal(real) — maximum possible fuel capacity.Fuel Consuming Timer Ticks Every N Seconds(real) — timer interval used for periodic fuel consumption.Fuel Amount of Consuming Per Second(real) — amount of fuel consumed every second while fuel usage is active.HealthAmount(real) — current health of the vehicle.MaxHealth(real) — maximum vehicle health.NoFuel(bool) — flag indicating that the vehicle has no fuel left.InfiniteHealth(bool) — flag that prevents the vehicle from taking damage.TurnOnState(bool) — flag indicating whether the vehicle is turned on.bVehicleDestroyed(bool) — flag indicating that the vehicle is destroyed.PawnsInside(Pawn Array) — array of all pawns currently inside the vehicle.PassengerPlacesBusyTags(Name Array) — array of passenger seat tags currently marked as occupied.DamageCauser(Actor) — actor that caused the most recent damage event.VehicleDataAsset(BP_DA_VehicleClar_C) — data asset with vehicle sounds, VFX, tuning, and interaction settings.MorphTargets(S_MorphTargets) — structure storing morph target deformation data for the damaged vehicle mesh.ChaosWheeledVehicleComponent(ChaosWheeledVehicleMovementComponent) — movement component used for wheel physics and vehicle driving behavior.
Delegates and callbacks:
OnFuelRunOut— called when fuel reaches zero.OnTurnOn— called when the vehicle is turned on.OnTurnOff— called when the vehicle is turned off.OnLightsState— called when light state changes.OnBrakeLightsState— called when brake light state changes.OnHealthChanged— called when vehicle health changes.OnDestroyed— called when the vehicle is destroyed.OnDestroyedActivateEffects— called when destruction effects should be activated.OnRepair— called when the vehicle is repaired.OnFueled— called when the vehicle is refueled.
Core responsibilities:
- Tracks the current driver and passengers.
- Synchronizes occupant references through multicast functions such as
Multicast_SetDriverPawnReferenceandMulticast_SetPawnsInside. - Reacts to possession changes through events such as
BPI VMC NewPawnPossessedTo. - Handles vehicle exit through
ExitVehicle(Server) andExitFromVehicle(Owning Client), including input shutdown and camera transition. - Maintains passenger occupancy through
PassengerPlacesBusyTags. - Integrates gameplay skills and effects that target the vehicle.
Fuel management:
Fuel Consuming Processis a timer-based process that periodically decreases fuel.ActivateFuelConsumingStatestarts the fuel consumption timer.End Fuel Consumption Processstops the fuel consumption timer.- When fuel reaches zero,
OnFuelRunOutis triggered and theNoFuelflag becomes true.
Health and damage management:
ApplyDamageprocesses incoming damage unlessInfiniteHealthis enabled.HealthChangedupdates current health state and propagates it to UI/effects.- When health reaches zero, destruction-related states and effects are activated.
Apply Damage to Each Pawn Vehicle Destroyedapplies damage to all pawns inside the vehicle when the vehicle is destroyed.
Morph target integration:
- Morph target functions are used to deform the vehicle mesh based on damage.
ProcessMorphTargetsfinds and applies morph target deformation.OnRep_MorphTargetsreacts to replicated morph target changes on clients.
State machine integration:
Activate State Solver,Cancel State Solver,ActivateStates, andDeactivate Statesare used to manage vehicle states.- Gameplay tags are used to identify and switch between runtime vehicle states such as turned on, turned off, fueling, repair, driver exit, destroyed, and similar conditions.
Collision, hit, and feedback:
- The component reacts to vehicle collision and hit-related events
such as
On Main Skeletal Mesh HitandOnCharacterHitZoneBeginOverlap. - It triggers hit sounds, visual effects, and damage responses depending on impact conditions.
Summary of role:
BP_MainVehicleComponentis the gameplay core of the vehicle system.- It manages health, fuel, destruction, occupants, and state transitions.
- It connects save/load, damage handling, morph targets, effects, skills, and vehicle interaction into one central runtime component.
BP_Vehicle_Drivable
BP_Vehicle_Drivable is the main drivable vehicle actor
and inherits from WheeledVehiclePawn.
All gameplay cars such as BP_SportsCar_Pawn and
BP_OffroadCar_Pawn inherit from this parent and reuse its
component stack.
Key components on the actor include:
- Main skeletal
Mesh ChaosWheeledVehicleMovementComponentBackSpringArmBackCameraAudioComponentSynthComponentMotoDriverZonePassengerZoneCharacterHitZone BWCharacterHitZone FWAlternativeExit_1AlternativeExit_2AlternativeExit_3AlternativeExit_4- hit zone
BoxComponents ContextualAnimSceneActorComponentInRadiusWidgetBP_MainVehicleComponentBP_VehicleModulesMediatorLowHealthEffectTiresDrift
It contains the actual movement-facing actor logic:
- getting wheel references,
- movement and RPM processing,
- gear shifting,
- braking and handbrake behavior,
- drifting detection,
- airborne detection,
- camera interpolation,
- audio and effect playback,
- reacting to turn on/off and destruction,
- implementing save support through
BPI_SaveSystem_C.
Derived classes currently include sports and offroad variants, but the documentation should treat the system as common and reusable rather than per-car specific.
Interaction Zones and Hit Logic
Alternative exit points
AlternativeExit_X billboard components define candidate
positions for safe exit.
If the primary exit is blocked, the system iterates through these
components and uses BPI_VP_GetAlternativeExitPositions to
build a list of world transforms to test for free space.
If more exit components are added, they must also be added to the
output array in BPI_VP_GetAlternativeExitPositions.
Driver and passenger zones
DriverZone and PassengerZone are
BoxComponents used during interaction tracing.
When the player attempts to interact with the vehicle, a line trace is emitted in the direction of the camera.
If the trace hits a component whose owner implements
BPI_VehiclePawn,
BPI_VP_GetInteractionTypeVehicle is called.
Inside that function, the interact component is compared to specific vehicle components:
- If the interact component is
DriverZone, the player enters as driver. - If the interact component is
PassengerZone, the player enters as passenger. - If the interact component is
RepairZone, a repair attempt is triggered. - If the interact component is
FuelZone, a fueling attempt is triggered.
Character hit zones
CharacterHitZone FW and CharacterHitZone BW
are BoxComponents that overlap only with pawns.
On overlap:
- the overlapped component is checked,
- it must have the tag configured in
DA_GS_Equipment.Trigger tag for Affecting with different effects, - and it must implement
BPI_MulticlassData.
If both checks pass, damage is processed:
- if vehicle velocity is higher than
StartVelocityToReactVehicleHitand higher thanBP_StatsComponent.StartVelocityToReactof the victim, damage is applied, - if velocity is higher than
BP_StatsComponent.DeathVelocityHitof the victim, the victim is killed and launched away from the vehicle.
MotoSynth engine sound
SynthComponentMoto is initialized from the
BP_DA_VehicleClar asset via the
MotosynthPreset parameter in the vehicle class function
AssignMotoPreset.
It uses the MotoSynth plugin to generate procedural engine sound based on runtime RPM and movement state.
Low health visual effect
LowHealthEffect is a Niagara component that plays a dark
smoke effect when the vehicle health is low.
The smoke intensity increases as the vehicle health decreases.
Interaction and Occupancy
Entering vehicles
The player enters vehicles through the regular interaction layer:
BP_InteractComponentBPI_Interactables
This keeps vehicles aligned with the same interaction architecture used by other world objects.
On interaction, the system determines whether the player should
become driver or passenger using the relevant vehicle zones and
BPI_VP_GetInteractionTypeVehicle.
Seats and occupant tracking
The system supports:
- one driver,
- one or more passengers.
Passenger occupancy is tracked in
BP_MainVehicleComponent through:
PassengerPlacesBusyTags(Name Array)
This array stores seat occupancy information and is used to determine whether a passenger seat is available.
Exiting vehicles
Vehicle exit is validated before the player is released from the car.
The system:
- checks that the vehicle is not moving,
- requests alternative exit positions from the vehicle through
BPI_VP_GetAlternativeExitPositions, - tests predefined exit points around the vehicle for safe placement.
These points are represented by components such as:
AlternativeExit_1AlternativeExit_2AlternativeExit_3AlternativeExit_4
The returned world transforms are checked for overlap and safe exit conditions before the character is placed there.
State System
Vehicles use their own mediator and their own state table:
DT_VehicleStates
Vehicle states are activated through
BP_VehicleModulesMediator, while
BP_MainVehicleComponent is the main component that works
with that mediator and state machine functions such as:
ActivateStateSolverCancel State SolverActivateStatesDeactivate States
Vehicle states cover runtime conditions such as:
- turned on / turned off,
- fueling,
- repair,
- driver exit,
- destroyed / dead.
One explicit example is:
VehicleStates.Effects.Dead
This state is activated when the vehicle is destroyed and transitions the car into its dead or non-drivable state.
The vehicle state system is separate from character states, while still following the same modular architecture pattern.
Data Model
Instance-editable component parameters
A significant part of runtime vehicle configuration is stored
directly as instance-editable variables in
BP_MainVehicleComponent.
This includes key gameplay values such as:
- fuel,
- health,
- seat occupancy,
- destruction state,
- references to current driver and passengers.
Item data and clarification asset
Vehicles also have item-related data assets such as:
DA_CarDA_SportCar
These use the item data layer and point to the vehicle clarification asset.
The clarification-type data asset is:
BP_DA_VehicleClar
This asset must be assigned in the vehicle item data and contains the
audiovisual and behavioral tuning for the vehicle, including input
mapping context selection for driver and passenger modes through
NewInputMappingContext.
BP_DA_VehicleClar
BP_DA_VehicleClar is a PrimaryDataAsset
that stores configuration data, audio assets, visual effects, and
gameplay tuning parameters for a vehicle.
Below are the main parameters of this asset:
MotosynthPreset(MotoSynthPreset) — preset for the procedural engine sound synthesizer.Looping Audio (all)(SoundBase) — main looping engine sound played while the vehicle is running.Backfire nl(SoundBase) — backfire or exhaust pop sound.Ignition On nl(SoundBase) — sound played when the ignition is turned on.Ignition Off nl(SoundBase) — sound played when the ignition is turned off.Door Open nl(SoundBase) — door opening sound.Door Close nl(SoundBase) — door closing sound.Gear Shift nl(SoundBase) — gear shift sound.Brake Pedal nl(SoundBase) — brake pedal press sound.Engine Begin Slow Accel nl(SoundBase) — sound played when the engine begins slow acceleration.Engine Begin Slow Deccel nl(SoundBase) — sound played when the engine begins slow deceleration.Engine Begin Fast Accel nl(SoundBase) — sound played when the engine begins fast acceleration.Engine Begin Fast Deccel nl(SoundBase) — sound played when the engine begins fast deceleration.Suspention Light nl(SoundBase) — light suspension movement sound.Suspention Heavy nl(SoundBase) — heavy suspension movement sound.Suspention Med nl(SoundBase) — medium suspension movement sound.Tire Bump Soft nl(SoundBase) — soft wheel bump sound.Tire Bump Med nl(SoundBase) — medium wheel bump sound.Tire Bump Hard nl(SoundBase) — hard wheel bump sound.Tire Drifting Start nl(SoundBase) — sound played when tire drifting starts.Tire Drifting End nl(SoundBase) — sound played when tire drifting ends.Tire Handbrake Start nl(SoundBase) — sound played when handbrake skid starts.Vehicle Max MPH(real) — maximum vehicle speed.Vehicle RPM Min(real) — minimum engine RPM value.Vehicle RPM Max(real) — maximum engine RPM value.ToRPMRange(Vector2D) — target RPM range used for mapping or interpolation.FromRPMRange(Vector2D) — source RPM range used for interpolation.ShiftTimeThreshold(real) — minimum time between gear shifts.Gear Acceleration Rates(real) — acceleration coefficient used for gear behavior.Accel Interpolation Speed(real) — interpolation speed for acceleration changes.Deccel Interpolation Speed(real) — interpolation speed for deceleration changes.ShowDebug?(bool) — flag that enables debug information display.Base Acceleration Rate(real) — base acceleration speed value.Base Decceleration Rate(real) — base deceleration speed value.Moto LPF While Drifting(real) — low-pass filter value for engine sound while drifting.Cutoff Speed For Slow/Fast Accel/Deccel(real) — speed threshold used to distinguish slow and fast acceleration or deceleration states.Minimum Speed For Drifting Skids(real) — minimum speed required to activate drifting skid sounds or effects.Minimum Speed For Handbrake Skids(real) — minimum speed required to activate handbrake skid sounds or effects.Target RPM Error Tollerance(real) — allowed error tolerance when comparing current RPM and target RPM during shifting.Drifting Skid LPF Cutoff Freq(real) — low-pass filter cutoff frequency for drifting skid sound.Randomized RPM "To" Value(real) — randomized RPM target value used to add variation to shift behavior and sound.Speed For Idle Fadded Out(real) — speed at which idle engine sound starts fading out.HearVehicleShift?(bool) — flag that enables gear shift sound playback.Tire Roll Start nl(SoundBase) — sound played when tire rolling or skidding starts.Minimum Speed For Motosynth Modulation(real) — minimum speed required for motosynth modulation.CarEngineBreakdownSound(SoundBase) — sound played when the engine breaks down.CarEngineBreakdownPitch(real) — pitch multiplier for the engine breakdown sound.AirborneRamp(SoundBase) — sound played when the vehicle becomes airborne.AirborneRampPitchMod(real) — pitch modifier for airborne sound.AirborneRampVolumeMode(real) — volume modifier for airborne sound.CarEngineBreakdownVolume(real) — volume multiplier for the engine breakdown sound.FuelSoundEffect(SoundBase) — sound played during fueling.RepairSoundEffect(SoundBase) — sound played during repair.FuelNiagaraEffect(NiagaraSystem) — visual effect played during fueling.RepairNiagaraEffect(NiagaraSystem) — visual effect played during repair.HealthIconUI(Texture2D) — UI icon representing vehicle health.MorphTargets(Name) — morph target name used for vehicle mesh deformation visuals.Fuel(DataTableRowHandle) — row handle pointing to the fuel data entry.NewInputMappingContext(E_InteractionTypeVehicle) — input interaction mode or context used while controlling the vehicle.
This asset is the main authoring point for the non-physics expressive behavior and input mode configuration of each vehicle model.
Movement, Input, and Camera
Vehicle input is received by the vehicle actor itself rather than routed as normal on-foot character movement input.
BP_Vehicle_Drivable handles:
- throttle,
- brake,
- steering,
- handbrake,
- lights,
- exit actions,
- camera interpolation,
- reset and speed-related logic.
The movement backbone is
ChaosWheeledVehicleMovementComponent, which provides the
physical wheel-based motion model.
The actor then layers project gameplay behavior on top:
- RPM calculation,
- gear state updates,
- drifting state,
- airborne detection,
- skid effects,
- braking effects,
- wheel suspension feedback.
The camera uses BackCamera and
BackSpringArm, giving the vehicle its own follow-camera
setup rather than reusing the standard on-foot camera directly.
Normal on-foot combat is disabled while driving, and input context is
switched according to the driver or passenger mapping specified in
BP_DA_VehicleClar.
Fuel System
The project uses a single shared fuel logic rather than separate fuel or electric systems.
Fuel is handled primarily by BP_MainVehicleComponent
through:
FuelAmountFuelMaximalFuel Consuming Timer Ticks Every N SecondsFuel Amount of Consuming Per Second
Fuel consumption works through a timer-driven process:
ActivateFuelConsumingStatestarts the fuel consumption timer,- the timer reduces fuel over time,
End Fuel Consumption Processstops the timer when needed.
When fuel reaches zero:
OnFuelRunOutis called,NoFuelbecomes true,- movement is stopped.
A vehicle can still function partially without fuel. For example, lights may still work even if the car can no longer drive.
Fuel item or type data is linked through the Fuel field
in BP_DA_VehicleClar, and the character-side state
CharacterStates.UnusualSkills.FuelVehicle is used to
initiate fueling through interaction.
Health, Damage, and Destruction
Health model
Vehicle health is stored in:
HealthAmountMaxHealth
Damage is ignored if InfiniteHealth is enabled.
Otherwise, incoming damage reduces vehicle health and can eventually destroy the vehicle.
Damage entry points
Vehicle damage is processed through actor-level damage events such as:
Event PointDamageEvent RadialDamage
These events call ApplyDamage(Server).
ApplyDamage(Server):
- checks
InfiniteHealth, - records
DamageCauser, - subtracts incoming damage from
HealthAmount, - clamps health to a minimum of zero,
- updates health state and delegates,
- activates the dead state when health reaches zero.
Hit zones and occupant damage
Vehicles use BoxComponent hit zones for additional
overlap and impact logic.
Examples include:
CharacterHitZone FWCharacterHitZone BW
When overlap conditions are valid, the system can build a
HitResult, call Apply Point Damage, and play
impact effects.
When the vehicle is destroyed, it can also damage all pawns inside
through Apply Damage to Each Pawn Vehicle Destroyed.
The character hit zones additionally support high-velocity impacts against pawns:
- the overlapped component must carry the required trigger tag from
DA_GS_Equipment, - it must implement
BPI_MulticlassData, - if vehicle velocity exceeds
StartVelocityToReactVehicleHitand the victim’sBP_StatsComponent.StartVelocityToReact, damage is applied, - if velocity exceeds
BP_StatsComponent.DeathVelocityHit, the victim is killed and launched away from the car.
Morph targets and visual damage
Visual damage is represented through morph targets.
ProcessMorphTargets updates the damaged appearance of
the vehicle mesh, and OnRep_MorphTargets synchronizes that
deformation across the network.
This allows the body of the vehicle to visibly deform rather than relying only on abstract health values.
Effects and destruction result
Damage feedback uses:
- audio or effect data tables such as
DT_ImpactVehicleAudio, - Niagara effects,
- decals,
- impact sounds,
- low-health effects,
- breakdown sounds.
When the vehicle is fully destroyed:
- destruction effects are played,
- lights and active effects are disabled,
- movement or input handling is disabled,
- the vehicle enters a destroyed state such as
VehicleStates.Effects.Dead, - the car explodes and remains in the world as a non-working object.
It does not simply disappear from the level.
Audio and Visual Effects
Vehicles have a large amount of audiovisual feedback configured
through BP_DA_VehicleClar and driven by
BP_Vehicle_Drivable plus
BP_MainVehicleComponent.
Covered effect groups include:
- ignition on/off,
- looping engine sound,
- gear shifting,
- drifting,
- braking,
- suspension impacts,
- tire bumps,
- airborne events,
- low-health feedback,
- fueling,
- repairing,
- destruction.
Niagara components such as LowHealthEffect and
TiresDrift are placed directly on the vehicle actor.
This gives the system both persistent attached effects and spawn-on-event effects.
Engine sound is additionally shaped using
SynthComponentMoto and the MotosynthPreset
from BP_DA_VehicleClar.
UI and Interaction Actions
The system has a dedicated runtime vehicle panel:
WB_VehiclePanel
This panel displays:
- speed,
- current gear,
- fuel,
- durability or health.
Detailed UI widget structure is not essential for this document, but the panel should be noted as the main HUD element while driving.
Vehicle interactions such as:
- headlights,
- doors,
- trunk,
- horn
are triggered through input actions rather than through a separate radial interaction menu.
Save and Load
Vehicles are saved and restored.
The save layer stores at least:
- health,
- morph targets,
- fuel.
Vehicle save data is stored in:
S_VehicleSaveData
This structure is part of the larger shared save structure:
S_SaveContainer
BP_Vehicle_Drivable and
BP_MainVehicleComponent both participate in save/load
behavior through save interfaces and shared save data containers.
This allows a vehicle to be restored with its important gameplay state rather than always spawning in a default pristine condition.
Integration with Other Systems
Character and interaction systems
Vehicles integrate directly with:
BP_InteractComponentBPI_Interactables- character-side
BP_VehicleComponent - character state and mediator logic
This is what enables entering, exiting, possession flow, driver and passenger modes, fueling, repairing through character skills, and disabling normal combat while driving.
State system
Vehicles have their own vehicle-side state machine:
DT_VehicleStatesBP_VehicleModulesMediatorBP_MainVehicleComponentviaBPI_StateMachine_C
This keeps vehicle-specific runtime conditions separate from character states while still following the same modular architecture pattern used across the project.
Save system
Vehicles integrate with the shared save framework through:
BPI_SaveSystem_CS_SaveContainerS_VehicleSaveData
Building and crafting related data layers
Vehicles also connect to the item/data layer through item data assets
such as DA_Car and DA_SportCar, plus the
clarification asset BP_DA_VehicleClar.
This aligns vehicles with the same project-wide data-driven content model used by other systems.
Combat and damage systems
Vehicles participate in the project’s broader damage ecosystem:
- point damage,
- radial damage,
- damage causers,
- impact effects,
- occupant damage when destroyed,
- high-velocity collisions with characters through hit zones.
Scope and Limitations
This document covers:
- vehicle architecture across character and vehicle actors,
BP_VehicleComponent,BP_MainVehicleComponent,BP_VehicleModulesMediator,BP_Vehicle_Drivable,- fuel,
- health,
- seats,
- lights,
- damage zones,
- morph targets,
- vehicle UI,
- save/load integration,
- input context switching,
- driver and passenger modes.
This document does not cover:
- per-vehicle tuning walkthroughs,
- multiplayer replication details,
- step-by-step creation of new car blueprints,
- cinematic or contextual animation authoring.
Those topics should live in separate how-to or reference documents.
Related docs
state-system.mdcharacter-modules.mdinteraction-and-items.mdsave-load-system.mdbuilding-system.mdcrafting-system.mdstats-and-survival-system.mdai-system.mdmap-and-minimap-system.md