AVS 1.5 Release

AVS 1.5 Release

DevLogAdvanced Vehicle System

It's time to just send it

AVS 1.5 is here. This is the biggest single update the plugin has ever had. But if it was done right, you shouldn't notice much of a difference.

The headline is a full C++ conversion of the entire plugin. On top of that, 1.5 adds a new camera pivot component, a modular wheel effects system, physical wheelspin, reworked damping, better trailer networking, new physics extension points, and a proper stats screen.

If you just want the complete list, the patch notes are at the bottom. Here are the changes that matter most.

Rollout note: AVS 1.5 will launch on Unreal Engine 5.8 first. That is where the bleeding-edge projects are, while users on older engine versions are more likely to be working on mature projects that do not need a possibly rough update dropped on them. Once the early issues are ironed out, 1.5 will roll out to more engine versions.

A full C++ foundation

Every function, component, and system that was still in Blueprint has been moved to native C++. That was the bulk of the work and the reason this release took almost eight months from start to finish.

This is not being sold as some massive performance breakthrough. The Blueprint version was already well optimized, so the direct performance improvement is useful but not dramatic. The real win is development: I can work on AVS directly inside newer projects, remove a pile of old technical debt, and build future systems on a cleaner foundation.

Most existing references, Blueprints, and saved assets should carry over through Unreal's redirect system. Still, this conversion touches nearly every part of the plugin, so expect some projects to need manual cleanup after updating. Back up your project before moving to 1.5 and give the upgrade a real test before committing to it.

New Camera Pivot Component

Settings are exaggerated to show capabilities

The new AVS_CameraPivot component handles most advanced camera rig work that tends to get rebuilt for every project. It lets you handle how the camera reacts to input and vehicle orientation much easier than Unreal's built in systems. As well as handling advanced camera movements for things like g-force or traditional camera lag, without having to worry about tick order or other problems that introduce camera stuttering.

Attach your camera or spring arm to the pivot, feed your look input into it, and let it handle the annoying math. It can be used for first person, third person, or more specialized camera setups without tying everything to control rotation.

Location and rotation can each be static, lagged, or spring-driven, with separate limits, locks, and scaling controls. That gives you room to build anything from a clean stable chase camera to a heavier rig that reacts to acceleration, G-force, and the vehicle flipping over.

Wheelspin now affects the vehicle

Wheel spin got some visual improvements in 1.4.6, but that patch deliberately avoided changing physics behavior in existing projects. The wheels could look like they were spinning without the slip affecting the vehicle itself.

In 1.5, wheelspin now comes from excess drive torque on the physics thread. When the available friction cannot handle what the drivetrain is asking for, the wheel spins and that slip feeds back into the vehicle's behavior. In practical terms: burnouts work now, and wheelspin is no longer just a visual trick.

AVS still is not simulating every part of an engine and drivetrain, so there is some approximation involved. It is still a much better foundation than keeping the wheel perfectly planted regardless of how much torque is being thrown at it.

A modular Wheel Effects system

The old SurfaceEffects system has been replaced by WheelEffects. Instead of one fixed system, effects are now an array of self-contained logic objects. Skid marks, smoke, sounds, surface reactions, or completely custom behavior can all live as separate effects.

Default effects are configured on the vehicle and can be overridden per wheel and per surface when needed. That means common changes propagate across the vehicle without forcing you to rebuild the same setup on every wheel.

Wheel effects config for a whole vehicle; individual wheels use overrides

The old skid effects behavior still exists as one of the default WheelEffects. There is also a BrakeSqueal example showing how to write custom effect logic, and custom effects can be built in either C++ or Blueprints.

Better damping at high speed

Suspension damping now uses the spring's actual compression and extension instead of estimating it from movement at the wheel contact point. The old approximation could leak velocity into the calculation and become unstable in demanding high-speed corners.

Damping calculation: old vs. new. The bank is intentionally extreme to exaggerate the problem.

The new calculation is more physically meaningful and stays composed in situations where the old version could start becoming unstable. This is the kind of simulation work I want to keep pushing further after 1.5.

The smaller changes

There is more in this release than the headline systems:

  • a new override surface for custom drivetrain and physics-force logic (advanced, C++ only)
  • adaptive trailer networking that updates more when needed and backs off while resting
  • a stat AVS screen for profiling and debugging
  • unified component base classes across the plugin
  • the AVS 1.4 updates from 1.4.4 onward, which were backports from 1.5 development

What comes after 1.5

The main direction after this release is AVS 2.0, with a stronger focus on simulation and modularity. The goal is make simulation level upgrades across the board, while maintaining the simplicity of AVS, not make building vehicles require an engineering degree. AVS still needs to be good for quick sandbox vehicles, while giving advanced projects room to replace assumptions and push deeper systems when they need to.

The C++ conversion, WheelEffects, damping changes, and new override surfaces are all small pieces of that direction. Some future simulation improvements may land in the current 1.x versions where they make sense, and I am leaving room for a 1.6 if there is a good reason for one. I am not making promises or committing to a release timeline on 2.0 yet.

This release will need real use

A conversion this large is not going to reveal every edge case in pre-release testing. A handful of people have already been running 1.5 in real projects, which has helped a lot, but more issues will show up once more projects start hammering on it.

Back up your project, test the upgrade properly, and let me know when something breaks. Post in any of the #avs_support channels on Discord or send me an email; both are on the contact page. Patch releases will follow as issues are found.

Patch Notes

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