Advanced Vehicle System

Changelog

Comprehensive version history and release notes for Advanced Vehicle System.

Patch 1.5.3
  • fix
    GearChanged event pins (PreviousGear, CurrentGear) not redirecting to OldGearIndex, NewGearIndex in existing blueprints
  • fix
    Vehicle not yet initialized when Blueprint BeginPlay runs (GetInitializationState returning false), regression from 1.4
  • fix
    [Wheel Reprojection] Projected wheel meshes colliding with the ground, holding the vehicle up on its wheel meshes instead of its suspension
  • fix
    [Wheel Reprojection] "Connect to Bone" constraining the bone to the hidden wheel mesh instead of the projected mesh
  • fix
    [Wheel Reprojection] Projected wheel mesh left behind after RemoveWheel or DestroyWheelMesh
  • fix
    [Wheel Reprojection] Projected wheel mesh not updating after ChangeStaticMesh
  • change
    [Wheel Reprojection] CamberCompressed/CamberDecompressed/ReprojectionSmoothAlpha defaults restored to 1.4 values
  • change
    Excess suspension compression force now eases in over half the spring length past full compression instead of switching on instantly (reduces bouncing on fully compressed springs)
  • change
    Merge VehicleSetup_HUD changes from AVS 1.4 branch
  • fix
    BrakeLockSpeed locking wheels with no brakes, now only locks braking, handbrake, or driving wheels
    • Info: BrakeLockSpeed change in 1.5.2 was incorrect and allowed non-braking wheels to lock.
  • fix
    Suspension pulling the vehicle toward the ground (and reversing tire friction) when rebound damping exceeded the spring force
  • fix
    Suspension had no damping past full compression (regression from 1.5.0)
  • INFO
    Optimization: Hitched trailers no longer send movement network updates that every client discarded
  • fix
    Hitched trailers left behind when the towing vehicle teleports (TeleportVehicle, or a network correction over 30 m)
  • fix
    TeleportVehicle misplacing physics wheels on scaled vehicles
  • fix
    Vehicle lights not working, light controller Relations from 1.4 vehicles loading blank (regressed in 1.5.0)
    • Info: Vehicles re-saved in 1.5.0 - 1.5.2 already lost their Relations values and need them re-entered
  • fix
    Light controller Relations not editable in the Details panel (regressed in 1.5.0)
Patch 1.5.2
  • fix
    Center of mass component not working as expected, "Visualize Center of Mass" also not working
  • fix
    AVS_CoreDefaults missing a hard reference and sometimes fails to be included in packaged builds, causing a crash on vehicle spawn
  • fix
    Wheel trace offsets get cached incorrectly in rare cases when BodyInstance is not ready at spawn
  • fix
    Automatically created wheel shapes not setting up blocking collisions
  • fix
    "Connect to Bone" feature not creating correct bone constraints
  • fix
    DebugHUD not being removed when vehicle possession ends
  • fix
    Changing DisableSkeletalCollisions has no effect
  • fix
    25 TPS ticking too slowly at certain frame rates (ie: 60 FPS = 20 TPS)
  • fix
    AddWheel creates duplicate wheels meshes when WheelReprojection is enabled
  • fix
    GetGear functions returning incorrectly for invalid indexes
  • fix
    [Physics Wheel Mode] SetSpring functions not updating constraints
  • fix
    TeleportVehicle function not working
  • fix
    [Wheel Effects] Global Effects only checking creation requirements once, meaning effects such as skids likely never get created
  • fix
    Engine RPM dropping to the gear's LowRPM when releasing throttle while in gear
  • fix
    BrakeLockSpeed only locking driving and handbrake wheels instead of all wheels
  • fix
    Engine RPM revving up and down too quickly while in neutral
  • fix
    Automatic transmission downshifting to 1st gear instead of the next suitable gear
  • fix
    AddWheelTraceIgnoreActor and TraceIgnoreActors having no effect on wheel traces
  • change
    AVS_Vehicle constructor now includes ObjectInitializer (allow override of subobjects)
  • change
    Added _API to CommonFunctions (allow references from external modules)
  • change
    Renamed GetPluginVersion to GetAvsPluginVersion to avoid confusion
  • INFO
    Optimization: Do not create WheelController until it's needed by physics wheels
  • INFO
    Optimization: Reorder initialization to avoid repeated or unnecessary work
  • INFO
    Info: Optimization work reduced average AVS vehicle creation overhead by approximately 35%, including a 49% reduction in AVS BeginPlay cost.
Patch 1.5.1
  • fix
    Wheels behaving incorrectly on moving platforms
  • fix
    Add missing C++ overrides for GearChanged, ShifterChanged, UpdateLightDecorations
  • fix
    BeginPlay error caused by CameraPivot
Release 1.5.0
  • new
    Full C++ conversion. Every line of blueprint code has been ported to C++. This was the bulk of the work and the reason this release took as long as it did.
  • new
    New AVS_CameraPivot component. Set up complex camera behavior without building it from scratch each time - including how the camera reacts when the vehicle flips, G-force movement, trailing, lag, and so on.
  • new
    New WheelEffects system. Effects are configured as an array of logic objects that can contain any custom code.
    • Old SurfaceEffects system removed, ported over as a new WheelEffect
    • BrakeSqueal wheel effect included as an example of custom C++ effect logic
    • Custom WheelEffect logic can also be written in Blueprints
  • change
    Damping reworked. More stable at high speeds, no more instability around 140 MPH from velocity leakage.
  • new
    Advanced: New override surface for custom drivetrain and physics force overrides. Users can now implement their own drivetrain and physics force logic.
  • change
    Trailer networking improvements.
    • Adaptive send rate: trailers update more when needed, stop updating while resting.
  • new
    Stats screen added: stat AVS
  • change
    Component base class unification across the entire plugin
  • INFO
    Info: All 1.4 releases from 1.4.4 onward consisted of changes backported from 1.5 development
Patch 1.4.6
  • fix
    TraceChannel setup incorrectly, making it unusable
  • fix
    Memory leak when not simulating physics
  • fix
    VehicleSetup_HUD fps calculations now use safe divide, avoiding invalid values when delta time is not initialized
  • new
    'BrakeLockSpeed' option, sets the speed at which the wheels will fully lock up to hold the vehicle still when brakes are fully engaged.
  • new
    'DisableSkeletalCollisions' option, allows you to toggle the default behavior of AVS disabling skeletal collisions
  • new
    'AddWheelTraceIgnoreActor' function, convenience function for adding actors to the trace ignore list on the wheel
  • new
    Event "OnVehicleFlipped" that fires when the vehicle Up angle changes past "UpsideDownAngleThreshold" config
  • new
    'GetIsUpsideDown' function, returns the current upside down state using 'UpsideDownAngleThreshold'
  • new
    'bWheelsPushPhysics' option, allows you to toggle the default behavior of AVS wheels pushing physics actors/components. This fixes the teeter totter issue when using raycast wheels.
  • change
    Improvements to trailer hitch networking (better support for joining clients, less network usage)
  • change
    Improvements to wheel slip behavior
    • new
      'bWheelSpinEnabled' option, allows wheelspin visual behavior to be toggled per wheel
    • new
      Wheel output now includes 'Slip' and 'Slip2D' values for reading total and directional wheel slip
Patch 1.4.5
  • fix
    Vehicles becoming stuck when stopped and in contact with something
  • revert
    "Physics refusing to come out of sleep" fix from 1.4.4
    • This fix was misdiagnosed and the fix above was the correct fix
  • change
    Separate SimData into it's own widget, so it can be reused inside other widgets
Patch 1.4.4
  • new
    Option to set skid effect speed by surface type
  • fix
    Physics refusing to come out of sleep causing vehicles to ignore inputs
  • fix
    Trailers not hitching at the correct location when a vehicle is scaled
  • fix
    Suspension aggressively flinging vehicle when it lands at an angle
Patch 1.4.3
  • new
    'SteeringRecenterSpeed' option (The speed at which steering returns to zero)
    • Note: This will change steering behavior, unless you are using the default value for SteeringSpeed. Configure it after updating the plugin.
  • change
    Debug menu now appears on clients as well, when "Display Debug Menu" is toggled
  • fix
    Copy how epic sets up their root components to hopefully avoid future BP corruption bugs
  • fix
    WheelConfig.WheelPrim not having a default value, causing compile issues in some cases
Patch 1.4.2
  • INFO
    Unreal 5.4 Support, this patch is for UE5.4 only.
Patch 1.4.1
  • new
    'GetIsSteerableWheel' for vehicle wheels
  • new
    Implemented passive mode in wheel components
  • change
    Add manual control over wheel brake torque amount (deprecated "BrakePressure" in Wheel in favor of this)
  • change
    vehicle movement networking to use Unreal's replicated world time, instead of calculating times locally. This allows the state queue to more accurately drop late rpcs, decreasing jitter.
  • change
    Improved suspension for physics wheel mode
    • Springs now work on wheels with no contact
    • Contact trace is now works the same as raycast wheels
  • fix
    Wheel spinning in place when a vehicle is at rest
  • fix
    Vehicles 'floating' around after going into network rest on clients
  • fix
    Physics jitter when stationary and pressing an input
  • fix
    NaN error and poor performance when not using a wheel mesh with raycast wheels
  • fix
    Corrected return name on GetWheelRadius
  • fix
    Suspension ignores contact normal, causing vehicle to move incorrectly. Thanks @Elitic
Release 1.4.0
  • new
    Raycast wheel mode, supports runtime wheel mode switching
  • new
    Passive Mode Vehicles now enter a passive mode while idling, which disables ticking
  • new
    Suspension limits preview in VehicleSetupHUD
  • change
    Resting now waits 3 seconds after entering the velocity threshold (to avoid RPC thrashing)
  • change
    Network resting is now decoupled from local resting, but copies it's state
  • change
    Reworked all suspension related code, large performance increase over 1.3
  • change
    Physics wheels no longer use collision hits to detect contact (instead uses raycast)
  • change
    TeleportVehicle now includes an option to maintain velocities relative to the vehicle chassis
  • fix
    Network relevancy not being updated when not using a custom camera manager
Patch 1.3.3
  • INFO
    Fix compiler issue on linux
  • INFO
    Support for Unreal 5.1
Patch 1.3.2
  • fix
    Update suspension to only use chaos transforms in calculations (Fix physics jittering and other weirdness)
  • fix
    ChangeStaticMesh on Vehicle_Wheel causing physics errors after toggling physics off/on (Fixed contact modification not updating)
  • fix
    Suspension downforce not working when vehicle is upside down
  • change
    Updated VehicleSetupHUD to show Vehicle Mass and Physics tick rate.
  • change
    Updated VehicleSetupHUD coloring to help with readability
  • change
    Moved some wheel specific code out of AVS_Vehicle and into Vehicle_Wheel
Patch 1.3.1
  • fix
    Occasional physics thread error on vehicle initialization (Fixed race condition between vehicle init and physics thread)
  • fix
    Wheels go to sleep and don't follow vehicle when in network rest mode
  • change
    Suspension damper updated to be more realistic
  • change
    Suspension damper (Shock Absorption) now uses kNs/m (Kilonewton second per meter) as units
Release 1.3.0
  • INFO
    UE5/Chaos Port
Patch 1.2.8
  • change
    Resting now waits 3 seconds after entering the velocity threshold (to avoid RPC thrashing)
  • change
    Network resting is now decoupled from local resting, but copies it's state
  • new
    Passive Mode Vehicles now enter a passive mode while idling, which disables ticking and sets network dormancy
  • INFO
    the following backported from 1.3.x-
  • INFO
    Fix network relevancy not being updated when not using a custom camera manager
  • INFO
    Fix gear struct variables not being initialized properly, causing warnings while packaging
  • INFO
    Fix linux compiler issue
  • INFO
    Update plugin structure to be compliant with BuildSettings.V2
  • INFO
    Add GetUnrealEngineVersion function
  • INFO
    Update VehicleSetup_HUD similar to the UE5 version (Add VehicleMass, PhysicsState, UnrealVersion)
  • INFO
    Add "PreviewInEditor" setting in wheels, used to preview wheel travel
  • INFO
    Add "RollingResistance" setting in wheels
Patch 1.2.7
  • new
    Experimental Feature: WheelReprojectionCamber, adds on to the wheel reprojection feature allowing cosmetic wheel camber
  • fix
    Revert change to PostPhysics tick group as default (PostPhysics causes issues with network replication)
  • change
    VehicleSetupHUD now shows Handbrake input
Patch 1.2.6
  • new
    Stability Control System, attempts to keep vehicle aligned with direction of travel (disabled by default)
  • new
    By request, helper function to destroy components owned by the AVS_Vehicle
  • new
    Network options for syncing location/rotation individually, can be changed during runtime
  • new
    Support for cinematics in Unreal 4.26+ (Requires wheel meshes to be added manually when setting up vehicles)
  • change
    ChangedGear function now receives Previous and Current gear values (useful for checking shift direction)
  • change
    Removed "LinearDrag" option, now just uses the Linear Damping from VehicleMesh directly
  • fix
    Wheels not working correctly while detached when using the "Prevent Wheel Clipping" setting
  • fix
    Errors on dedicated servers related to wheel controllers
  • fix
    Vehicle suspension raising/dropping when pressing the throttle while the "Dynamic Air Drag" setting is enabled
  • fix
    VehicleMesh physics never go to sleep (performance improvements)
  • fix
    Host client sending double inputs (network improvements)
  • fix
    UpdateWheelLocks being called more than necessary (performance improvements)
  • fix
    Wheel properties not being properly applied to manually added wheel meshes
Patch 1.2.5
  • new
    Vehicle_Wheel can now change location/rotation at runtime easily using the SetWheelPosition function
  • new
    Automatic Shifter Position, automatically changes PRND based on current vehicle inputs
  • new
    Combined function for Throttle and Brake called SetThrottleAndBrakeInput, Negative throttle used as brake, brake as reverse when Automatic Shifter Position is enabled
  • new
    ChangedGear event
  • new
    New option "Prevent Wheels Clipping" that prevents wheels from getting stuck in the ground or under objects
  • fix
    UpdateLightDecorations function changed from private to protected, as it's intended to be overridden
  • fix
    Dedicated server error spam related to wheel particles
  • fix
    Various improvements to access specifiers
Patch 1.2.4
  • fix
    MP: Client vehicles being flung when physics gets enabled in certain circumstances
  • fix
    Vehicle_Wheel ChangeStaticMesh function failing when called after construction but before onBeginPlay (such as in onRep functions)
Patch 1.2.3
  • new
    EXPERIMENTAL FEATURE - Wheel Reprojection, fixes wheels 'tilting' in high friction/weight scenarios
    • Note: Does not currently work with Adding/Removing wheels, or wheel detachment. Possibly broken with other features enabled
  • new
    Zero throttle while shifting config setting
  • change
    VehicleSetupHUD now shows the internally used speed unit instead of MPH
  • change
    Added acceleration to the VehicleSetupHUD, and made many back end improvements
  • change
    Added Vehicle Hitch to the correct category in the component menu
  • change
    Added/Updated function descriptions related to the 1.2 update
  • fix
    Removed "Host Trailer Rotation" from showing in the config
  • fix
    Access error after killing a trailer that is hitched to a vehicle
  • fix
    Error spam for engine and skid sounds on dedicated servers
  • fix
    "No mesh detected!" error showing incorrectly when duplicating wheels in the editor
  • INFO
    Removed various sections of old code
Patch 1.2.2
  • fix
    Wheels being in the wrong location on skeletal meshes
Patch 1.2.1
  • fix
    Compile error due to private function in Vehicle_Hitch
Release 1.2.0
  • fix
    GetCurrentSteeringInput's output name being "AirSpeed" instead of "SteeringInput"
  • fix
    All spotlights connected to vehicle incorrectly getting their visibility set to false during onBeginPlay
  • fix
    SpeedUnit incorrectly showing in config (Is used internally only)
  • fix
    Divide by Zero error on vehicles with no driving wheels (like trailers)
  • fix
    Engine not starting on clients on vehicles with no engine audio
  • fix
    LightControllers not being marked active when used with no light sources
  • fix
    Possible Editor crash when reordering components in a vehicle blueprint
  • change
    GetPluginVersion now reads directly from the Plugin info
  • change
    Ignition sound now plays on all clients (EngineRunning is now networked differently)
  • change
    Lights System now supports all light types (as opposed to just spotlights)
  • change
    Neutral gear now properly calculates independent of wheel speed
  • change
    EngineRunning now defaults to false
  • change
    Movement synchronization is now smoothed, new option for smoothing amount
  • change
    Vehicles now limit their max angular velocity, added corresponding setting in "Vehicle - Physics"
  • new
    Trailer Support and Hitching system
  • new
    Added network rest states for significantly better network performance
  • new
    Functions for Adding/Removing Wheels at runtime
  • new
    Function for offsetting custom center of mass
  • new
    Options to Start with Physics (default true), Start with Engine Running (default false)
Patch 1.1.1
  • new
    Wheel effects now support different surfaces
  • new
    Config for unit of speed used internally
  • new
    GetAcceleration node (returns change of speed per second)
  • fix
    Rare full desync on clients caused by the network owner changing
  • fix
    Fixed throttle sticking when unpossessing a vehicle (Previous fix only worked in singleplayer)
  • change
    Updated vehicle setup HUD with better layout and now shows default values instead of 0
  • INFO
    Experimental: Added experimental option to limit acceleration to (SelectedSpeedUnit per Second)
Release 1.1.0
  • new
    Unreal 4.25 Support
  • new
    Wheel Effects! Skid Marks, Smoke, Sound Effects!
  • new
    Support for overriding/controlling torque and speed on a per wheel basis
  • fix
    VehicleSetup_HUD breaking vehicles onBeginPlay (due to a change in UE4.23)
  • fix
    GetRotationSpeed output name
  • fix
    Wheel meshes that had their scale changed would report the wrong radius causing vehicles to be over/underpowered
Patch 1.0.2
  • new
    Proper input functions, deprecated input nodes now link to this internally
  • new
    Added GetPluginVersion function
  • new
    Option for DynamicAirDrag, instead of always being on
  • new
    Added new component for editing and visualizing center of mass
  • change
    Wheel variables now initialize during construction instead of onBeginPlay
  • change
    Default steering curve now has a higher minimum steering percent (0.3 vs 0.1)
  • change
    Netcode now takes latency into account when syncing physics, making it much smoother
  • change
    Renamed some wheel detach/attachment nodes to make their use more clear. Old nodes still exist and are marked as deprecated.
  • change
    DynamicAirDrag now allows editing the default Drag
  • change
    DynamicAirDrag now aggressively applies drag when not moving to prevent unwanted movements
  • fix
    Clamped throttle and brake inputs to prevent controllers doubling inputs
  • fix
    Stutter every 5 seconds or so on clients when replicating
  • fix
    Some config variables unable to be changed on UE4.24
  • fix
    Engine Audio component throwing errors on dedicated servers
  • fix
    Brakes/Throttle inputs stuck when unpossessing vehicle
Patch 1.0.1
  • INFO
    Initial marketplace launch
  • INFO
    Fixed compile error
Release 1.0.0