Overview

A server-side replay system that records gameplay and plays it back in-game — no client mod, no resource pack.

Donut Replay records what happens on your server — players and the entities around them — saves it as a compact timeline, and plays it back in-game for any viewer you choose. It is built for moderation and PvP review: catch cheaters, settle reports, and rewatch fights frame by frame.

  • Paper · Folia · Canvas
  • MC 1.21 → 26.2
  • Java 21

It runs entirely on the server. Players need no replay mod, no resource pack, and no special client — playback works by spawning and driving replay entities for the viewer.

What it records

Donut Replay has four independent capture modes. Turn on the ones you want — they all save into the same browsable library.

  • Anticheat-flagged — when a player trips one of your configured Grim, Vulcan or TotemGuard checks, a recording starts from the first flag and runs for 30 seconds (re-flagging extends it). Always saved.
  • PvP — fights are captured automatically. The recording is kept when the fight is decided (someone dies), with optional nearby-player inclusion so 3rd and 4th parties in a brawl are in the replay too.
  • Manual server-wide — flip /replay recordall to record everyone online right now; players who join mid-recording are added live.
  • Rolling capture (experimental) — a DVR for your whole server: continuously records every eligible player in hourly clips, keeping only the last few hours.

Highlights

  • Packet-perfect 1:1 playback of movement, combat, blocks and inventories
  • In-game viewer with pause, frame-step, rewind/forward, speed control and teleport
  • GUI control panel (/replay menu) — toggle every recorder without touching files
  • File or MySQL storage, GZIP-compressed, with automatic retention cleanup
  • Per-world whitelist / blacklist / overrides
  • Public API and events for integration with your own plugins
  • Native Folia scheduling — region-thread-safe, not a Spigot port

Next steps

Head to Installation to get the plugin running, then skim the Commands and tune the config.yml to your server.