1.2
Compatibility
Changes
š”ļø Industrial-Grade Stability Thread-Safe Snapshot Saving: Implemented inventory snapshotting. Inventory contents are now cloned on the Main Thread before being passed to asynchronous SQLite tasks, completely eliminating data corruption or item loss during high-activity movement. BackpackHolder (Custom Identifier): Introduced a custom InventoryHolder specifically for backpacks. This ensures 100% accurate identification of backpack inventories, preventing any accidental interaction with Chests, Barrels, or other GUI menus. Force-Save on Disconnect: Added a fallback mechanism to trigger an immediate save during PlayerQuitEvent (Quit, Kick, or Timeout), ensuring player data is never rolled back even during erratic disconnects. ā” Performance & Anti-Exploit SQLite Database Integration: Migrated from slow YAML file storage to a professional SQLite engine. All I/O operations are performed asynchronously, maintaining a stable 20 TPS even with a high player count. Anti-Dupe Opening Lock: Integrated a logic lock and a 0.1s cooldown for opening backpacks to prevent common duplication glitches caused by rapid interaction spam. Shift + Click Support: Fully enabled Shift-Click functionality, allowing users to quickly deposit or withdraw items without tedious drag-and-drop operations. š« Custom Restrictions & Rules (Configurable) Nesting Prevention: Strictly blocks players from placing a backpack inside another backpack to prevent infinite storage loops. Carriage Limits: Added a configurable max-backpacks limit (default: 1) to control the number of backpacks a single player can carry. Intelligent Item Filtering: Introduced a toggleable filter to block Armor, Weapons, Tools, and Books from being stored in backpacks, ensuring balanced gameplay and reduced NBT complexity. šØ Compatibility & Graphics 1.21.x Hybrid Compatibility: Optimized the file structure to support both legacy 1.21 rendering and the new 1.21.4+ Item Components system. Namespace Standardization: Unified all assets under the backpacks namespace, resolving "black & purple" texture errors and ensuring smooth 3D model rendering. Tiered Crafting Progression: Refined recipes to require the previous tier's backpack as the core ingredient, creating a more rewarding upgrade path.
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:T8kyE5QU:GCR9OV99"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:T8kyE5QU:GCR9OV99"
}

