Skip to content
CRUSHFORMV1.1.0
GET IT ON FAB

GET STARTEDQUICK START

Quick start

This guide gives a Chaos vehicle dents, paint wear and dirt. You wire three material functions into the body and wheel materials, then add one component to the vehicle. No code is needed.

You need:

  • The plugin installed. See Installation.
  • A pawn based on AWheeledVehiclePawn with a UChaosWheeledVehicleMovementComponent.
  • Wheels that are mesh components on the wheel bones. A wheel that is only a bone gets no tyre deformation and no wheel dirt.
  • A vehicle with none of this set up yet: no Crushform adapter and no wired materials.
  • Unreal Engine 5.6, 5.7 or 5.8.

The screenshots in this guide show the plugin’s sedan, BP_VehicleAdvSedan, set up step by step from scratch. Follow the steps on your own vehicle. The finished sedan is in the plugin at /Crushform/Blueprints/Sedan/BP_VehicleAdvSedan, to compare with.

  1. Open the master material of the paint, the parent of its instances.
The master material of the paint, the parent of its instances, before any wiring.
  1. Add MF_CF_Deform and MF_CF_Paint. Right-click the graph and search for each name.
  2. Check these on your material before you connect anything:
    • Your own World Position Offset stays. Add it to the World Position Offset of MF_CF_Deform with an Add node, and drive the sum into the material’s World Position Offset.
    • A normal map or other normal source goes into the Normal input of MF_CF_Deform, not into the material.
    • A material that uses Material Attributes is wired through Break Material Attributes and Set Material Attributes nodes. The Break Material Attributes outputs feed the inputs of the two functions and the Add node. The outputs of MF_CF_Deform (Normal, and the sum of the offsets) and of MF_CF_Paint (Base Color, Roughness, Metallic) go into the matching pins of Set Material Attributes, which feeds the material.
    • The material must use Tangent Space Normal. A world-space normal does not wire.
    • Glass and interior parts that share the body’s mesh get only MF_CF_Deform. They dent with the body and keep their own look.
    • Every material of every mesh that should bend needs this wiring. Put parts that move relative to the body, such as doors and the steering wheel, in the profile’s Exclude Tags.
    • A material can use at most two parameter collections. MF_CF_Paint uses one of them, so a material that already uses two does not compile once wired.
    • Every material that uses the wired functions pays for the vertex work, dented or not.
  3. Make these ten connections, one row each. The Scratch row is optional: without it the paint wears, but a scrape draws no lines. Note first what feeds the material’s Base Color, Roughness and Metallic now.
FromTo
Your base colourBase Color of MF_CF_Paint
Your roughnessRoughness of MF_CF_Paint
Your metallicMetallic of MF_CF_Paint
Wear Depth of MF_CF_DeformWear Depth of MF_CF_Paint
Scratch of MF_CF_DeformScratch of MF_CF_Paint
Base Color of MF_CF_PaintBase Color of the material
Roughness of MF_CF_PaintRoughness of the material
Metallic of MF_CF_PaintMetallic of the material
World Position Offset of MF_CF_DeformWorld Position Offset of the material
Normal of MF_CF_DeformNormal of the material
  1. In the material’s Details, under Usage, switch on Used with Skeletal Mesh if the body is a skeletal mesh.
  2. In the material’s Details, set Max World Position Offset Displacement (in the World Position Offset category) to the Max Displacement of the profile the vehicle uses, plus the Fold Amplitude input of MF_CF_Deform. The fold amplitude is 3 cm by default. If the material already has a bound of its own, add the same sum to that bound instead.
  3. Click Apply, then Save.
The master material with MF_CF_Deform and MF_CF_Paint wired in.
  1. Open the wheel material. Put MF_CF_WheelDirt between the wheel’s colour and Base Color, Roughness and Metallic. The wheel’s colour, roughness and metallic go into its inputs of the same names, and its three outputs drive the three properties.
  2. Do not add MF_CF_Deform or MF_CF_Paint to a wheel material. A wheel’s Custom Primitive Data holds its dirt, not the body’s dent data.
  3. The tyre bulge is a separate function, MF_CF_TireDeform, and its wiring is not part of this guide. Keep Always Evaluate WPO off in a tyre material.
  4. The plugin’s ready example is M_CF_Wheel. Open it to compare.
The wheel material with MF_CF_WheelDirt between its colour and its outputs.
  1. Open the vehicle’s Blueprint. Click Add and choose Crushform Chaos Vehicle Adapter. It is in the Crushform category. Do not pick Crushform Vehicle Adapter: that one needs its wheels listed by hand.
  2. Click Compile, then Save.
The Components panel with its Add list open, where Crushform Chaos Vehicle Adapter is selected under Crushform.
Add › Crushform Chaos Vehicle Adapter, in the Crushform category.
  1. The adapter creates its components on every machine, under fixed names. Each one has its own switch:

    • CF_Deform makes the dents and dirt of the body. It needs Dirt and Dents.
    • CF_Glass makes the glass panes. It needs Glass and Dirt and Dents.
    • CF_Tires makes the tyre deformation. It needs Tires.
    • CF_RollingAudio and CF_RollingFX make the rolling sound and effects. They need Rolling Sound and Rolling FX.
    • CF_EngineAudio makes the engine sound. It needs Engine Sound, and the engine sound setting in Project Settings under Crushform Engine.
    • CF_PropContact breaks props. It needs Breaks Props.
    • CF_ImpactFeedback plays impact sounds and effects. It needs Impact Feedback. CF_PartImpactFeedback does the same for the hinged parts, and also needs Dirt and Dents.

    The adapter reads the wheels from the movement component, so you do not list them.

  2. An empty Deform Profile takes the default in Project Settings, under Plugins, Crushform, Default Profile (DA_CF_DefaultProfile). An empty Tire Profile takes the default in Project Settings, under Plugins, Crushform Tire, Default Profile.

Crushform
AuthorityServer
Deform ProfileDA_CF_DefaultProfile
Tire ProfileDA_CF_DefaultTireProfile
Ram Allowance Mps15.0 m/s
Features
Dirt and Dents
Glass
Tires
Rolling Sound
Rolling FX
Engine Sound
Impact Feedback
Breaks Props
The Crushform category of the Crushform Chaos Vehicle Adapter. Its feature switches are all on.
  • Dirt, rolling sound and rolling effects come from the ground’s physical material. Set the Phys Material of the ground’s material to one of the seven plugin materials: PM_CF_Asphalt, PM_CF_Dirt, PM_CF_Grass, PM_CF_Mud, PM_CF_Swamp, PM_CF_Snow or PM_CF_Water.
  • A physical material with no row in the Surfaces table (DA_CF_Surfaces) gets the Default row. You can add rows for your own physical materials.
  • The rolling sound plays through the Attenuation of Project Settings, under Plugins, Crushform Wheels. It is SA_CF_TireRolling by default. If it is cleared, the rolling sound stays off.
  1. Press Play and drive the vehicle into a wall or a fence. The Proving Ground demo has fences to test on.
The plugin's sedan with a crumpled hood and front bumper, dented doors, and the doors swung open.
The body dents where it was hit, and the paint wears where the metal moved.
  1. Drive through mud on a PM_CF_Mud surface. The wheels and the lower body get dirty.
The plugin's sedan with brown dirt on the lower body, the doors and the wheels, standing on the tan ground of the Proving Ground.
Dirt on the body and the wheels after a drive over the Proving Ground's surfaces.

These are on the adapter. The Chaos adapter inherits them from UCFVehicleAdapterComponent.

PropertyWhat it does
UCFVehicleAdapterComponent::DeformProfileThe dents and dirt of the body. Empty: the project’s default profile.
UCFVehicleAdapterComponent::TireProfileThe tyres. Empty: the project’s default tire profile.
UCFVehicleAdapterComponent::AuthorityServer (the default): the server simulates the vehicle and judges its hits. Owning Client: the machine that drives the vehicle simulates it and reports its hits, and the server checks them.
UCFVehicleAdapterComponent::bDirtAndDentsThe body dents and gets dirty. The glass panes and the wheels’ dirt need it.
UCFVehicleAdapterComponent::bGlassThe glass panes on the vehicle crack and break. Needs Dirt and Dents.
UCFVehicleAdapterComponent::bTiresThe tyres deform on the wheel meshes.
UCFVehicleAdapterComponent::bRollingSoundEach wheel plays its surface’s rolling sound. Presentation only: silent on a dedicated server.
UCFVehicleAdapterComponent::bRollingFXEach wheel shows its surface’s rolling effect. Presentation only.
UCFVehicleAdapterComponent::bEngineSoundThe engine plays its sound. Presentation only. Also needs the engine sound setting in Crushform Engine.
UCFVehicleAdapterComponent::bImpactFeedbackHits play impact sounds and effects on every machine.
UCFVehicleAdapterComponent::bBreaksPropsThe vehicle breaks the breakable props it drives into.
  • Open the console with the tilde key and run Crushform.Stats. The vehicle is in the list, with its hits counter. The lines have this shape. Each vehicle line starts with the actor’s name, then whether this machine holds the lattice or a view of it:
Crushform atlas: N of M slots used, N waiting, N evictions, N uploads.
Actor name: server lattice or client view, generation N, N pending, N chunks | hits N, sent N, accepted N, rejected N, ...
  • Run Crushform.DebugImpact 15 followed by part of the name of another vehicle with Crushform in the level. The name goes after the speed. It dents that vehicle from where you stand, up to 100 m away, with a speed change of 15 m/s, without driving. Without a name, it hits the damageable actor under the crosshair. It never hits the pawn you control, so check your own vehicle by driving into a wall, as in step 5.
  • Run Crushform.Debug 1. It draws the dented lattice nodes of the bodies.
  • Drive through a PM_CF_Mud surface. The wheels and the lower body get dirty.
  • These commands work in the editor and in every build except Shipping, where they are compiled out.
  • Nothing dents: check the wiring in step 1, and check that the profile’s Exclude Tags do not hide the body mesh.
  • The wheels stay clean: the wheels must be mesh components on the wheel bones.
  • The ground gives no dirt or rolling sound: its Phys Material must be one of the plugin’s, or have a row in the Surfaces table.
  • The material does not compile: check the two-collection limit in step 1.

More cases are in Troubleshooting.