Setting it up
Surfaces
Making grass sound different from stone.
A surface is a Physical Surface, the same list the rest of the engine uses.
1. Name your surfaces
Project Settings > Engine > Physics > Physical Surface. Fill in the slots:

SurfaceType1 = Grass
SurfaceType2 = Stone
SurfaceType3 = Metal2. Make physical materials
Right click in the Content Browser, then Physics > Physical Material. Make one per surface, and set its Surface Type to the matching entry.
3. Assign them
Open a material used on your floors and set its Phys Material to the right one. For landscapes, set it per paint layer.
4. Fill in the database
Now the Surface Effects map inside a state entry has something to point at. Press +, pick Grass, and give it sounds.
How the plugin finds the surface
By default it traces straight down from the foot bone and reads the physical material of whatever it hits.
You can change that on the component with Surface Source:
| Option | What it does |
|---|---|
| Line Trace From Foot | Traces down from the foot. The most accurate, and the only one that can report a different surface per foot. |
| Character Movement Floor | Reuses the floor the movement component already found. Cheaper, but one surface for the whole character. Falls back to a trace when that floor carries no physical material. |
| Custom | Detects nothing. You override Resolve Footstep Surface and answer yourself. |
When the surface reads as Default
That means the trace hit something with no physical material on it. The footstep still plays, using Fallback Effects.
This is normal and useful. Fill in fallbacks so untagged geometry still makes a sound, and only add specific surfaces where it matters.