Documentation

PlayerReplay

Premium

This is part of ScriptedEssentials Premium. See what's in each edition.

Record a player's movement, swings, shots and item use, then play it back as an NPC whenever you need it. Good for background crowds, stunt doubles, or a fight scene you want to run over and over until the camera angle's right.

Everything lives under /replay. Needs the scriptedessentials.replay permission.

Recording

commands
/replay record [name]
/replay recordall [group]
/replay stoprec [all|player]

/replay record records you. Give it a name or it picks one from the date and time. /replay recordall starts a recording for every online player at once, grouped under one session name, so you can replay the whole thing together later. By default it only records players in your world; recordAllSameWorldOnly: false in settings covers everyone online.

/replay stoprec stops and saves. Add a player name to stop someone else's, or all to stop and save everything that's recording.

Playing it back

commands
/replay play <recording>[+delay][@x,y,z] ... [loop]
/replay stopplay [name|all]
/replay status

Spawns an NPC that performs the recording. You can play several at once, stagger them, or shift them:

commands
/replay play parkour_run
/replay play a b+3 c+6 loop        # b starts 3 seconds after a, c after 6, all looping
/replay play walk@5,0,0            # shifted 5 blocks on x

/replay status shows what's recording and what's playing, with buttons to stop each one.

Managing recordings

commands
/replay list [groups] [page]
/replay tp <recording>
/replay rename <recording> [newName]
/replay delete <name> [--recordings]
/replay skin <recording> <player>
/replay randomize <group|recording>

/replay list is paged, 8 at a time, with play, teleport, rename and delete buttons on each line. /replay tp takes you to where a recording starts.

/replay skin makes a recording play back with a different player's name and skin. /replay randomize does the same automatically, picking real, validated Java usernames (or names from the pool if it runs out).

Deleting asks you to confirm first. /replay delete <group> --recordings also deletes every recording in that group, not just the group itself.

Groups and crowds

commands
/replay group create <name>
/replay group add <group> <recording> [delay:<sec>] [offset:<x>,<y>,<z>] [skin:<player>]
/replay group remove <group> <recording>
/replay group play <name> [loop] [delay:<sec>]
/replay group stop <name>
/replay group list [name]
/replay group rename <old> <new>
/replay group merge <newName> <g1> <g2> [g3...]
/replay group delete <name>

A group plays several recordings together as one scene, each with its own delay, position offset and skin.

commands
/replay crowd <group> <recording> <rows> <cols> [spacing:<n>] [rowdelay:<sec>] [coldelay:<sec>] [skin:<player>]

Copies one recording into a grid of NPCs, up to 500 at once, with optional row and column delays so they don't all start in lockstep. /replay randomize <group> is the quick way to give everyone in a crowd a different skin.

Display names and the username pool

commands
/replay name <set|reset|list>
/replay pool <list|add|clear>

/replay name set <player> <displayName> overrides how a recording's NPC shows up without touching its skin. /replay pool manages the list of real usernames /replay randomize pulls from; players get added to it automatically as they're seen, controlled by pool.cacheSeenPlayers in settings.

Fixing older recordings

commands
/replay migrate <recording|all>

Re-checks frames against current item rules and cleans up unused entity data. Worth running after an update if an old recording looks wrong.

The menu

commands
/replay menu

Bare /replay opens the same thing. A point-and-click dialog covering recording, playback and management, on servers with Paper's dialog API. Without it, /replay help prints the full command list in chat instead.

Settings (settings/replay.yml)

yaml
recordAllSameWorldOnly: true
pool:
  cacheSeenPlayers: true
  cacheValidatedNames: true
randomize:
  maxLookups: 120
  seeds:
    - Shadow
    - Nova

randomize.maxLookups caps how many names /replay randomize checks against Mojang per run, so it doesn't hammer the API. seeds are building blocks for generated names, not real usernames.

Data

Recordings, scenes, display names and the username pool are saved under plugins/ScriptedEssentials/replay/.

Moving from the standalone plugin

If plugins/PlayerReplay is still there the first time Premium starts, its recordings, scenes, names, skins, username pool and settings are copied straight across. The standalone plugin has to be removed afterwards, since the built-in replay system stays off if it detects the standalone one is still installed.