Tags
Creators
Details
2.0.0
Compatibility
Changes
If you're using this plugin in production, it's recommended to join our Discord community for fast support and access to Dev Builds.
Breaking Changes
- Indexed
log_entriesschema: Added indexed columns (block_id,old_block_id,item_id,amount,entity_type,chunk_key). Database migration is fully automatic and backward-compatible, keepingextra_jsonintact. - New tables: Automated creation of
inv_snapshotsandinv_txnstables on startup. BlockRestorerefactor: Converted to a concrete class with multi-tiered fallback reflection calls.- Version tolerance: Unrecognized sub-versions now resolve dynamically via
resolveClosest(), defaulting tov26_1_R2instead of disabling the plugin. - Deprecated commands:
/sp invrollbackand/sp irsare now legacy aliases pointing directly to/sp restore #containers. - New query filters: Added support for
b:,ench:,biome:,ch:,tool:,lore:,display:,within:,sort:,agg:, andformat:.
New Features
-
Advanced restoration engine: Captures previous block data (
oldData) to properly revert fluid and state transitions (water/lava, sculk). Complete NBT capture and restoration on tile entities (chests, signs, spawners, shulkers, lecterns) via internalNbtUtils. -
Unified
/sp restore: Modular scope support using flags:#blocks,#containers,#items(drop/pickup/craft/consume/enchant),#kills(killed entities), and#entities(composite scope). Omitting flags restores all actions within range. -
Dedicated inventory restore: Added
/sp restore-items(supports#undoto return dropped items). Unfit items drop safely at player feet if the inventory is full. -
Expanded event logging: Re-enabled
BlockFadeEvent(ice, snow, fire, coral). Added logging for raids, brewing stands, dispensers, workstation blocks, and explosion-damaged sculk. -
Automated inventory snapshots: Snapshots are recorded every 5 minutes, on container close, and upon player disconnect.
-
Data export & analytics: Added
/sp exportto save filtered logs to JSON/CSV on disk, and/sp statsto view top active players, blocks, and actions over time.
Improvements & Fixes
-
Critical fluid restoration fix: Fixed state rollbacks when fluids solidify or melt by restoring previous block states accurately.
-
Double chest delta fix:
ChestRollbackSessionManagernow synchronizes inventory deltas across both chest halves. -
NBT persistence fix: Ensured tile entities retain full custom metadata upon rollback via complete
NBT-APIintegration. -
Block placement rollback fix: Place actions now pass
oldDatato reliably restore whatever block occupied the space previously. -
Removed duplicate listeners:
PickUpDropListenerno longer creates redundant drop entries covered byCraftListener. -
Legacy 1.8 model hash fix: Fixed
modelDataHashCodereturning static 0 values on custom items. -
Empty event listeners resolved: Raid, brewing, dispenser, and workstation handlers now process and log valid action data.
-
5x to 50x faster queries: Filter lookups are massively accelerated on large databases through composite SQL indexing.
-
Optimized caching & zero extra dependencies:
BlocksCacheandItemsCacherun on amortized O(1) time via hint cursors, backed by custom internal collections (IntSet) without external libraries.
Join the community on: Discord
If you want to support the project: Patreon
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:l3Dexbwu:wvlT97HI"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:l3Dexbwu:wvlT97HI"
}

