
BetterReplay
Packet Based Player Recorder. BetterReplay is a server-side replay plugin for Paper and Folia-style scheduling. It records player and nearby entity activity on the server, saves the timeline, and replays it for viewers in-game.
Оцените первым
354
7
Список изменений
[Unreleased]
Added
- 2026-04-17: Frame-by-frame step controls during paused replay; step backward or forward one tick group at a time via
⏮and⏭inventory buttons - 2026-04-19: Variable playback speed controls during active replay, current speed action-bar feedback, and config keys
Playback.Speed-StepplusPlayback.Max-Speed - 2026-04-27: Finalized binary
.brreplay storage for file and MySQL backends, including crash-safe append-log recording, lazy indexed loading, preserved recording start timestamps, startup recovery of orphaned temp logs, and temporary legacy JSON compatibility during migration - 2026-04-27: Hidden admin utilities:
/replay export,/replay debug dump,/replay debug info, and/replay benchmark, with output written under the plugin data folder - 2026-04-29: Replay protection commands and metadata, protected replay highlighting in
/replay list, config-driven retention cleanup with human-readable duration parsing, and deletion safeguards for protected replays - 2026-05-14: Optional chunk baseline capture and chunk-aware playback for binary replays, including block-entity support, replay chunk caching,
Playback.Chunk-View-Radius,Playback.Chunk-Send-Limit-Per-Tick,Playback.Chunk-Clear-Limit-Per-Tick,Playback.Chunk-Timing-Diagnostics, andPlayback.Chunk-Mode - 2026-05-30: Inventory recording split into dedicated equipment-state and storage-snapshot events backed by raw item bytes, plus regression coverage for the new binary payloads and legacy JSON upgrade path
- 2026-05-31: Replay viewer safety controls:
Playback.Viewer-Safety-Mode,Playback.Restore-Viewer-Location-On-Stop,Playback.Restore-Viewer-GameMode-On-Stop,Playback.Restore-Viewer-Flight-On-Stop, andPlayback.Restore-Viewer-State-On-Rejoin - 2026-06-02:
/replay reloadcommand to re-readconfig.yml, restart retention scheduling, and report which changed settings apply immediately, only to new sessions, on future checks, or after restart - 2026-06-02: New config key
Playback.Vanish-Viewer(defaulttrue) to hide replay viewers from live players during playback
Changed
- 2026-04-11:
RecordingStopEventnow fires synchronously to fix async AntiCheatReplay compatibility - 2026-04-19: Update checks now treat
-SNAPSHOTbuilds as their corresponding release version - 2026-04-20: Config settings ownership moved out of
Replayinto a dedicated typed, comment-preserving config manager with versioned migrations - 2026-04-22: Replay sessions now always start at
1.0xspeed, andPlayback.Max-Speedis enforced to a minimum of1.0 - 2026-04-27: Binary replay archives now use format version
2; new.brinventory payloads store split equipment and storage slot bytes directly, while legacy JSON replay loading remains supported and older alpha.brinventory archives are intentionally unsupported - 2026-04-29:
ReplayManagernow exposeslistSavedReplaySummaries,protectSavedReplay,unprotectSavedReplay, and returnsReplayDeleteResultfromdeleteSavedReplay - 2026-04-30: Config keys for list settings were renamed from
list-page-sizeandlist-protected-highlight-colortoList.Page-SizeandList.Protected-Highlight-Color, with automatic startup migration - 2026-04-30: Modrinth publishing metadata now includes Purpur, Spigot, and Bukkit loaders
- 2026-05-14: Modrinth uploads now publish the matching release changelog on
mainand the[Unreleased]section fordevalpha builds - 2026-06-04: README content was reorganized into overview sections with dedicated Architecture, Configuration, and Commands documents under
docs/
Removed
- 2026-04-28:
General.Enable-Benchmark-Command;/replay benchmarkis now always permission-gated throughreplay.benchmark
Fixed
- 2026-04-13: Replay controls no longer get stuck after replay ends (#27)
- 2026-04-15: Held-item swaps and hotbar slot changes are now captured immediately for more accurate replay inventory playback
- 2026-04-16: Nested replay inventory loss when starting a replay during an active replay (#31)
- 2026-04-17: Backward step controls now move exactly one tick group per click instead of skipping two
- 2026-04-19:
activeSessionsinRecorderManagerchanged toConcurrentHashMapto preventConcurrentModificationException(#33) - 2026-04-22: Config migration now preserves wrapped pseudo-comments, keeps the managed header stable, and avoids accumulating blank lines between root sections
- 2026-04-27: Replay export now writes under the plugin data folder
- 2026-04-30: PacketEvents block-break recording is now rescheduled onto the server thread to avoid Netty-thread contention and unsafe shared-state mutation (#43)
- 2026-05-14: Chunk playback restore flow now handles unload timing and viewer return cases more reliably, and replay chunk load probing no longer bottlenecks missing-chunk checks under higher send rates
- 2026-05-30: Equipment polling and dirty inventory polling now reuse shared short-lived caches across concurrent recordings to reduce repeated
ItemStackserialization work without losing fallback accuracy - 2026-05-31: Replay playback now returns viewers to their original location and gameplay state by default, including disconnect and rejoin recovery
- 2026-06-02: Replay viewers can no longer pick up live world items during playback, preventing replay inventory lockups from stray pickups
- 2026-06-03: Replay viewer startup teleports now use asynchronous teleports for safer Paper and Folia compatibility
- 2026-06-04: Dev alpha publishing now derives the next
-alpha.Nversion from existing Modrinth releases for the current base version instead ofGITHUB_RUN_NUMBER, so prereleases track the next unreleased line (now1.5.0-alpha.N) and workflow renames cannot reset alpha numbering
Файлы
BetterReplay-1.5.0-alpha.1.jar(1.42 MiB)
ОсновнойМетаданные
Канал релиза
Alpha
Номер версии
1.5.0-alpha.1
Загрузчики
BukkitFoliaPaperPurpurSpigot
Версии игры
1.21–26.1.2
Загрузок
3
Дата публикации
06.06.2026
