Sueta

HavenBags

1.43.1

Create shulker-like bags of varying sizes bound to a player, or accessible by anyone.

·Plugin
  1. 1.43.1latestSep 15, 2026
    Changed: Upgrading bags now accept nexo and oraxen items.
    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:84654
    
    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.
    61 downloads
  2. 1.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"
    lang.yml
    
    # Should items stack, showing 2 stacks of 64 as x128, instead of 2 x64.
    bag-content-stack: true
    Added: Auto-pickup filters in filters.yml now support ItemTags https://minecraft.wiki/w/Item_tag_(Java_Edition)
    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'
    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: /havenbags rawinfo will 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.
    129 downloads
  3. 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"
    lang.yml
    
    # Should items stack, showing 2 stacks of 64 as x128, instead of 2 x64.
    bag-content-stack: true
    Added: Auto-pickup filters in filters.yml now support ItemTags https://minecraft.wiki/w/Item_tag_(Java_Edition)
    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'
    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: /havenbags rawinfo will 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/51
    10 downloads
  4. 1.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.
    yml
    bag:
     # Item material if the bag-type is 'ITEM'
     # Supports Nexo by doing 'nexo:id'.
     material: nexo:cool_item
    
    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
    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) ~[?:?]
    
    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: ItemStack <- createBagItem(boolean binding, int size, @Nullable Player player) Creates a new bag item directly from HavenBags' item factory, the same way /bag create does 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)
    159 downloads
  5. 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 resetTooltipStyle which 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.
    # Should bags' data get deleted if the bag item is destroyed?
    hardcore-bags:
     enabled: false
     unbound: true
     bound: true
     unused: true
     used: true
    Added: Bag Insurance. If enabled, players now have to pay a fee when restoring/deleting bags from the PlayerGUI. (Though EssentialsX)
    # 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: 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.
    # 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
    Added: Bag health under the Bag Protection configuration, to protect bags while allowing them to break after a certain threshold.
    # 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: 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?
    Bag Protection:
     enabled: true
     unbound: true
     bound: true
     unused: true
     used: true
    Changed: Updated the command /bag info to 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 method createUnusedBagItem(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)
    33 downloads
  6. 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/32

    v1.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/31

    v1.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:
    mysql:
     ...
     connect_timeout: 30 # Seconds
     socket_timeout: 60 # Seconds
     max_chunk_size: 200
    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/26
    122 downloads
  7. 1.5.2.377v1.5.2.377Jul 11, 2023
    427 downloads

Similar projects

Plugin →