config.yml reference
Every key in Donut Replay's config.yml, explained, with the defaults.
This is the complete default config.yml. Edit it, then run /replay reload. Each section is broken down below.
General:
Compress-Replays: true # GZIP saved replays (smaller files)
Storage-Type: file # "file" (single server) or "mysql" (network)
MySQL:
host: host
port: 3306
database: database
user: username
password: password
list-page-size: 10 # replays per page in /replay list
DonutReplay:
Viewer:
Safety: true # viewer takes no damage / hunger while watching
Vanish: true # viewer is hidden from other players
Anticheat:
Mode: AUTO # AUTO | grim | vulcan
Grim:
Flags: [killaura, reach, fly]
Vulcan:
Flags: [killaura, reach, flight]
TotemGuard:
Enabled: true
Flags: [autototem, badpackets]
Recording:
Flagged:
Enabled: true
PvP:
Enabled: true
WindowSeconds: 30
SaveEvenWithoutDeath: false
StopOnDeath: true
PostDeathSeconds: 3
IncludeNearbyRadius: 20
MaxParticipants: 12
Worlds:
Whitelist: []
Blacklist: [minecraft_spawn]
Overrides: {}
Retention:
FlaggedDays: 7
PvpDays: 7
ManualDays: 7
Experimental:
RollingCapture:
Enabled: false
WindowHours: 12
ChunkMinutes: 60
General & storage
| Key | Default | Meaning |
|---|---|---|
Compress-Replays | true | GZIP replays on disk — strongly recommended, much smaller files. |
Storage-Type | file | file stores JSON under the plugin folder; mysql uses a shared replays table. |
MySQL.* | — | Connection details, used only when Storage-Type: mysql. |
list-page-size | 10 | How many replays per page in /replay list. |
Viewer
Controls what happens to a staff member while they watch — see In-game viewer.
| Key | Default | Meaning |
|---|---|---|
DonutReplay.Viewer.Safety | true | No damage or hunger loss while watching. |
DonutReplay.Viewer.Vanish | true | Hidden from other online players while watching. |
Anticheat
Picks the combat anticheat for flag-triggered recording. Full breakdown on the Anticheat hooks page.
| Key | Default | Meaning |
|---|---|---|
Anticheat.Mode | AUTO | AUTO detects on startup (Grim wins if both present); or force grim / vulcan. |
Anticheat.Grim.Flags | killaura, reach, fly | Grim check names that trigger a recording (matched by “contains”). |
Anticheat.Vulcan.Flags | killaura, reach, flight | Vulcan checks (note: Vulcan’s flight check is flight, not fly). |
Anticheat.TotemGuard.Enabled | true | Enable the separate TotemGuard hook. |
Anticheat.TotemGuard.Flags | autototem, badpackets | TotemGuard checks to record on. |
Recording
The master switches for what gets captured automatically.
Flagged
| Key | Default | Meaning |
|---|---|---|
Recording.Flagged.Enabled | true | Record players the moment your anticheat flags them. |
PvP
| Key | Default | Meaning |
|---|---|---|
Recording.PvP.Enabled | true | Auto-record fights. |
WindowSeconds | 30 | Rolling window; each new hit resets it (no split). |
SaveEvenWithoutDeath | false | false keeps a fight only if someone dies; true keeps every fight. |
StopOnDeath | true | Finalize as soon as the fight is decided instead of waiting the full window. |
PostDeathSeconds | 3 | Grace after the deciding kill (captures death animation / totem pop). |
IncludeNearbyRadius | 20 | Also record players within this many blocks of a fighter. 0 disables. |
MaxParticipants | 12 | Hard cap on players tracked by one PvP recording. |
Worlds
Per-world rules. Names are case-insensitive.
| Key | Default | Meaning |
|---|---|---|
Worlds.Whitelist | [] | Empty = record in all worlds. Add names to record only those. |
Worlds.Blacklist | [minecraft_spawn] | Worlds where nothing is ever recorded. Takes priority over the whitelist. |
Worlds.Overrides | {} | Per-world tweaks, e.g. FlagOnly: true to allow only anticheat recordings there. |
Worlds:
Whitelist: []
Blacklist:
- minecraft_spawn
Overrides:
arena_world:
FlagOnly: false
Retention
Auto-delete old clips so disk use stays bounded. 0 = never auto-delete.
| Key | Default | Meaning |
|---|---|---|
Retention.FlaggedDays | 7 | Days to keep anticheat-flagged clips. |
Retention.PvpDays | 7 | Days to keep PvP clips. |
Retention.ManualDays | 7 | Days to keep manual server-wide clips. |
Experimental — Rolling capture
A DVR for the whole server: continuously records every eligible player in hourly chunks, keeping only the last WindowHours. Browse it with /replay last12hcheck.
| Key | Default | Meaning |
|---|---|---|
Experimental.RollingCapture.Enabled | false | Turn the rolling DVR on. |
WindowHours | 12 | How many hours of clips to keep. |
ChunkMinutes | 60 | Minutes per clip. Smaller = lower RAM for big player counts. |