config.yml reference

Every key in Kernel 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

Overwatch:
  RequireEmptyInventory: true     # require an empty inventory to enter Overwatch
  NoteMaxLength: 256              # review notes longer than this are trimmed

Report:
  Enabled: true                   # master switch: command + death prompt + menu button
  DeathPrompt:
    Enabled: true                 # "report your killer" hint after a PvP death
  Grief:
    RecordSeconds: 30             # how long a Grief report records the suspect
    NotifyReporter: true
  Cheat:
    ClipLimit: 10                 # max clips attached to a Cheat report (newest first)
    SameDayOnly: true             # only attach clips from the same calendar day
    RequireKilledReporter: true   # accept a Cheat report only if the target killed the reporter today
  Limits:
    MinPlaytimeHours: 12          # playtime needed before a player may /report
    SameTargetCooldownMinutes: 60 # wait before reporting the SAME target again
    DailyLimit: 10                # max reports per player per day
  Retention:
    ProtectClips: true            # report clips are exempt from retention cleanup
    Days: 30                      # days to keep reports before auto-purge (0 = forever)
  Action:
    BanCommand: "ban {player} {duration} {reason}"
    DefaultDuration: "3d"

Anticheat:
  Mode: AUTO                      # AUTO | grim | vulcan
  Grim:
    Flags: [killaura, reach, fly]
  Vulcan:
    Flags: [killaura, reach, flight]
  TotemGuard:
    Enabled: true
    Flags: [autototem, badpackets]

Recording:
  Optimize:
    SkipUnchangedMoves: true        # don't write a position when nothing moved
    MoveHeartbeatTicks: 100         # still force-write a position every N ticks (anchors seek/resync)
  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:
  DeathCam:
    Enabled: true                   # save a clip on EVERY death, with a few seconds of lead-up
    PreRollSeconds: 5               # seconds BEFORE the death to include
    PostDeathSeconds: 3             # seconds AFTER the death to keep
    IncludeNearbyRadius: 16         # also include players within N blocks (0 = victim + killer only)
    RetentionDays: 7               # days to keep death clips

General & storage

KeyDefaultMeaning
Compress-ReplaystrueGZIP replays on disk — strongly recommended, much smaller files.
Storage-Typefilefile stores JSON under the plugin folder; mysql uses a shared replays table.
MySQL.*Connection details, used only when Storage-Type: mysql.
list-page-size10How many replays per page in /replay list.

Viewer

Controls what happens to a staff member while they watch — see In-game viewer.

KeyDefaultMeaning
DonutReplay.Viewer.SafetytrueNo damage or hunger loss while watching.
DonutReplay.Viewer.VanishtrueHidden from other online players while watching.

Overwatch

The review queue. Full flow on the Overwatch review page.

KeyDefaultMeaning
Overwatch.RequireEmptyInventorytrueRequire an empty inventory to enter Overwatch, so items can’t be lost or duplicated. Strongly recommended on.
Overwatch.NoteMaxLength256Maximum length of a review note (characters). Longer notes are trimmed.

Report

Player-filed cheat & grief reports. Full breakdown — limits, bypass nodes and the punish action — on the Player reports page.

KeyDefaultMeaning
Report.EnabledtrueMaster switch for the whole feature (command + death prompt + menu button).
Report.DeathPrompt.EnabledtrueMessage the victim a “report your killer” hint after a PvP death.
Report.Grief.RecordSeconds30Seconds the suspect is recorded when a Grief report is filed.
Report.Grief.NotifyReportertrueTell the reporter when the recording starts and finishes.
Report.Cheat.ClipLimit10Most clips attached to one Cheat report (newest first).
Report.Cheat.SameDayOnlytrueOnly attach clips from the same calendar day as the report.
Report.Cheat.RequireKilledReportertrueAccept a Cheat report only if the target killed the reporter today (anti-fake-report).
Report.Limits.MinPlaytimeHours12Hours of playtime needed before a player may /report (0 = none).
Report.Limits.SameTargetCooldownMinutes60Cooldown before reporting the same target again (0 = none).
Report.Limits.DailyLimit10Max reports a player may file per day.
Report.Retention.ProtectClipstrueReport clips are exempt from auto-deletion, so evidence is never lost.
Report.Retention.Days30Days to keep reports before they auto-purge (0 = forever).
Report.Action.BanCommandban {player} {duration} {reason}Console command run by the “punish” button. Placeholders: {player}, {duration}, {reason}.
Report.Action.DefaultDuration3dDefault ban length for the quick punish button.

Anticheat

Picks the combat anticheat for flag-triggered recording. Full breakdown on the Anticheat hooks page.

KeyDefaultMeaning
Anticheat.ModeAUTOAUTO detects on startup (Grim wins if both present); or force grim / vulcan.
Anticheat.Grim.Flagskillaura, reach, flyGrim check names that trigger a recording (matched by “contains”).
Anticheat.Vulcan.Flagskillaura, reach, flightVulcan checks (note: Vulcan’s flight check is flight, not fly).
Anticheat.TotemGuard.EnabledtrueEnable the separate TotemGuard hook.
Anticheat.TotemGuard.Flagsautototem, badpacketsTotemGuard checks to record on.

Recording

The master switches for what gets captured automatically.

Performance

Cuts the bulk out of every recording at the source: an idle/AFK player otherwise writes 20 identical positions a second.

KeyDefaultMeaning
Recording.Optimize.SkipUnchangedMovestrueSkip writing a position when nothing moved or turned since the last tick. Strongly recommended on.
Recording.Optimize.MoveHeartbeatTicks100Even when unchanged, force-write a position this often (20 = 1s) so seeking and resync stay accurate.

Flagged

KeyDefaultMeaning
Recording.Flagged.EnabledtrueRecord players the moment your anticheat flags them.

PvP

KeyDefaultMeaning
Recording.PvP.EnabledtrueAuto-record fights.
WindowSeconds30Rolling window; each new hit resets it (no split).
SaveEvenWithoutDeathfalsefalse keeps a fight only if someone dies; true keeps every fight.
StopOnDeathtrueFinalize as soon as the fight is decided instead of waiting the full window.
PostDeathSeconds3Grace after the deciding kill (captures death animation / totem pop).
IncludeNearbyRadius20Also record players within this many blocks of a fighter. 0 disables.
MaxParticipants12Hard cap on players tracked by one PvP recording.

Worlds

Per-world rules. Names are case-insensitive.

KeyDefaultMeaning
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.

KeyDefaultMeaning
Retention.FlaggedDays7Days to keep anticheat-flagged clips.
Retention.PvpDays7Days to keep PvP clips.
Retention.ManualDays7Days to keep manual server-wide clips.

Experimental — Death Cam

An “instant replay” of deaths. Every eligible player is buffered in memory (a small rolling window — never written to disk), so a clip is saved only when a player dies — for any cause: PvP, lava, fall, a mob. The clip starts PreRollSeconds before the death, so you can see how it happened, and runs PostDeathSeconds after. If nobody dies, nothing is ever written. Browse the clips with /replay deaths.

KeyDefaultMeaning
Experimental.DeathCam.EnabledtrueBuffer everyone and save a clip on each death.
PreRollSeconds5Seconds of footage before the death — the “rewind”.
PostDeathSeconds3Seconds to keep after the death (death animation / totem / killer).
IncludeNearbyRadius16Also include other players within this many blocks of the death. 0 = victim + killer only.
RetentionDays7Days to keep death clips before auto-deletion.