Skip to content

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

  1. Confirm the active GameMode uses a PlayerState that owns or exposes an Ability System Component (ASC). IAbilitySystemInterface is preferred, but Motion also discovers an ASC component directly.
  2. Confirm the ASC is replicated and initialized with the PlayerState or character as owner and the character as avatar.
  3. Confirm Motion components can resolve the ASC at runtime.
  4. Use GameplayEffects for replicated state tags. Treat loose tags as predicted or locally derived state, never replicated truth.

Run a local multiplayer PIE session

  1. In the Unreal Editor Play menu, set Number of Players to 2 or more.
  2. Set Net Mode to Play as Client.
  3. Disable single-process PIE when you need closer-to-real networking behavior.
  4. Press Play.
  5. 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 1

You can also enable Network Emulation in Unreal Editor Preferences.

Network emulation editor preference

Inspect replication

Use these commands while reproducing multiplayer behavior:

bash
showdebug abilitysystem
stat net
p.NetShowCorrections 1
log LogMotionAbilitySystem Verbose

If 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

SymptomCheck
Movement does not syncThe ASC is replicated and initialized, and actor replication is enabled
Tags do not replicateState is granted by GameplayEffect, not only loose tags
Sprint or crouch flickersServer validation and prediction cleanup agree
A later jump stays held after a very short tapConfirm the jump release reaches the server
Camera effects appear on remote clientsCamera effects are gated to locally controlled characters
Rubber-bandingServer validation tolerance and movement correction settings

Motion - Advanced First Person Character Controller