Changelog
Version 1.0 (07/2024)
- Initial Release, basic functionalities
Version 1.1 (08/2024)
- Network Replication
- Support for non-physics-simulating Actors and Non-Vehicle Actors
- Support for impulses through new AddHitToLocation function
- Various refactorings of the component
- Removed: "Vehicle Material" setting
Version 1.2 (09/2024)
- 12 new functions have been added to influence the materials from the Procedural Mesh, for example to control the vehicle lighting.
- New getter function has been added to expose the Procedural Mesh.
- A bug that only one material slot is taken into account (the last index) is also fixed.
Version 1.3 (10/2024)
- Demo map:
- A bug has been fixed in the demo map where the tires constantly slipped into the ground
- Collisions in the demonstration vehicle have been reworked
- C++ optimizations have been made. Among other things, all for loops processing large data sets have been parallelized and are now executed using a multithreading process, which applies dynamic chunking depending on system performance and the size of the data set.
- Multiple UVs are now supported, up to 4 per section of the static mesh.
- The damage model has been completely revised. Among other improvements, you can now define the damage falloff via a curve. In the curve, you can determine precisely where the center of the damage is and how it should be distributed. You can also apply noise to make the damage appear more dynamic.
- An "On Impact" event has been added to allow binding, for example, to damage display widgets or anything that needs to be updated after an impact.
- Collision damping has been improved and now functions more effectively.
- And much more.
Version 1.3.2 (01/2025)
- Fixed an error in the tool that caused the tool to lag when selecting assets.
- C++ accessibility of all important functions, events and variables.
- A new experimental feature: ProtectionBox Component, which can protect areas from deformation (for example driver's seat with driver).
- Minor bugfixes.
Version 2.0 (05/2025)
- Upgrade-Guide
- New documentation (old documentation)
- Complete overhaul of the Deformable Mesh Tool
- Switch from DataTable to DataAsset (DeformableMesh)
- One mesh per data asset instead of potentially multiple meshes in one data table. See Upgrade-Guide
- Support for external marketplace plugin "RealtimeMeshComponent"
- Support for LODs (only in combination with RealtimeMeshComponent)
- Example C++ actor (
ExampleDeformableActor) - Refactorings
- Most of the important functions were moved to C++ for better performance
- All settings are now available in C++
- Some deprecated functions were removed
- We now make use of the
OnRegisterfunction instead ofBeginPlayfor earlier loading of the mesh - Several functions and properties were re-organized for better readability and usability
- New Events
DeformableMeshLoadedDeformableMeshInitializedDeformableMeshUpdatedAfterImpact(this one was broken in previous version)
- New Settings
- Performance-Settings
- Profiling-Settings
- Networking
ResetDeformationis now replicated by defaultRandomCarColoris also replicated by default
- ... many small things - too many to list them here :)
Version 2.1 (06/2025)
- Support for Unreal Engine 5.6
- Attachments:
- We now support attachments, learn more about them in the documentation.
- Hits are forwarded from one component to another.
- Optimized the AfterImpact-Event for better attachment support.
- New settings: Receive Forwarded Hits, Generate Forwarded Hits, Debug Forwarded Hits, Ignore Self Hits.
- Deformation Origin Component:
- Learn how our deformation works in detail.
- Choose where the origin of the deformation should be, per component and/or for the entire actor.
- New setting: Deformation - Ignore Actor Component Origins: Ignore any Deformation Origin Component of type
Actor.
- Enhanced Protection Boxes:
- You can have multiple protection boxes instead of only one.
- Protection boxes can be grouped and don't have to be a children of the Deformable Mesh Component anymore.
- Enhanced Deformation Materials:
- Refactored the template material and extended the existing documentation.
- Enhanced SFX/VFX (Impact Effects):
- New setting: Experimental - Impact Effects: Define SFX / VFX for specific physical materials / surfaces.
- Deprecated settings: Sound - Impact Sound, Experimental - Impact Particles.
- Miscellaneous:
- Refactored the included ExampleCar-Blueprint (renamed some components).
- Changed the default value of Max Hit Deform Percentage to 0.2 (was 0.5).
- Extended the documentation for advanced topics, e.g. Chaos Vehicle and Attachments. We are still working on these topics.
- New setting: Experimental - Min Velocity For Hit.
- Errors and warnings are now additionally displayed in the editor.
Version 2.1.5 (08/2025)
- New Hit Zone Component and an example in the Example Vehicle (engine smokes after several impacts).
- Bugfixes:
- The
After Impactevent sometimes triggered while the impact happened and not after the impact happened. - Fixed an issue with RMC in Unreal Engine 5.5 (only affecting multiplayer games).
- Only one Impact Effect could be triggered at a time.
- The
- Optimizations:
- Only replicate hits that are actually processed. Previously the component sometimes replicated hits, that would not have been processed due to
Impact Registration Interval.
- Only replicate hits that are actually processed. Previously the component sometimes replicated hits, that would not have been processed due to
- Miscellaneous:
- New Before Impact event that is triggered before a hit is processed.
- Both
After ImpactandBefore Impactevents now include a Component parameter (which is the DeformableMeshComponent that triggered the event). - New Settings
Min VelocityandMax Velocityfor Impact Effect.
Version 2.1.5.1 (09/2025)
- Miscellaneous:
- Removed Settings
Min VelocityandMax Velocityfor Impact Effect and replaced withMin Impact StrengthandMax Impact Strengthfor better control. - Basic documentation for profiling
- Removed Settings
Version 2.2 (10/2025)
- Bugfixes:
- (Replication) The hit history may have been processed too early, making it appear as if no hits had been replicated.
- (Replication) The procedural mesh was sometimes not attached correctly for clients and was drive-through.
- (Replication) It was possible that in rare cases, the processing of the hit history could take place in the GameThread, which led to a crash.
- Features:
- You can now change the deformable mesh dynamically using the function
ChangeDeformableMesh. Previously you were not able to change it while playing but now you can! - We now provide a material function
MF_Deformwhich you can use instead of copying or using our template material. - R-Tune exclusive: Move and tilt your wheels on impact using the
UpdateWheelPositionsfunction!
- You can now change the deformable mesh dynamically using the function
- Miscellaneous:
- The StaticMeshExample-Actor (BP_DeformationExampleStaticMesh) is now replicated and can switch between the vehicle deformable mesh and a sphere deformable mesh using
ChangeDeformableMesh. The key binding for this is "F".
- The StaticMeshExample-Actor (BP_DeformationExampleStaticMesh) is now replicated and can switch between the vehicle deformable mesh and a sphere deformable mesh using
Version 2.2.1 (11/2025)
- Support for Unreal Engine 5.7
- Realtime Mesh Component support for Unreal Engine 5.5 - 5.7
Version 2.3
- Support for Unreal Engine 5.8
- Bugfixes:
- Miscellaneous:
- The custom material functions that we provided (e.g. AddMaterialInstanceSlot, SetMaterialFloatParam, ...) are now deprecated and will be removed in future updates. They are not required anymore, because you can simply use the generic material functions provided by the mesh component itself. See the linked topic for more information.
- Hazard lights are not included in the component itself anymore. The logic is very specific and that's why we moved it to the example car blueprint.
Version 2.3.1.1 - GPU Renderer Update
GPU Deformation Pipeline
This update moves Easy Static Mesh Deformation Component toward its own GPU deformation pipeline while retaining CPU (Deprecated) for existing projects. The guides below cover configuration, behavior and migration, not just the feature names:
- Custom GPU renderer: Plugin-local compute shaders update vertex positions and vertex damage colors. Prepared LODs work independently of RealtimeMeshComponent, without per-hit CPU mesh rebuilds as the main deformation solution.
- GPU Deformation Subsystem: Central hit collection, scheduling and batching for multiple deformable components, with separate mesh ownership and ordered processing.
- Direction-based damage: Impact-aligned asymmetric dents, noise, shear and buckling. Accumulated section damage makes repeated impacts produce a stronger response.
- Damage Zone boxes: User-placed front, rear, side, roof, core or custom regions per deformation component, with configurable resistance and blend boundaries.
- Advanced damage debugging: Optional zone display, section damage/shear, separated hit status and sampled output checks.
- Multiplayer recovery: Compact damage snapshots, delta hit history, client relevancy recovery and budgeted native replay. Recovery is spread across components to reduce simultaneous replay spikes; retained-history and frame-time limits still apply.
See Upgrading before migrating existing actors and custom Blueprint replay graphs. The GPU workflow targets reduced CPU mesh-update overhead for large meshes, many hits and multiple vehicles; actual FPS depends on the scene and hardware.
Other Changes
- Chaos Vehicles is no longer required by the core deformation plugin. It remains an optional dependency for the supplied Chaos vehicle examples. Enable Chaos Vehicles and restart the editor before loading or playing those examples; other deformation setups can run without it. See Examples.
- Shader installation: Shader sources are included under
Source/DeformableMeshComponent/Shaders/Private. Install matching binaries and shader sources together; replacing only the binaries is not sufficient. See Upgrading and the missing-shader FAQ.
Unreleased Fixes
These changes are pending release. They do not require changes to existing Blueprint graphs or damage settings.
- GPU renderer cleanup: GPU mesh resources are now released on the render thread before the proxy is deleted. This addresses a render-thread assertion during proxy recreation or level transitions on UE 5.4 and later, where Unreal can delete retired proxies on worker threads. The cleanup also supports UE 5.2 and 5.3; CPU deformation is unchanged.
- Deformation data loading: Failed initial loads now leave the loading state cleanly without enabling deformation on missing data. Cancelled initialization callbacks cannot initialize an unregistered component, and registering the same component again can complete an interrupted initialization. Existing source-mesh visibility settings and Blueprint loader success callbacks are preserved.