Appearance
How to debug Motion with Visual Logger and Rewind Debugger
Use this guide when you need to inspect Motion movement state, GAS state, component registration, or timing problems during gameplay.
Open Visual Logger
Use the console command:
bash
VisLogOr open Window > Developer Tools > Visual Logger.
Record a session
- Open Visual Logger.
- Click the red Record button.
- Play the scenario you want to inspect.
- Stop recording.
- Select the character actor.
- Scrub the timeline.
Filter by LogMotionVisual when you only want Motion entries.
Track specific attributes
Motion logs general movement state automatically. Add attributes when you need histograms for values such as stamina or walk speed.
cpp
UMotionSubsystem* Subsystem = GetLocalPlayer()->GetSubsystem<UMotionSubsystem>();
Subsystem->TrackedAttributes.Add(UMotionAttributeSet::GetStaminaAttribute());
Subsystem->TrackedAttributes.Add(UMotionAttributeSet::GetWalkSpeedAttribute());Tracked attributes appear as histograms in the Visual Logger graph panel.
Add custom logs
Use Motion subsystem logging helpers for custom Blueprint or C++ debugging:
cpp
Subsystem->LogFloat(FName("CustomSpeed"), MyCustomSpeed);
Subsystem->LogText(FName("AI"), TEXT("Started chase behavior"));Use custom logs for temporary investigation data, not permanent gameplay state.
Use Rewind Debugger
- Enable Rewind Debugger in Edit > Editor Preferences > Rewind Debugger.
- Record gameplay with Visual Logger.
- Open the Rewind Debugger panel.
- Scrub through the timeline.
- Inspect Motion's actor summary, component count, movement speed, and movement mode.
Troubleshooting
| Symptom | Check |
|---|---|
| No Motion logs appear | UMotionSubsystem is active, build is not Shipping, and LogMotionVisual is visible |
| Logs appear only on server | Simulated proxies are filtered to avoid duplicate logs |
| Histograms do not appear | Recording is active and the character actor is selected |
| Attribute values are missing | The attribute was added to TrackedAttributes before recording |
Next steps
Visual Logger is disabled in Shipping builds. Motion logging functions remain available for API compatibility but do not add runtime cost there.