uloop-replay-input · git:20260618.13795c5 · 2026-06-18 · sha256 c10767b51990a6b2

uloop-replay-input git:20260618.13795c5A

Immutable. This exact content is served forever at /api/v1/blob/c10767b51990a6b2.

---
name: uloop-replay-input
toolName: replay-input
description: "Replay recorded PlayMode keyboard and mouse input. Use for exact gameplay reproduction, E2E runs, or consistent demos from JSON recordings."
---

# 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.

## Usage

```bash
# 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`, `Stop`, `Status` |
| `--input-path` | string | auto | JSON path. Auto-detects latest 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](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 succeeded
- `message`: Status message
- `action`: Echoes which action was executed (`Start`, `Stop`, or `Status`)
- `inputPath`: Path to recording file (nullable string; populated on `Start` only)
- `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)