Blueprint
Node reference
Every node the plugin adds, and what each one does.
Everything the plugin exposes to Blueprint, grouped by where it lives.
Component: making footsteps happen
Trigger Footstep
Makes a footstep. This is what the notify calls, and you can call it yourself for footsteps that do not come from an animation, like a landing impact from the movement component.
| Input | Meaning |
|---|---|
| Foot Bone Name | Bone or socket to trace from. Must exist on the mesh. |
| Foot Tag | Which foot this is. Can be empty. |
| State Override | Use this state instead of the resolved one. Leave empty for normal behaviour. |
| Source Mesh | Mesh to read the bone from. Leave empty and the component works it out. |
| Volume Multiplier | Extra volume on top of the database. |
| Pitch Multiplier | Extra pitch on top of the database. |
If the bone is not found, it falls back to the actor location, warns in the log with the bone name, and still makes a footstep.
Trigger Footstep At Location
The same thing at a world location, with no bone involved. For anything with no skeleton behind it: a vehicle scraping the ground, a creature whose contact point comes from gameplay code.
| Input | Meaning |
|---|---|
| Location | Where to detect the surface and play the footstep |
| Foot Tag | Which foot this is. Can be empty. |
| State Override | Use this state instead of the resolved one |
| Volume Multiplier | Extra volume |
| Pitch Multiplier | Extra pitch |
Play Footstep Effects
Plays the sound, particle and decal for a context. The component calls this itself unless you turned the three Auto switches off.
| Input | Meaning |
|---|---|
| Footstep | The context to play, normally the one from On Footstep |
Use it when you want the standard behaviour back for cases your own logic did not want to change.
Component: state
Set Footstep State
Changes the state footsteps are looked up with.
| Input | Meaning |
|---|---|
| New State | Your state tag |
Safe to call from anywhere. On a client that owns the actor it applies straight away and is sent to the server, which passes it on to everyone else. Passing a value it already has does nothing, so calling it every tick is fine.
Get Footstep State
Returns the state a footstep would use right now. It asks the owner through the interface first, then falls back to the stored state.
On Footstep State Changed
An event, fired whenever the state changes, including on remote machines when the change replicates in.
| Pin | Meaning |
|---|---|
| Old State | What it was |
| New State | What it is now |
Component: databases
Set Footstep Databases
Swaps the databases at runtime, for example when a character changes footwear.
| Input | Meaning |
|---|---|
| New Databases | The databases to search, in priority order |
The new ones load in the background, so call Preload Footstep Assets afterwards if the next few footsteps matter.
Get Loaded Databases
Returns the databases currently in memory, in the order they are searched.
Preload Footstep Assets
Loads everything the databases reference in the background, so no footstep has to wait on streaming.
| Input | Meaning |
|---|---|
| State Filter | Only preload assets reachable from this state. Leave empty for everything. |
The component does this at BeginPlay already. Call it yourself after swapping databases.
Resolve Effects
Looks up a state and surface without making a footstep. For previews and validation tools.
| Input | Meaning |
|---|---|
| State | State tag to look up |
| Surface | Physical surface to look up |
| Output | Meaning |
|---|---|
| Return Value | True if a database matched |
| Out Effects | The matched effect set |
Component: events and overrides
On Footstep
The main event. Covered in Using it in Blueprint.
| Pin | Meaning |
|---|---|
| Footstep | Everything known about this footstep |
Should Play Footstep
An overridable event. Return false to drop a footstep before anything is played or broadcast.
To use it, make a Blueprint child of Footstep Component, then override the function there.
| Input | Meaning |
|---|---|
| Footstep | The footstep about to happen |
| Output | Meaning |
|---|---|
| Return Value | True to let it through, false to drop it |
Good for staying quiet while swimming, or while a stealth ability is up. The default lets everything through.
Resolve Footstep Surface
An overridable event that decides the surface. Also on a Blueprint child of the component.
Set Surface Source to Custom to make the component rely on yours instead of tracing.
| Input | Meaning |
|---|---|
| Foot Bone Name | The bone this came from, or none for a location footstep |
| Trace Origin | Where the foot is |
| Output | Meaning |
|---|---|
| Return Value | True if you found a surface |
| Out Hit | The hit you used, if any |
| Out Surface | The surface you decided on |
Use it for surfaces that are not physical materials at all, like water volumes or snow depth.
Footstep Action
Entry
The event inside a Footstep Action Blueprint. All the work goes here.
| Pin | Meaning |
|---|---|
| Footstep | The same context On Footstep gets |
Function library
These are static, so they work from any Blueprint.
Get Footstep Component
Finds the component on an actor. Returns nothing if it has none.
Get Surface Type From Hit
Reads the physical surface out of a hit result. Returns Default when the hit carries no physical material.
Useful well outside footsteps. Projectile impacts can reuse the same surface list.
Get Physical Surface Name
Returns the name you gave a surface in the physics settings. For debug displays and tools.
Get Project Physical Surfaces
Returns every surface your project has actually named. For validation passes that check a database covers everything.
Trace For Surface
Traces down for a surface the same way the component does.
| Input | Meaning |
|---|---|
| Origin | Where to trace from |
| Trace Distance | How far below to reach |
| Trace Start Offset | How far above to start |
| Trace Channel | Channel to trace on |
| Actor To Ignore | Normally the character |
| Trace Complex | Needed for per face materials and landscapes |
| Output | Meaning |
|---|---|
| Return Value | True if something was hit |
| Out Hit | The hit |
| Out Surface | The surface found |
Find Effects In Databases
The component's lookup, exposed for tools and for code with no component.
| Input | Meaning |
|---|---|
| Databases | Databases to search, in priority order |
| State | State tag |
| Surface | Physical surface |
Load Random Sound From Effect Set
Picks a sound from a set and loads it.
Database
Called on a Footstep Database asset.
| Node | What it does |
|---|---|
| Find Effects | Looks up a state and surface, following the whole fallback chain |
| Gather Asset Paths | Every asset path the database references, for preloading |
| Get Defined States | Every state tag this database has an entry for |
| Get Defined Surfaces | Every surface it mentions |
Settings
Get Footstep Settings
Returns the project settings object, so you can read the defaults at runtime.
Interface
Get Footstep State
The one function on the Footstep State Provider interface. Implement it on your character and return your current state tag. See States.
| Input | Meaning |
|---|---|
| Footstep Component | The component asking, in case one actor has several |
| Output | Meaning |
|---|---|
| Return Value | Your state tag, or empty to fall back |
Structs you will break
| Struct | Holds |
|---|---|
| Footstep Context | Everything about one footstep. Full pin list. |
| Footstep Effect Set | The sounds, effects, decal, actions and tags for one row |
| Footstep Surface Effects | The surface map and fallback for one state |