Tested 2026-10-31
The best Minecraft replay plugins, tested side by side
We ran ReplayCore, AdvancedReplay, BetterReplay and GlobalReplay on the same server with 50 players and measured what each one costs and what each one actually records. Every number links to its spark profile and every claim about another plugin links to its source code.
- ReplayCore TPS with 50 players
- 19.80
- Same server, no replay plugin
- 19.80
- Minecraft versions recorded
- 1.8.8 to 26.3
Server performance
50 bots played for 10 minutes in each run. The only difference between runs is the replay plugin, so each plugin's cost is the gap to the run without one.
- No replay plugin19.80
- ReplayCore19.80
- BetterReplay19.80
- AdvancedReplay19.80
- GlobalReplay19.80
| Run | TPS mean | TPS low (5th pct) | TPS lost | MSPT median / 95th | Heap (mean) | Recorded per minute | Profile |
|---|---|---|---|---|---|---|---|
| No replay plugin | 19.80 | 19.99 | n/a | 30.6 / 37.2 ms | 2,920 MB | n/a | spark profile for No replay plugin |
| ReplayCore | 19.80 | 19.79 | 0.00 | 36.0 / 49.4 ms | 3,180 MB | 44.9 MB | spark profile for ReplayCore |
| BetterReplay | 19.80 | 19.99 | 0.00 | 30.4 / 38.3 ms | 3,009 MB | 14.1 MB | spark profile for BetterReplay |
| AdvancedReplay | 19.80 | 19.99 | 0.00 | 30.7 / 38.4 ms | 2,991 MB | 0.06 MB | spark profile for AdvancedReplay |
| GlobalReplay | 19.80 | 19.99 | 0.00 | 30.2 / 36.5 ms | 2,991 MB | 0.25 MB | spark profile for GlobalReplay |
MSPT is the milliseconds the server spent on each tick; 50 ms is the limit before TPS drops below 20. Every plugin held 19.80 TPS. ReplayCore spends about 5 ms more per tick than the others because it records the terrain, sounds, effects, mobs and chat around every player. Recorded per minute is what each plugin wrote to storage, which shows how much of the game it keeps.
What each plugin records
Taken from each plugin's own code at the version tested. A recorder can only play back what it saved, so gaps here are gaps in every replay.
| Feature | ReplayCore 1.5.48 | AdvancedReplay 1.8.19 | BetterReplay 1.5.1 | GlobalReplay 0.1.0 |
|---|---|---|---|---|
| Records without anyone pressing start | Always on from server start | Partlyrecord_on_startup exists, off by default Source | Started by an in-game player or the API; not from the console Source | Continuous background recording |
| Players who join mid-recording | PartlyOff by default (add_new_players: false) Source | No join handling in the recorder Source | Source: GlobalReplay 0.1.0 jar: dev.bentianjia.globalreplay.storage.RecordType | |
| Sprinting | Only sneaking is kept from player actions Source | Source | Frames hold position and look only Source: GlobalReplay 0.1.0 jar: RecordingService.recordPlayerFrame (position, look, game mode and a combat flag) | |
| Hits and damage | Every hit, with combat analysis | Hurt animation on players Source | Source | No hit or damage record type Source: GlobalReplay 0.1.0 jar: dev.bentianjia.globalreplay.storage.RecordType |
| Sounds | No sound packets recorded Source | Source | No sound record type Source: GlobalReplay 0.1.0 jar: dev.bentianjia.globalreplay.storage.RecordType | |
| Potion effects and particles | Not in the recorded packet list Source | PartlySplash potion impacts only Source | Source: GlobalReplay 0.1.0 jar: dev.bentianjia.globalreplay.storage.RecordType | |
| Mobs | PartlyOff by default Source | Source | No entity record type Source: GlobalReplay 0.1.0 jar: dev.bentianjia.globalreplay.storage.RecordType | |
| Chat | PartlyOff by default Source | No chat event type Source | Source: GlobalReplay 0.1.0 jar: dev.bentianjia.globalreplay.storage.RecordType | |
| Watch in a web browser | Any device, from a link | In-game on the server | In-game on the server | In-game on the server |
| Playback leaves the live world untouched | Plays back off the server | Partlyreset_changes is off by default Source | Plays back in a separate world Source: GlobalReplay 0.1.0 plugin.yml: isolated parallel-world playback | |
| Minecraft versions | 1.8.8 to 26.3 | Partly1.8.8 to 26.1.2 | Partly1.21 to 26.1.2 | Partly1.20 to 1.21.11 |
| Developer API | REST API and Java SDK | Java API | Java API |
How we tested
- Processor
- Intel Core i9-11900K (8 cores, 16 threads)
- Memory
- 32 GB DDR4-3600
- Storage
- NVMe SSD
- Server
- Paper 1.21.4
- Java
- Java 21, 6 GB heap (-Xms6g -Xmx6g), G1GC
- World
- Pre-generated survival world plus the Nether, the End and a second overworld
- Players
- 50 bots for 10 minutes per run
What the bots do
- Walk, sprint and jump across the map, loading new chunks as they go
- Fight each other and mobs with swords and bows
- Break and place blocks through real player events
- Move between the overworld, the Nether, the End and a second world
Every recorder was set to record all online players for the whole run. Plugins that need a command to start were started by that command before the measured window.
| Plugin | Version | Needs | Licence | Price | Links |
|---|---|---|---|---|---|
| ReplayCore | 1.5.48 | Nothing else | Proprietary, hosted service | Free plan; paid plans from £4.99 a month | Page |
| AdvancedReplay | 1.8.19 | ProtocolLib 5.4.0 | GPL-3.0 | Free | PageSource |
| BetterReplay | 1.5.1 | packetevents 2.14.0 | GPL-3.0-or-later | Free | PageSource |
| GlobalReplay | 0.1.0 | Nothing else | MIT | Free | Page |
Questions
- What is the best Minecraft replay plugin?
- It depends on what you need from a replay. For moderation, anti-cheat review and sharing fights, ReplayCore records every player automatically on 1.8.8 to 26.3 and plays back in a browser from a link. AdvancedReplay and BetterReplay are free, open-source and play back in-game, but you start each recording yourself and they record less of what happened.
- How were the plugins tested?
- On one Paper 1.21.4 server with 50 bots that walk, fight, build and change worlds for ten minutes. Every run used the same world, JVM flags and bot script, with only the plugin changed, and every run has a public spark profile.
- Does a replay plugin lag the server?
- Every recorder costs some server time. In our test all four plugins kept the server at 19.80 TPS with 50 players, the same as no plugin at all. The table shows each one's tick time next to the no-plugin run, with a spark profile for every run, so you can see the cost directly.
- Why does ReplayCore record more data per minute?
- It records the terrain, sounds, effects, mobs and chat around every player so a replay looks the way the game did. AdvancedReplay records player movement and a short list of packets, which is why its files are much smaller.
- Can I check the results myself?
- Yes. Each benchmark row links to its spark profile, and each statement about another plugin links to the line of its source code that shows it.
See it for yourself
Watch a real recording in the browser, or install the free plan on your server in under a minute.