{"id":32416,"date":"2026-06-01T17:46:03","date_gmt":"2026-06-01T14:46:03","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/blockrollback\/"},"modified":"2026-06-01T17:46:03","modified_gmt":"2026-06-01T14:46:03","slug":"blockrollback","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/blockrollback\/","title":{"rendered":"BlockRollback"},"content":{"rendered":"<p># BlockRollback<\/p>\n<p>BlockRollback is a lightweight audit and rollback plugin for Bukkit-family 1.21.x servers such as Paper, Spigot, and Purpur.<br \/>\nIt records player actions, some natural changes, and command-based edits into SQLite so they can later be inspected, looked up, and rolled back with `inspect`, `lookup`, and `rollback`.<\/p>\n<p>You can use `\/br` as an alias for `\/blockrollback`.<\/p>\n<p>## Main Features<\/p>\n<p>&#8211; Records block placement and breaking, bucket actions, explosions, fire, fluid flow, and natural block updates<br \/>\n&#8211; Records container item transactions and block click interactions<br \/>\n&#8211; Records block placement and breaking, mob deaths, item despawns, and changes caused by `\/fill` and `\/kill`<br \/>\n&#8211; Inspect mode lets you check the history of the clicked coordinates in place<br \/>\n&#8211; Search logs by player name, special tags, time range, and radius<br \/>\n&#8211; Supports rolling back block changes as well as restoring killed mobs and despawned items<br \/>\n&#8211; Uses SQLite locally, so no external database server is required<br \/>\n&#8211; Supports multilingual messages<\/p>\n<p>## Supported Environment<\/p>\n<p>&#8211; Bukkit-family 1.21.x<br \/>\n&#8211; Based on the Paper API 1.21.4<br \/>\n&#8211; Java 21<br \/>\n&#8211; Paper, Spigot, Purpur, and compatible loaders<\/p>\n<p>## Commands<\/p>\n<p>| Command | Description |<br \/>\n| &#8212; | &#8212; |<br \/>\n| `\/br inspect [on|off]` | Toggles Inspect mode. While it is on, clicking a block shows the history of that block position. |<br \/>\n| `\/br lookup <player|*|#Mobs|#DespawnItem> <time> [radius] [page]` | Searches logs that match the given conditions. `time` uses formats such as `30m`, `1h`, `1d`, `1w`, and `1y`. |<br \/>\n| `\/br rollback <player|*|#Mobs|#DespawnItem> <time> [radius]` | Applies rollbackable records that match the given conditions. |<br \/>\n| `\/br tp <world> <x> <y> <z>` | Teleports you to the coordinates from a lookup result. |<br \/>\n| `\/br cancel` | Cancels the currently running rollback. |<br \/>\n| `\/br status` | Shows database size, log count, write queue status, and rollback progress. |<br \/>\n| `\/br reload` | Reloads `config.yml`, `config.json`, and language files. |<br \/>\n| `\/br help` | Shows help. |<\/p>\n<p>### Examples<\/p>\n<p>&#8211; `\/br inspect on`<br \/>\n&#8211; `\/br lookup Steve 1h 20`<br \/>\n&#8211; `\/br lookup #TNT 1d`<br \/>\n&#8211; `\/br rollback Steve 30m 20`<br \/>\n&#8211; `\/br rollback #Mobs 15m 30`<br \/>\n&#8211; `\/br rollback #DespawnItem 10m 20`<\/p>\n<p>## How Filters Work<\/p>\n<p>&#8211; A player name such as `Steve` targets block-related changes associated with that player<br \/>\n&#8211; `*` targets every rollbackable record within the scope<br \/>\n&#8211; `#Mobs` targets mob death records<br \/>\n&#8211; `#DespawnItem` targets item despawn records<br \/>\n&#8211; Special tags such as `#TNT`, `#Creeper`, `#Fire`, `#Fluid`, and `#Natural` can also be used for lookup and rollback<\/p>\n<p>## What Gets Logged<\/p>\n<p>### Rollbackable<\/p>\n<p>&#8211; Block placement and breaking<br \/>\n&#8211; Bucket placement and pickup<br \/>\n&#8211; Destruction caused by explosions<br \/>\n&#8211; Burning caused by fire<br \/>\n&#8211; Fluid flow<br \/>\n&#8211; Natural block changes<br \/>\n&#8211; Block changes caused by `\/fill`<br \/>\n&#8211; Mob deaths and mob removals caused by `\/kill`<br \/>\n&#8211; Item despawns<\/p>\n<p>### Audit Only<\/p>\n<p>&#8211; Putting items into containers and taking items out<br \/>\n&#8211; Left-click and right-click interactions on blocks<\/p>\n<p>## Permissions<\/p>\n<p>| Permission | Description | Default |<br \/>\n| &#8212; | &#8212; | &#8212; |<br \/>\n| `blockrollback.inspect` | Toggle Inspect mode | OP |<br \/>\n| `blockrollback.lookup` | Run lookup and use `\/br tp` | OP |<br \/>\n| `blockrollback.rollback` | Run rollback and cancel | OP |<br \/>\n| `blockrollback.admin` | Run status and reload | OP |<\/p>\n<p>## Configuration<\/p>\n<p>### `config.yml`<\/p>\n<p>Main settings:<\/p>\n<p>| Key | Description |<br \/>\n| &#8212; | &#8212; |<br \/>\n| `database-file` | SQLite file name |<br \/>\n| `log.block-place-break` | Log block placement and breaking |<br \/>\n| `log.buckets` | Log bucket actions |<br \/>\n| `log.container-transactions` | Log container transactions |<br \/>\n| `log.item-despawn` | Log item despawns |<br \/>\n| `log.mob-kill` | Log mob deaths |<br \/>\n| `log.interactions` | Log block clicks |<br \/>\n| `log.explosions` | Log explosions |<br \/>\n| `log.fire` | Log burning caused by fire |<br \/>\n| `log.fluid-flow` | Log fluid flow |<br \/>\n| `log.natural-block-updates` | Log natural block updates |<br \/>\n| `inspect.use-adjacent-when-holding-block` | When holding a block and right-clicking, inspect the adjacent target position |<br \/>\n| `rollback.default-radius` | Default radius used when a player omits the radius |<br \/>\n| `rollback.max-radius` | Maximum rollback radius |<br \/>\n| `rollback.max-records-per-run` | Maximum records processed in one rollback run |<br \/>\n| `rollback.apply-per-tick` | Number of records applied per tick |<br \/>\n| `command-tracking.fill` | Enable `\/fill` tracking |<br \/>\n| `command-tracking.fill-max-blocks` | Maximum number of blocks tracked for `\/fill` |<br \/>\n| `command-tracking.kill` | Enable `\/kill` tracking |<br \/>\n| `command-tracking.kill-max-entities` | Maximum number of entities tracked for `\/kill` |<br \/>\n| `command-tracking.console-world` | World name used for console-issued commands |<br \/>\n| `command-tracking.notify-skip` | Notify when tracking is skipped because the target is too large |<\/p>\n<p>### `config.json`<\/p>\n<p>`config.json` is used to configure the language.<\/p>\n<p>&#8220;`json<br \/>\n{<br \/>\n  &#8220;configVersion&#8221;: 1,<br \/>\n  &#8220;language&#8221;: &#8220;en_us &#8221;<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p>Supported languages:<\/p>\n<p>&#8211; `ja_jp`<br \/>\n&#8211; `en_us`<br \/>\n&#8211; `de_de`<br \/>\n&#8211; `fr_fr`<br \/>\n&#8211; `ru_ru`<br \/>\n&#8211; `zh_cn`<\/p>\n<p>The default value on first launch is `en_us`.<br \/>\nYou can also edit the `.lang` files generated in `plugins\/BlockRollback\/lang\/` to create your own translation.<\/p>\n<p>## Behavior Notes<\/p>\n<p>&#8211; Only one rollback can run at a time<br \/>\n&#8211; For `lookup` and `rollback`, radius filtering uses the executor&#8217;s current position when run by a player<br \/>\n&#8211; Radius-based `lookup` cannot be used from the console<br \/>\n&#8211; While Inspect mode is enabled, normal block interaction is cancelled so the click can be used for audit display<br \/>\n&#8211; A record is skipped if the destination world does not exist or if the target entity is already present<\/p>\n<p>## Stored Data<\/p>\n<p>&#8211; Logs are stored as SQLite in `plugins\/BlockRollback\/<database-file>`<br \/>\n&#8211; The table name is `action_logs`<br \/>\n&#8211; Indexes are created for time, player name plus time, and location<\/p>\n","protected":false},"excerpt":{"rendered":"<p>You can roll back changes to blocks or the deletion of entities, and view the history.<\/p>\n","protected":false},"featured_media":32417,"template":"","meta":{"_minecraft_slug":"blockrollback","_minecraft_project_id":"CVMwr53q","_minecraft_author":"PJMichi","_minecraft_license":"LicenseRef-All-Rights-Reserved","_minecraft_downloads":97,"_minecraft_follows":0,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"blockrollback.zip","_minecraft_size_bytes":44010781,"_minecraft_version_count":3,"_minecraft_updated_at":"2026-05-15T19:47:49.951285Z","_minecraft_date_created":"2026-03-30T02:46:31.879736Z","_minecraft_date_modified":"2026-03-22T14:19:39.096210Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/blockrollback","_minecraft_icon_attachment_id":32417,"_minecraft_imported_at":"2026-06-01T14:46:03+00:00","_minecraft_import_hash":"c8b1f0c4dc796037d30746c709a4fc19","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[124,97,126,137,90,127,128,129,123,92],"mod_loader":[130,99,132,133,134],"minecraft_version":[62,37,40,41,73,74,38,78,79,80,81,82],"class_list":["post-32416","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-bukkit","mod_category-fabric","mod_category-management","mod_category-mobs","mod_category-optimization","mod_category-paper","mod_category-purpur","mod_category-spigot","mod_category-technology","mod_category-utility","mod_loader-bukkit","mod_loader-fabric","mod_loader-paper","mod_loader-purpur","mod_loader-spigot","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"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>BlockRollback - 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\/blockrollback\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"BlockRollback - Minecraft\" \/>\n<meta property=\"og:description\" content=\"You can roll back changes to blocks or the deletion of entities, and view the history.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/blockrollback\/\" \/>\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\\\/blockrollback\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/blockrollback\\\/\",\"name\":\"BlockRollback - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/blockrollback\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/blockrollback\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/blockrollback-icon-d26a2d27c50b7756d2c8075024e89859c4e963f3_96.webp\",\"datePublished\":\"2026-06-01T14:46:03+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/blockrollback\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/blockrollback\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/blockrollback\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/blockrollback-icon-d26a2d27c50b7756d2c8075024e89859c4e963f3_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/blockrollback-icon-d26a2d27c50b7756d2c8075024e89859c4e963f3_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/blockrollback\\\/#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\":\"BlockRollback\"}]},{\"@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":"BlockRollback - 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\/blockrollback\/","og_locale":"en_US","og_type":"article","og_title":"BlockRollback - Minecraft","og_description":"You can roll back changes to blocks or the deletion of entities, and view the history.","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/blockrollback\/","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\/blockrollback\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/blockrollback\/","name":"BlockRollback - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/blockrollback\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/blockrollback\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/blockrollback-icon-d26a2d27c50b7756d2c8075024e89859c4e963f3_96.webp","datePublished":"2026-06-01T14:46:03+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/blockrollback\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/blockrollback\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/blockrollback\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/blockrollback-icon-d26a2d27c50b7756d2c8075024e89859c4e963f3_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/blockrollback-icon-d26a2d27c50b7756d2c8075024e89859c4e963f3_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/blockrollback\/#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":"BlockRollback"}]},{"@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\/32416","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\/32417"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=32416"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=32416"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=32416"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=32416"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}