HavenBags
1.43.1Create shulker-like bags of varying sizes bound to a player, or accessible by anyone.
1.43.1latestSep 15, 2026 Changed: Upgrading bags now accept nexo and oraxen items.
Does not work in if using anvils to upgrade bags Fixed: Fixed an issue where texture skins (heads) failed to currently show, if the bag had an itemmodel skin already. Fixed: Fixed an issue where the give/create commands would create ownerless bags regardless of the binding args. Note: These changes have not yet been pushed to the repo, and was just published to fix the issues.yml upgrades: ... # Bag upgrades. # <> = Optional # MATERIAL:AMOUNT:<CUSTOMMODELDATA> # nexo:nexo-id:AMOUNT from-9-to-18: EMERALD:5:90000 from-18-to-27: nexo:bag_upgrade_27:1 #from-18-to-27: PAPER:1:84627 from-27-to-36: oraxen:bag_upgrade_36:1 #from-27-to-36: PAPER:1:84636 from-36-to-45: PAPER:1:84645 from-45-to-54: PAPER:1:846541.43.0.2963Aug 6, 2026 Experimental Added: HavenBags-Standalone version, runs without needing ValorlessUtils, as it has it inside it instead. This has yet to be play-tested, therefore do not use it in production and only testing. Added: FeaturesGUI - Right-click bag in the inventory to open a gui where you can toggle features. Requested by @Cr4zyGeek https://github.com/Valorless/HavenBags/issues/50 Added: Auto-crafting! Automatically run all items in the bag through 3x3 crafting, placing the result and any unused ingredients into the chest. Added: Vault Economy integration, moved away from EssentialsX-only to allow additional economy plugins for the Insurance feature. Added: Bag contents can now stack in the lore (Enabled by default) showing "ITEM: x128" instead of "ITEM: x64 ITEM: x64"
Added: Auto-pickup filters inlang.yml # Should items stack, showing 2 stacks of 64 as x128, instead of 2 x64. bag-content-stack: truefilters.ymlnow support ItemTags https://minecraft.wiki/w/Item_tag_(Java_Edition)
Added: In addition, you can create custom tags within filters.yml to use in filters. Added: Oraxen support, used the same way as Nexo support, but oraxen:id not nexo:id. Changed: Certain dependencies are no longer shaded, lowering the size of the plugin file. Changed: Config validation has been tweaked. Changed: Bags can no longer be upgraded by players that don't own the bag, or have the bypass permission. Changed:filters.yml filters: armor: displayname: '&eᴀʀᴍᴏʀ' gui: show: true icon: IRON_CHESTPLATE items: - '#minecraft:head_armor' - '#minecraft:chest_armor' - '#minecraft:leg_armor' - '#minecraft:foot_armor'/havenbags rawinfowill no longer return the raw ItemMeta component, but instead the Bag's datamodel, containing only information about the bag, and not the item itself. Changed: Refilling: If your hand is empty the item will be put directly in your hand, rather than your first empty slot. Fixed: Players can no longer upgrade bags to a size they don't themselves have access to open. Fixed: A bug causing all bags to auto-save, regardless whether they were changed or not. Fixed: Eco now correctly initializes. API Changes: - Datamodel "Data" has been renamed to "Bag" for clarity and representation. - Fixed a minor mistake in the API when creating Ethereal bags. Internal: - Refactored all methods to start with small letters as opposed to large ones. I.e. plugin.ExampleMethod() -> plugin.exampleMethod(); - Renamed BagData -> Database, to avoid confusion with the Bag datamodel. - Renamed datamodel Data -> Bag, to better represent it and clarity.1.43.0-Standalone1.43.0Aug 6, 2026 Experimental Added: HavenBags-Standalone version, runs without needing ValorlessUtils, as it has it inside it instead. This has yet to be play-tested, therefore do not use it in production and only testing. Added: FeaturesGUI - Right-click bag in the inventory to open a gui where you can toggle features. Requested by @Cr4zyGeek https://github.com/Valorless/HavenBags/issues/50 Added: Auto-crafting! Automatically run all items in the bag through 3x3 crafting, placing the result and any unused ingredients into the chest. Added: Vault Economy integration, moved away from EssentialsX-only to allow additional economy plugins for the Insurance feature. Added: Bag contents can now stack in the lore (Enabled by default) showing "ITEM: x128" instead of "ITEM: x64 ITEM: x64"
Added: Auto-pickup filters inlang.yml # Should items stack, showing 2 stacks of 64 as x128, instead of 2 x64. bag-content-stack: truefilters.ymlnow support ItemTags https://minecraft.wiki/w/Item_tag_(Java_Edition)
Added: In addition, you can create custom tags within filters.yml to use in filters. Added: Oraxen support, used the same way as Nexo support, but oraxen:id not nexo:id. Changed: Certain dependencies are no longer shaded, lowering the size of the plugin file. Changed: Config validation has been tweaked. Changed: Bags can no longer be upgraded by players that don't own the bag, or have the bypass permission. Changed:filters.yml filters: armor: displayname: '&eᴀʀᴍᴏʀ' gui: show: true icon: IRON_CHESTPLATE items: - '#minecraft:head_armor' - '#minecraft:chest_armor' - '#minecraft:leg_armor' - '#minecraft:foot_armor'/havenbags rawinfowill no longer return the raw ItemMeta component, but instead the Bag's datamodel, containing only information about the bag, and not the item itself. Changed: Refilling: If your hand is empty the item will be put directly in your hand, rather than your first empty slot. Fixed: Players can no longer upgrade bags to a size they don't themselves have access to open. Fixed: A bug causing all bags to auto-save, regardless whether they were changed or not. Fixed: Eco now correctly initializes. API Changes: - Datamodel "Data" has been renamed to "Bag" for clarity and representation. - Fixed a minor mistake in the API when creating Ethereal bags. Internal: - Refactored all methods to start with small letters as opposed to large ones. I.e. plugin.ExampleMethod() -> plugin.exampleMethod(); - Renamed BagData -> Database, to avoid confusion with the Bag datamodel. - Renamed datamodel Data -> Bag, to better represent it and clarity. Commit: https://github.com/Valorless/HavenBags/commit/ed33cc84919… Pull: https://github.com/Valorless/HavenBags/pull/511.42.1May 11, 2026 Added: config.yml's bag.material now supports Nexo items. (Nexo 1.23+) Added: custom-bags.yml's bag materals support the same.
Changed: Bag items are now created mainly through a single method. Changed: BagCache's converter now logs to debug instead of info. Fixed: Refactored how bags are chosen to be saved. fixes this error, and saves bags correctly.yml bag: # Item material if the bag-type is 'ITEM' # Supports Nexo by doing 'nexo:id'. material: nexo:cool_item
Fixed: An error thrown when applying a skin. Fixed: An issue where null tooltip styles would throw errors when formatting namespaced keys for saving/loading. Fixed: AdminGUI should no longer throw HTTP 429 errors, when loading heads of online players. API Changes: Added:yml java.util.ConcurrentModificationException at java.base/java.util.HashMap$HashIterator.nextNode(HashMap.java:1606) ~[?:?] at java.base/java.util.HashMap$EntryIterator.next(HashMap.java:1639) ~[?:?] at java.base/java.util.HashMap$EntryIterator.next(HashMap.java:1637) ~[?:?] at HavenBags-1.42.1.2819-1778107749779.jar//valorless.havenbags.BagData.SaveData(BagData.java:524) ~[?:?]ItemStack<-createBagItem(boolean binding, int size, @Nullable Player player)Creates a new bag item directly from HavenBags' item factory, the same way/bag createdoes it. Added:ItemStack<-createCustomBagItem(String key, @Nullable Player player)Added:List<String><-listCustomBags()Added:boolean<-customBagRequiresPlayer(String key)Commit: [712d5ee](https://github.com/Valorless/HavenBags/commit/712d5ee6286… Pull: [#49](https://github.com/Valorless/HavenBags/pull/49)1.42.0.2806v1.42.0.2806 New Features & FixesMay 1, 2026 Important: HavenBags now requires ValorlessUtils v1.19.0.374 in order to work. Added: Crash detection to attempt to save bag data, in the case of a soft crash. Hard crashes may prevent this from running. Added: Hidden command/havenbags debug resetTooltipStylewhich resets ALL tooltip styles throughout the database. Only OPs can use this for this reason. Added: Hardcore Bags. If a bag is destroyed or despawned (like by fire or lava), the corresponding data is deleted from the database, erasing the bag from existence entirely.
Added: Bag Insurance. If enabled, players now have to pay a fee when restoring/deleting bags from the PlayerGUI. (Though EssentialsX)# Should bags' data get deleted if the bag item is destroyed? hardcore-bags: enabled: false unbound: true bound: true unused: true used: true
Added: The ability to apply custom data to all bags when they're updated, depending on their size. This can be used to add interactability with other plugins. Note that the data is not removed if the entries are.# Allow players to make "Insurance Claims" in order to # restore/delete their bags from the PlayerGUI. # Requires 'player-gui' to be enabled. insurance: enabled: false # The default claim cost. default-cost: 1000 # Should the cost be increased by adding a static value or percentage? # Valid types: ADD, PERCENT type: PERCENT # Cost increase, by either a static value or percentage. # 2000 = Increase by 2000 each restore. # 0.20 = Increase by 20% each restore. i.e 1200 if default is 1000. Next would be 1440, then 1728, etc. increment-value: 0.20 # How often can players make claims? cooldown-seconds: 300 # 300s = 5m # How often should the cost increase reset? # Set -1 for never reset-time-seconds: 3600 # 3600s = 1h # Lore added to bags in the gui showing the cost, max 1 line. # Placeholders: %cost% - The cost of the claim. lore: "&fCost: &a$%cost%"
Added: Bag health under the Bag Protection configuration, to protect bags while allowing them to break after a certain threshold.# Automatically write extra "tags" onto bag items when they update. # You can set different tags per bag size (9, 18, etc.), stored either as NBT or plugin-namespaced PDC keys. custom-data: # Should we apply custom data entries onto bags when they update? enabled: false '9': # Affect 9 slot bags, can hold multiple entries. example: # Storage backend for a configured data entry, either NBT or PDC. type: NBT # The key for this entry. key: 'coolKey' # The value for this entry. # Supports: String/Integer/Double/Boolean/Float/UUID value: 44 example2: # Storage backend for this entry, either NBT or PDC. type: PDC # Plugin name used for PDC namespacing. plugin: 'HavenBags' # The key for this entry. key: 'coolKey2' # The value for this entry. value: 'awesomeValue' # PersistentDataType - PDC only # Supports: String/Integer/Double/Boolean/Float/UUID pdc-type: STRING '18': # Affect 18 slot bags, can hold multiple entries. example: # Storage backend for this entry, either NBT or PDC. type: PDC # Plugin name used for PDC namespacing. plugin: 'HavenBags' # The key for this entry. key: 'coolKey' # The value for this entry. value: 44 # PersistentDataType - PDC only # Supports: String/Integer/Double/Boolean/Float/UUID pdc-type: INTEGER
Changed: Bag Protection has been split up and given new config values, you can now lock specific states.# Should bags be protected from being destroyed by things such as Fire, Lava, Cactus, and other things? protect-bags: ... bag-health: # Should protected bags have a certain amount of health, before they break? enabled: false # Delay between taking damage. damage-delay: 5 # 5 second delay # Health based on the amount of slots health: # Default health if the desired slot isnt on the list. default: 3 '9': 3 '18': 4 '27': 5 '36': 6 '45': 8 '54': 10
Changed: Updated the command# Should bags be protected from being destroyed by things such as Fire, Lava, Cactus, and other things? Bag Protection: enabled: true unbound: true bound: true unused: true used: true/bag infoto now include additional information, no longer includes lore (as it was flooding,) and now lets you copy UUIDs by clicking on the message. Fixed: The max-bags feature should now correctly respect permissions. Fixed: An ItemModel related issue on versions below 1.21.4. Fixed: A typo in the API methodcreateUnusedBagItem(int, boolean). Fixed: Broken tooltip background on versions above 1.21.3. Fixed: Bag restoration should now restore CustomModelData. Fixed: An issue where SQLite and MySQL databases wouldn't load certain data correctly. Blacklist and TooltipStyle should now load as intended. API changes: Added: The following methods to the API: -boolean<-isBagEmpty(ItemStack)-boolean<-isBagEmpty(UUID)-boolean<-isBagEmpty(String)-boolean<-isBagHealthEnabled()-int<-getBagDamage(ItemStack)-void->setBagDamage(ItemStack, int)-void->addBagDamage(ItemStack, int)-int<-getBagCurrentHealth(ItemStack)-int<-getBagMaxHealth(ItemStack)-boolean<-closeBag(String)-BagState<-getBagState(ItemStack)Changed: BagDeletionEvent is now called when the bag is deleted from the database, rather than from the GUI. Commit: [105df17](https://github.com/Valorless/HavenBags/commit/105df17ad93… Pull: [#45](https://github.com/Valorless/HavenBags/pull/45)1.41.2.2754v1.41.0-2.2733 Performance UpdatesMar 2, 2026 v1.41.2.2754 Mod Update & Tooltip Hotfix
Changed: HavenBagsPreview data is now being stored in PDC alongside NBT, in order to still support older versions. Fixed: An issue where hot-swapping the result in the Upgrade GUI, would overwrite the existing item. Fixed: An issue where bag's tooltip styles on versions >= 1.21.3 where being set to minecraft:null. Any bag updated with this will have it's style reset. Commit: [eeb20f59](https://github.com/Valorless/HavenBags/commit/eeb20f50c59…<br> Pull: https://github.com/Valorless/HavenBags/pull/32v1.41.1.2738 Skin Hotfixes
Fixed: Skins broken by update 1.41.0 should now correctly work again. Fixed: An issue where unopened bags couldn't be skinned. Commit: [76e61f4](https://github.com/Valorless/HavenBags/commit/76e61f4c702…<br> Pull: https://github.com/Valorless/HavenBags/pull/31v1.41.0.2733 Performance Updates
Important: Changed native version to 1.21.11. Important: Refactored how data is stored internally, increasing overall performance. Added: Additional MySQL configs:
Added: MySQL no longer saves all bags at once, but instead in chunks of 200. Changed: Upgraded PvPManager dependency from v3.17.8 to v4.0.4. Changed: Updated the way bags are stored in the cache, optimizing performance overall. Changed: Increased performance when updating the bag items. Changed: ValorlessUtils.SFX to HavenBags.utils.SFX and HavenBags.datamodels.Sound, which should solve SFX issues on certain versions. Fixed: Increased performance in Lang by not fetching offline players when null. Fixed: An issue causing skin tokens to not correctly parse the %skin% placeholder. Fixed: An issue where giving bags would still took 1-6 sizes instead of the new 9, 18, 27, 36 ,45 ,54. Changed TabCompletion to reflect this. Commit: [6e37f81](https://github.com/Valorless/HavenBags/commit/6e37f811247…<br> Pull: https://github.com/Valorless/HavenBags/pull/26mysql: ... connect_timeout: 30 # Seconds socket_timeout: 60 # Seconds max_chunk_size: 2001.5.2.377v1.5.2.377Jul 11, 2023
Similar projects
Plugin →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Simple Voice Chat
A working voice chat in Minecraft!
76.8MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Plasmo Voice
A proximity voice chat mod with audio positioning and lots of features
4.1MSueta
ItemSwapper
Inventory update concept for hotswapping items.
2.1MSueta