> For the complete documentation index, see [llms.txt](https://docs.motorica.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.motorica.com/documentation/integrations/unreal-engine/how-to-guides/setup-and-use-ue-root-motion-recorder-plugin.md).

# Setup and Use UE Root Motion Recorder Plugin

## Setup

### Blueprints

1. Add the **RootMotionRecorder** Plugin to project and enable
2. Attach the component to your Actor/Character
3. Add **Start Recording** and **End Recording** events to your event graph, an example can be seen below

<figure><img src="https://3701240830-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd4XRcFZ7K0KOxbfN13Yz%2Fuploads%2Fb1rj2Xplljod9eWapTxY%2FScreenshot%202025-12-08%20131926.png?alt=media&amp;token=193a9dcd-f78a-481e-9a83-90c29d2b99c0" alt=""><figcaption></figcaption></figure>

### C++

1. Add RootMotionRecorder Plugin to project and enable
2. Add component to your character subclass
3. Call `StartRecording()` and `EndRecording()` events respectively

## Settings

The RootMotionRecorder Component has the following editable properties:

<div align="left"><figure><img src="https://3701240830-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd4XRcFZ7K0KOxbfN13Yz%2Fuploads%2FvPXfaYO0h7yYKSPjDFWH%2FScreenshot%202025-12-08%20132820.png?alt=media&amp;token=9c94a5fe-6e0e-4f73-9e17-1576b0b0afdf" alt=""><figcaption></figcaption></figure></div>

### Configurable

* **Output Directory:** Absolute path that the JSON files will be written to
* **Should Debug Draw:** If `true`, a line will be drawn under the character's feet to show the path that is being recorded
* **Debug Draw Rotations:** If `true`, arrows will also be drawn on the debug line to show the root rotation
* **Debug Draw Offset:** Offset from the actor's origin to draw the line from

#### Non-Configurable (do not change unless you're post-processing JSON files!)

* **FPS:** set to 30. Please do not change this, as Motion Factory only accepts 30 FPS paths at the moment. It is exposed for extendability, in case you want to do some post-processing and resample later
* **Flatten trajectory:** - Ensures the Z (Up) component of the recorded root motion is constant, which is then taken down to 0 before writing to JSON (and converting to Y-Up)
