# Commands
All commands live under `/recap` (alias `/re`) and require the `recap.admin` permission.
---
## Top-Level Verbs
| Command | Description |
|---|---|
| `/recap start <name> [players] [flags]` | Start recording. Flags: `--radius <n>` / `-r`, `--scene <name>` / `-s`, `--environment` / `--env` (+ `--uncapped`). |
| `/recap stop` | Stop your own recording, end your active hijack, or — with neither active — stop the nearest playback. |
| `/recap stopall` | Stop every active recorder and every playback. |
| `/recap cancel` | Discard your in-flight recording (no save). |
| `/recap cancelall` | Discard every in-flight recording. |
| `/recap recordings list` | List saved recordings. |
| `/recap recordings delete <name>` | Delete a saved recording. |
| `/recap play <name> [loop]` | Play a recording OR a scene at your location. |
| `/recap pause` / `resume` / `seek <tick>` / `speed <multiplier>` | Playback controls — only appear when something is playing. |
| `/recap hijack <scene> [players] [flags]` | Start a hijack session. Flags: `--new <name>` / `-n` (force a new scene), `--stop-on-end` / `--soe` (auto-end when the scene finishes). |
| `/recap revert [scene] [--maintain]` | Undo the last hijack's scene mutation. `--maintain` keeps the reactive recording on disk. |
| `/recap version` | Print the running impl version. |
---
## /recap scene
| Command | Description |
|---|---|
| `/recap scene list` | List all scenes. |
| `/recap scene create <name>` | Create a new empty scene (auto-prefixed with `.`). |
| `/recap scene delete <name>` | Delete a scene. |
| `/recap scene <name> list` | List entries inside the scene. |
| `/recap scene <name> play [loop]` | Play the scene at your location. Rejected if the scene is already playing. |
| `/recap scene <name> add <recording \| scene>` | Add a recording or child scene. |
| `/recap scene <name> remove <recording \| scene>` | Remove an entry. |
---
## Recording
### Start one player
```
/recap start <name>
```
Records the command sender.
### Start multiple players
```
/recap start <name> @a
```
Each player gets their own output named `<name>_<PlayerName>`.
### `--scene <existing>` / `-s`
Auto-append each output recording to the named scene when the recording stops. Scene must already exist.
```
/recap start big_battle @a -s arena_replay
```
### `--radius <n>` / `-r`
Override the surroundings radius for this recording (default `recording.capture-radius`, 16; max 128): nearby mobs and a geometry snapshot cube. The cube replays viewer-only at the playback location, so the scene plays back in any world. Use `--radius 0` for a player-only recording. (World-driven block changes need `--environment`; the radius scopes their range.)
```
/recap start arena_take @a --radius 32
```
### `--environment` / `--env`
Also record world-driven block changes near the player — pistons and redstone (dust, lamps, repeaters, comparators, observers, piston triggers). Default recordings stay purely player-driven. Add `--uncapped` to lift the per-tick block-change limit for large or fast contraptions.
```
/recap start contraption @a --env --uncapped
```
Flags can combine in any order:
```
/recap start 300_fight @a --radius 32 -s big_battle
```
---
## Playback
### Play a recording
```
/recap play <recording>
```
### Play a scene with per-actor loop
```
/recap play <scene> true
```
Each recording in the scene loops at its own end-of-stream so ambient scenes don't depopulate as short clips finish.
### Stop playback
`/recap stopall` ends every playback session. `/recap stop`, when you have no active recording or hijack, falls through to stop the nearest playback session — so you don't need `stopall` just to end one `/recap play`. The playback-control commands (`pause/resume/seek/speed`) target the session closest to your position.
Larger scenes show a two-stage notification on play: `Loading scene 'X'…` immediately, then `Now playing 'X' (N actors)` once actors finish initialising.
---
## Hijack
### Start a hijack on a scene
```
/recap hijack <scene>
```
Each NPC in the scene spawns as a real NMS Player you can fight. Inventory drops on kill.
### Co-op hijack
```
/recap hijack <scene> @a
```
All online players hijack the same scene. Each hijacker gets their own output recording.
### Force a new output scene
```
/recap hijack <scene> --new <name>
```
By default, hijacking a scene EDITS that scene in place (touched NPCs swap to their reactive). `--new <name>` / `-n <name>` forces creation of a separate scene instead.
### Auto-end when the scene finishes
```
/recap hijack <scene> --stop-on-end
/recap hijack <scene> --soe
```
Ends the hijack automatically the moment the scene's last recording finishes playing, saving the output exactly like a manual `/recap stop`. Combinable with `--new`.
### End a hijack
`/recap stop` ends your hijack and finalises the swap. `/recap cancel` ends without saving the reactive or applying the swap.
---
## Revert
`/recap revert` undoes the most recent hijack-induced scene mutation, restoring the original recording in the scene. Add `--maintain` to keep the reactive recording on disk (only the scene entry is reverted, not the file).
---
## World Snapshots
| Command | Description |
|---|---|
| `/recap world apply <snapshot>` | Apply a captured world snapshot for the calling viewer. |
| `/recap world restore` | Restore the viewer's pre-snapshot blocks. |