{"id":7239,"date":"2026-05-31T17:39:55","date_gmt":"2026-05-31T14:39:55","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/advancedreplay\/"},"modified":"2026-05-31T17:39:55","modified_gmt":"2026-05-31T14:39:55","slug":"advancedreplay","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/advancedreplay\/","title":{"rendered":"AdvancedReplay"},"content":{"rendered":"<p>![AdvancedReplay plugin banner](https:\/\/cdn.modrinth.com\/data\/cached_images\/00a686ba17d84c720baec09b0d1852c6f5622e3a_0.webp)<br \/>\n# AdvancedReplay<br \/>\nAdvancedReplay is a Replay system for Spigot 1.8 &#038; 1.21.<br \/>\nIt can record players on your Server and save the recorded data to a file or database, so you can watch the replays at any time. Currently it records almost every action a player does and can be easily controlled with the commands.<\/p>\n<p>\u26a0\ufe0f This Plugin needs ProtocolLib to run.<br \/>\n&#8211; ProtocolLib<br \/>\n&#8211; ProtocolLib Dev Builds<\/p>\n<p>## Features  <\/p>\n<p>**Replaying**: When watching a replay you have a variety of tools to control the replay. For example, you can pause it, change the speed, teleport to one of the players and more.<\/p>\n<p>**Easy to use API**: AdvancedReplay comes with a lot of possibilities for customization with the api, including a way to change how replays are saved and a possibility to add and replay your own data.<br \/>\nFor more details take look at the API section.<\/p>\n<p>**Recorded Data:**<\/p>\n<p>AdvancedReplay is currently able to record players, living entities, items and Projectiles.<br \/>\n&#8211; Player movements<br \/>\n&#8211; Player actions (Eating, Arm animations &#038; more)<br \/>\n&#8211; Inventory changes<br \/>\n&#8211; Metadata updates<br \/>\n&#8211; Projectiles<br \/>\n&#8211; Dropped Items<br \/>\n&#8211; Block changes by players<br \/>\n&#8211; Chat messages<\/p>\n<p>If you encounter any bugs please report them in Github.<\/p>\n<p>## Configuration<br \/>\nIn the config.yml you can configure some general settings about the plugin and the recorded data If you want to use a database you also need to set up the mysql.yml.<br \/>\nIf you want to disable a notification or message just leave it empty.<\/p>\n<details>\n<summary>Spoiler<\/summary>\n<p>&#8220;`yml<br \/>\n# General plugin settings<br \/>\ngeneral:<\/p>\n<p>  # Maximum length of a replay in seconds<br \/>\n  max_length: 3600<\/p>\n<p>  # Create a new recording on startup<br \/>\n  # save_on_stop and add_new_players should be enabled<br \/>\n  record_on_startup: false<\/p>\n<p>  # Should the Replay be saved on shutdown\/when the maximum length is exceeded?<br \/>\n  save_on_stop: false<\/p>\n<p>  # Should the plugin save the Replays to a mysql database?<br \/>\n  # If enabled you need to configure the mysql.yml<br \/>\n  use_mysql: false<\/p>\n<p>  # Save the Replays to an S3 compatible Storage<br \/>\n  # If enabled you need to configure s3.yml<br \/>\n  use_s3: false<\/p>\n<p>  # If enabled in offline mode, the plugin will fetch the skin data from Mojang<br \/>\n  # Can slow down the server when recording a lot of players<br \/>\n  use_offline_skins: true<\/p>\n<p>  # Change how detailed movement is recorded. Better quality results in larger replays<br \/>\n  # Options: high, medium, low<br \/>\n  quality: high<\/p>\n<p>  # Automatically delete replays after a specific amount of time (days)<br \/>\n  # Use -1 to disable<br \/>\n  cleanup_replays: -1<\/p>\n<p>  # Hide all players that are not participating in a replay<br \/>\n  hide_players: false<\/p>\n<p>  # Should players when they join after a recording started be added to all running recordings<br \/>\n  add_new_players: false<\/p>\n<p>  # Should AdvancedReplay check for new updates?<br \/>\n  update_notifications: true<\/p>\n<p>  # This message is displayed when a player dies<br \/>\n  death_message: &#8216;&#038;6{name} &#038;7died.&#8217;<\/p>\n<p>  # This message is displayed when a player leaves the game<br \/>\n  quit_message: &#8216;&#038;6{name} &#038;7left the game.&#8217;<\/p>\n<p>  # This message is displayed when a player joins the game<br \/>\n  join_message: &#8216;&#038;6{name} &#038;7joined the game.&#8217;<\/p>\n<p># Configuration of the replaying settings<br \/>\nreplaying:<br \/>\n  world:<br \/>\n    # Reset block changes after watching a replay?<br \/>\n    reset_changes: false<\/p>\n<p>  # How should the replay progress be displayed<br \/>\n  # Options: action_bar, xp_bar, none<br \/>\n  progress_display: action_bar<\/p>\n<p># Configuration of the recording data<br \/>\nrecording:<br \/>\n  blocks:<\/p>\n<p>    # Enable recording of block changes?<br \/>\n    enabled: true<\/p>\n<p>    # Use real block changes when replaying?<br \/>\n    real_changes: true<\/p>\n<p>  entities:<br \/>\n    # Enable recording of all living entities?<br \/>\n    enabled: true<br \/>\n    items:<\/p>\n<p>      # Enable recording of items?<br \/>\n      enabled: true<br \/>\n  chat:<\/p>\n<p>    # Enable recording of chat messages?<br \/>\n    enabled: true<br \/>\n    # Format of recorded chat messages<br \/>\n    format:  &#8216;&#038;r<{name}> {message}&#8217;<br \/>\n&#8220;`<\/p>\n<\/details>\n<p>## Videos<br \/>\n<iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube-nocookie.com\/embed\/XWoN9svMvng\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe><\/p>\n<p>## Commands\/Permissions<br \/>\n_\/replay_ &#8211; Overview of all commands<br \/>\n_\/replay start [Name]:[Duration] [<Players ...>]_ &#8211; Starts recording a new Replay<br \/>\n_\/replay stop <Name> [-nosave|-force]_ &#8211; Stops and saves a Replay<br \/>\n_\/replay play <Name>_ &#8211; Starts a recorded Replay<br \/>\n_\/replay jump <Time>_ &#8211; Jump to a specific moment<br \/>\n_\/replay leave_ &#8211; Leave your Replay<br \/>\n_\/replay info <Name>_ &#8211; Information about a Replay<br \/>\n_\/replay delete <Name>_ &#8211; Deletes an existing Replay<br \/>\n_\/replay list [Page]_ &#8211; Lists all available Replays<br \/>\n_\/replay reload_ &#8211; Reloads the configuration  <\/p>\n<p>_replay.command.<Command>_ &#8211; Permission for the specific command<\/p>\n<p>## API Examples<\/p>\n<details>\n<summary>Register a custom ReplaySaver<\/summary>\n<p>&#8220;`java<br \/>\nReplayAPI.getInstance().registerReplaySaver(new IReplaySaver() {<\/p>\n<p>    @Override<br \/>\n    public void saveReplay(Replay replay) {<br \/>\n        ReplayData data = replay.getData();<br \/>\n        \/\/ Will be called to save a new replay<\/p>\n<p>    }<\/p>\n<p>    @Override<br \/>\n    public boolean replayExists(String replayName) {<br \/>\n        \/\/ Return true if the replay exists<br \/>\n        return false;<br \/>\n    }<\/p>\n<p>    @Override<br \/>\n    public void loadReplay(String replayName, Consumer<Replay> consumer) {<\/p>\n<p>        \/\/ Load the ReplayData and return a new replay to the consumer<br \/>\n        consumer.accept(new Replay(replayName, new ReplayData()));<br \/>\n    }<\/p>\n<p>    @Override<br \/>\n    public void deleteReplay(String replayName) {<br \/>\n        \/\/ Will be called to delete an existing replay<\/p>\n<p>    }<\/p>\n<p>    @Override<br \/>\n    public List<String> getReplays() {<br \/>\n        \/\/ Return all available replays<br \/>\n        return null;<br \/>\n    }<br \/>\n});<br \/>\n&#8220;`<\/p>\n<\/details>\n<details>\n<summary>Register your own ReplayHook<\/summary>\n<p>&#8220;`java<br \/>\n        ReplayAPI.getInstance().registerHook(new IReplayHook() {<\/p>\n<p>            @Override<br \/>\n            public PacketData onRecord(String playerName) {<br \/>\n                \/*<br \/>\n                 * Will be called every tick for every player that is being recorded.<br \/>\n                 * Return a PacketData containing the data that you want to add.<br \/>\n                 *\/<\/p>\n<p>                return null;<br \/>\n            }<\/p>\n<p>            @Override<br \/>\n            public void onPlay(ActionData data, Replayer replayer) {<br \/>\n                String name = data.getName();<br \/>\n                PacketData packetData = data.getPacketData();<br \/>\n                \/\/ Will be called whenever a previous recorded action should be played<\/p>\n<p>            }<br \/>\n        });<br \/>\n&#8220;`<\/p>\n<\/details>\n<details>\n<summary>Replay Events<\/summary>\n<p>&#8220;`java<br \/>\npublic void onReplayFinished(ReplaySessionFinishEvent e) {<br \/>\n    Player player = e.getPlayer();<br \/>\n    Replay replay = e.getReplay();<br \/>\n&#8220;`<\/p>\n<\/details>\n","protected":false},"excerpt":{"rendered":"<p>Minecraft Replay Plugin to record players on your server<\/p>\n","protected":false},"featured_media":7240,"template":"","meta":{"_minecraft_slug":"advancedreplay","_minecraft_project_id":"QgPMZJP2","_minecraft_author":"Jumper251","_minecraft_license":"GPL-3.0-only","_minecraft_downloads":3101,"_minecraft_follows":34,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"advancedreplay.zip","_minecraft_size_bytes":3600985,"_minecraft_version_count":9,"_minecraft_updated_at":"2026-05-16T04:57:30.368814Z","_minecraft_date_created":"2024-10-06T05:28:44.694820Z","_minecraft_date_modified":"2026-01-07T13:43:04.670780Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/advancedreplay","_minecraft_icon_attachment_id":7240,"_minecraft_imported_at":"2026-05-31T14:39:55+00:00","_minecraft_import_hash":"26f13639d3dfa389b70ce0fb565564c4","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[124,873,126,127,128,129,91,123,92],"mod_loader":[130,132,133,134],"minecraft_version":[58,102,62,37,40,41,73,74,38,78,79,80,81,82,30,31],"class_list":["post-7239","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-bukkit","mod_category-library","mod_category-management","mod_category-paper","mod_category-purpur","mod_category-spigot","mod_category-storage","mod_category-technology","mod_category-utility","mod_loader-bukkit","mod_loader-paper","mod_loader-purpur","mod_loader-spigot","minecraft_version-1-19-4","minecraft_version-1-20-6","minecraft_version-1-21","minecraft_version-1-21-1","minecraft_version-1-21-10","minecraft_version-1-21-11","minecraft_version-1-21-2","minecraft_version-1-21-3","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-21-7","minecraft_version-1-21-8","minecraft_version-1-21-9","minecraft_version-1-8-8","minecraft_version-1-8-9"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>AdvancedReplay - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/advancedreplay\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AdvancedReplay - Minecraft\" \/>\n<meta property=\"og:description\" content=\"Minecraft Replay Plugin to record players on your server\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/advancedreplay\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/advancedreplay\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/advancedreplay\\\/\",\"name\":\"AdvancedReplay - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/advancedreplay\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/advancedreplay\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/advancedreplay-icon-309f33ac741add11ef527299b52b5889253b16a7_96.webp\",\"datePublished\":\"2026-05-31T14:39:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/advancedreplay\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/advancedreplay\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/advancedreplay\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/advancedreplay-icon-309f33ac741add11ef527299b52b5889253b16a7_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/advancedreplay-icon-309f33ac741add11ef527299b52b5889253b16a7_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/advancedreplay\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"AdvancedReplay\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AdvancedReplay - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/advancedreplay\/","og_locale":"en_US","og_type":"article","og_title":"AdvancedReplay - Minecraft","og_description":"Minecraft Replay Plugin to record players on your server","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/advancedreplay\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/advancedreplay\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/advancedreplay\/","name":"AdvancedReplay - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/advancedreplay\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/advancedreplay\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/05\/advancedreplay-icon-309f33ac741add11ef527299b52b5889253b16a7_96.webp","datePublished":"2026-05-31T14:39:55+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/advancedreplay\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/advancedreplay\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/advancedreplay\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/05\/advancedreplay-icon-309f33ac741add11ef527299b52b5889253b16a7_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/05\/advancedreplay-icon-309f33ac741add11ef527299b52b5889253b16a7_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/advancedreplay\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"AdvancedReplay"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/7239","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/7240"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=7239"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=7239"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=7239"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=7239"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}