Storage
Turn custom blocks or furniture into storage containers.
Turns any custom block or furniture into a storage container. Three modes are available.
| Type | Behaviour |
|---|---|
STORAGE | Shared container - all players see the same inventory |
SHULKER | Contents travel inside the item when broken and are restored on re-place |
DISPOSAL | Trash can - contents are silently deleted when the GUI is closed |
Configuration
behaviours:
storage:
type: STORAGE
rows: 3 # optional, default: 3
inventory_type: furnace # optional, replaces rows when set
title: "<gold>Community Chest</gold>" # optional, defaults to the block/furniture's name
open_variant: my_open_storage # optional
open_sound: # optional
name: entity.villager.celebrate # or a custom sound
volume: 1.0 # optional, default: 1.0
pitch: 1.0 # optional, default: 1.0
source: master # optional, default: master
close_sound: # optional
name: entity.villager.ambient # or a custom sound
volume: 1.0 # optional, default: 1.0
pitch: 1.0 # optional, default: 1.0
source: master # optional, default: masterbehaviours:
storage:
type: SHULKER
rows: 3 # optional, default: 3
inventory_type: furnace # optional, replaces rows when set
title: "<dark_purple>Portable Storage</dark_purple>" # optional, defaults to the block/furniture's name
open_variant: my_open_storage # optional
open_sound: # optional
name: entity.villager.celebrate # or a custom sound
volume: 1.0 # optional, default: 1.0
pitch: 1.0 # optional, default: 1.0
source: master # optional, default: master
close_sound: # optional
name: entity.villager.ambient # or a custom sound
volume: 1.0 # optional, default: 1.0
pitch: 1.0 # optional, default: 1.0
source: master # optional, default: masterbehaviours:
storage:
type: DISPOSAL
rows: 1 # optional, default: 3
title: "<red>Trash Can</red>" # optional, defaults to the block/furniture's name
open_variant: my_open_storage # optional
open_sound: # optional
name: entity.villager.celebrate # or a custom sound
volume: 1.0 # optional, default: 1.0
pitch: 1.0 # optional, default: 1.0
source: master # optional, default: master
close_sound: # optional
name: entity.villager.ambient # or a custom sound
volume: 1.0 # optional, default: 1.0
pitch: 1.0 # optional, default: 1.0
source: master # optional, default: masterFor name, use a value from Sounds.json or a custom sound with namespace:value.
Supports MiniMessage formatting, PlaceholderAPI placeholders, and ItemsAdder font images.
Inventory type
By default, storage opens a chest-style inventory whose height is controlled by rows (1-6, default: 3).
Set inventory_type to open a typed inventory instead - rows is ignored when this is set.
| Value | GUI shape |
|---|---|
furnace | Furnace (input + fuel + output) |
blast_furnace | Blast furnace |
smoker | Smoker |
brewing_stand | Brewing stand (3 bottles + 2 slots) |
dispenser | Dispenser (3×3) |
dropper | Dropper (3×3) |
hopper | Hopper (1×5) |
behaviours:
storage:
type: STORAGE
inventory_type: furnace
title: "<gray>Custom Furnace</gray>"Item restrictions
Since 1.0.14, storage can restrict which items players may insert. Use allowed_items to allow only matching items:
behaviours:
storage:
type: STORAGE
allowed_items:
- minecraft:book
- "#minecraft:logs"
- "#my_pack:building_materials"Or use denied_items to reject matching items while allowing everything else:
behaviours:
storage:
type: STORAGE
denied_items:
- minecraft:tnt
- "#my_pack:portable_storage"Entries may be vanilla or ItemsAdder item IDs, Minecraft item tags, or IAA custom item tags.
allowed_items and denied_items are mutually exclusive. Configuring both rejects the storage behaviour.
An empty allowed_items list allows nothing. An empty denied_items list denies nothing. Omitting both keeps the
storage unrestricted. Restrictions apply only to new player insertions; previously saved contents are not removed.
Open variant
You can optionally set open_variant to make the custom block, furniture, or complex furniture change into another variant while at least one player has the storage open.
Examples:
- chests that visually open
- barrels with an opened model
- containers with a different active state
behaviours:
storage:
type: STORAGE
open_variant: my_open_storageopen_variant should be the ID of another custom block, furniture, or complex furniture, using either:
idnamespace:id
See IDs for ID syntax.
When the inventory is closed by all players, the storage returns to its normal variant.
Complex-furniture open_variant values are supported in ItemsAdderAdditions 1.0.12 and newer. Block storage holders
must use a block variant; furniture and complex-furniture holders can use furniture, complex furniture, or an item
display model.
Content variants
Since 1.0.13, a storage holder can change its closed appearance based on how full it is.
behaviours:
storage:
type: STORAGE
empty_variant: my_empty_storage # optional; empty inventory
filled_variant: my_filled_storage # optional; any non-empty inventory
half_variant: my_half_storage # optional; partially filled inventory
full_variant: my_full_storage # optional; every slot filled to its stack limitfilled_variant is the simple two-state option: it is used for every non-empty inventory unless a more specific
half_variant or full_variant is configured. Missing variants fall back to filled_variant and then to the holder's
original appearance.
open_variant takes priority while the inventory has viewers. The appropriate content variant is restored after the
last viewer closes it. IDs and block/furniture compatibility follow the same rules as open_variant, and directional
block rotation is preserved when variants change.