uloop replay-input
Replay recorded keyboard and mouse input during PlayMode. Loads a JSON recording and injects input frame-by-frame via Input System with zero CLI overhead. Supports looping and progress monitoring.
Create recording JSON files in the Unity Editor from Window > Unity CLI Loop > Recordings with Start Recording and Stop Recording. There is no CLI command for recording input.
Usage
# Start replay (auto-detect latest recording)
uloop replay-input --action start
# Start replay with specific file
uloop replay-input --action start --input-path scripts/my-play.json
# Start replay with looping
uloop replay-input --action start --loop
# Check replay progress
uloop replay-input --action status
# Stop replay
uloop replay-input --action stop
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
--action |
enum | start |
start - begin replaying, stop - stop mid-way, status - check progress |
--input-path |
string | auto | Path to the recording JSON. When empty, auto-detects the latest recording in .uloop/outputs/InputRecordings/ |
--no-show-overlay |
flag | - | Hide replay progress overlay |
--loop |
flag | - | Loop continuously |
Deterministic Replay
Replay injects the exact same input frame-by-frame, but the game must also be deterministic to produce identical results. If replay output must be compared across runs, read references/deterministic-replay.md before interpreting failures.
Prerequisites
- Unity must be in PlayMode
- Input System package (
com.unity.inputsystem) must be installed; this tool only works with the New Input System.
Output
Returns JSON with:
Success: Whether the operation succeededMessage: Status messageAction: Echoes which action was executed (start,stop, orstatus)InputPath: Path to recording file (nullable string; populated onstartonly)CurrentFrame: Current replay frame index (nullable int)TotalFrames: Total frames in the recording (nullable int)Progress: Replay progress (nullable float in 0.0 – 1.0)IsReplaying: Whether replay is currently active (nullable bool)