Appearance
How to verify Motion multiplayer
Use this guide when Motion works locally and you need to verify replicated movement, Gameplay Ability System (GAS) state, and client prediction.
Check the required setup
- Confirm the active GameMode uses a PlayerState that owns or exposes an Ability System Component (ASC).
IAbilitySystemInterfaceis preferred, but Motion also discovers an ASC component directly. - Confirm the ASC is replicated and initialized with the PlayerState or character as owner and the character as avatar.
- Confirm Motion components can resolve the ASC at runtime.
- Use GameplayEffects for replicated state tags. Treat loose tags as predicted or locally derived state, never replicated truth.
Run a local multiplayer PIE session
- In the Unreal Editor Play menu, set
Number of Playersto2or more. - Set
Net ModetoPlay as Client. - Disable single-process PIE when you need closer-to-real networking behavior.
- Press Play.
- Move, sprint, crouch, and jump on each client.
Simulate network conditions
Use console commands to introduce latency or packet loss:
bash
NetEmulation.PktLag 100
NetEmulation.PktLoss 2
NetEmulation.PktDup 1You can also enable Network Emulation in Unreal Editor Preferences.

Inspect replication
Use these commands while reproducing multiplayer behavior:
bash
showdebug abilitysystem
stat net
p.NetShowCorrections 1
log LogMotionAbilitySystem VerboseIf tags or attributes do not sync, verify that the relevant GameplayEffects are applied on the server.
Use the GAS overlay while moving a client to confirm tags, effects, and attributes are visible during the multiplayer run.
Common symptoms
| Symptom | Check |
|---|---|
| Movement does not sync | The ASC is replicated and initialized, and actor replication is enabled |
| Tags do not replicate | State is granted by GameplayEffect, not only loose tags |
| Sprint or crouch flickers | Server validation and prediction cleanup agree |
| A later jump stays held after a very short tap | Confirm the jump release reaches the server |
| Camera effects appear on remote clients | Camera effects are gated to locally controlled characters |
| Rubber-banding | Server validation tolerance and movement correction settings |