Reference
Multiplayer
How footsteps behave over the network.
Set Network Mode on the component. The default is almost always right.
Local Only
The default. Every machine works out and plays its own footsteps, and nothing is sent over the network.
Use this unless you have a specific reason not to.
Server Authoritative
Only the server works out the footstep, then multicasts the result to everyone. A listen server host hears its own footsteps too, and never twice.
Use it when the server has to be the source of truth about the surface.
Owner Predicted
The owning client plays its footstep immediately, with no latency, and tells the server, which passes it to everyone else. The client that predicted it is skipped so the sound is never doubled. A footstep the owner rejects in Should Play Footstep is not passed on either.
The server sanity checks what it passes on: a footstep has to land near the character, pass the per foot debounce, and stay under 20 a second. It still trusts the owning client for everything else, so a modified client could keep its own footsteps quiet. Use Server Authoritative where that matters.
The owner is the machine that drives the pawn. On the server that covers AI pawns and the listen server host, and on a client the pawn it controls. An actor with no controller at all belongs to the server.
What travels over the network
In the two replicated modes only what the receiving machine cannot work out is sent: the state, the foot, the surface, the position and normal, whether a surface was hit, the bone name, and the notify's volume and pitch. The sound is looked up again from each machine's own copy of the database, and the random pitch is rolled per machine.
Everything a client sends is checked. Invalid numbers are rejected, and volume and pitch are clamped, so a modified client cannot broadcast a deafening footstep.
Dedicated servers
A dedicated server never plays sound or spawns effects, whatever you set, and it only loads the databases, not the sounds and effects inside them.
It does still fire On Footstep while Evaluate On Dedicated Server is on, which is where server side reactions belong, like reporting noise to AI. The trace is skipped anyway when nothing is bound to On Footstep and no database holds an Always Run action. Turn Evaluate On Dedicated Server off to skip it regardless.
The state has to replicate
In Local Only mode, remote machines look up their own footsteps and need the state to do it.
Set Footstep State handles this for you. If you use the interface instead, make sure whatever it reads from is itself replicated.