# Overview Recap is a server-side motion capture plugin that records player gameplay and replays it as fake NPCs. It's designed for mass recording (hundreds of concurrent players), cinematic scene composition, and live hijack — combat scenarios where you fight NPCs replaying real recorded behavior. --- ## What is Recap? Recap captures per-tick player state — position, rotation, equipment, animations, particles, sounds — and writes it to a compressed binary stream. Recordings replay as packet NPCs visible to everyone in range, can be combined into multi-actor scenes with offsets and start delays, and can be **hijacked**: turned into real NMS entities you can fight, with the result captured back to disk. --- ## Headline Features - **Per-tick recording** — position, rotation, velocity, equipment, animations, hits, particles, sounds, container opens, sign changes, vehicle enter/leave, sleeping, redstone, and the full 41-slot inventory snapshot. - **Packet-based playback** — recordings replay as lightweight NPCs sent to clients over PacketEvents; no server-side entity unless the scene is hijacked. - **Scene composition** — combine recordings into a scene with individual time delays and position offsets. Supports nested (composite) scenes via `.` prefix. - **Live hijack** — `/recap hijack <scene>` spawns each NPC as a real NMS Player you can fight. Combat events captured back as a reactive recording. Inventory drops on kill. - **`--scene` auto-append** — `/recap start <name> @a --scene <existing>` routes each player's output recording into the named scene automatically when the recording stops. - **Surroundings capture** — recordings capture nearby mobs and a geometry snapshot cube out to `capture-radius` (default 16; override with `--radius <n>`, `0` = player-only); the cube paints back per-viewer (client-side) at the playback location, so a scene replays in any world. - **Per-actor scene loop** — `/recap play <scene> true` loops every entry independently so ambient scenes stay populated. - **Captured-packet replay** — plugins can allowlist server→client packet types (sounds, lightning, custom plugin messages) so their effects replay during playback. - **Cross-version skin layers** — per-viewer metadata index across the supported 1.21.4–26.1.2 range. - **Compressed binary format** — delta-encoded, bit-flag packed, skip-tick optimized, GZIP compressed. --- ## Dependencies | Dependency | Version | Type | |---|---|---| | Paper API | 1.21.4 – 26.1.2 | Server platform | | Java | 21 | Runtime | PacketEvents, CommandAPI, and FoliaLib are shaded into the plugin jar. No external dependencies need to be installed. --- ## Optional Integrations | Plugin | Purpose | |---|---| | Bookshelf | Utility methods and command framework extensions | | Lectern | Cinematic effects replay (sounds, cutscenes, screen shake, etc.) via the captured-packet allowlist | --- ## See Also - [[Recap/Server Owners/Commands]] — full command reference - [[Recap/Server Owners/Configuration]] — config keys - [[Recap/Server Owners/Features/Recording]] — recording details - [[Recap/Server Owners/Features/Playback]] — playback / scenes - [[Recap/Server Owners/Features/Hijack]] — live hijack workflow - [[Recap/Server Owners/Features/World Snapshots]] — block capture/restore - [[Recap/Developers/Overview]] — developer guide