Repository navigation
Storage and Animations
Furniture can expose a persistent chest-style inventory. Its size must be a multiple of nine from 9 through 54.
An optional animation.use item selects a different render model while at least one player has that inventory open.
For furniture without an inventory, the same animation.use field acts as a persistent right-click toggle: each
interaction switches between the normal model and the use model, and the selected state survives restarts:
items:
oak_bench:
material: OAK_PLANKS
display_name: "&fOak Bench"
render:
model: voxel:furniture/basic/bench/oak_bench
properties:
furniture:
renderer: auto
rotation_step: 90
animation:
use: voxel:oak_bench_open
close_delay: 10
inventory:
size: 27
oak_bench_open:
extends: oak_bench
abstract: true
render:
model: voxel:furniture/basic/bench/oak_bench_openPlayers with voxelfurniture.inventory open the inventory by interacting with inventory furniture. All simultaneous
viewers share the same live inventory. The use model remains active until the last viewer closes it, then the
furniture returns to its current base or blockstate model. Contents persist in furniture.yml, are saved on close
and shutdown, and drop when the furniture is broken.
For furniture without an inventory, right-clicking toggles animation.use on or off instead. This state is persisted
with the furniture instance and survives restarts, content synchronization, blockstate refreshes, and dye changes.
A dye interaction takes priority, so recolouring dyeable furniture does not also toggle its use animation. The animation
model must reference a renderable VoxelCore item; an abstract item is recommended so it cannot be obtained directly.
The inventory title can be specified independently with properties.furniture.inventory.title. It supports the same legacy color codes and VoxelCore font/UI placeholders as the previous inventory title. If title is omitted, the inventory continues to use the furniture item's resolved display_name for backwards compatibility. Within a custom title, <name> and <item> are interchangeable tokens that insert the furniture item's resolved display_name with legacy and RGB color/format codes stripped. The title's own color codes and VoxelCore font/UI placeholders are preserved. This allows an inherited furniture inventory title to display the child item's name automatically. Item display names are unaffected.
For example:
items:
oak_drawer_bench:
material: OAK_PLANKS
display_name: "&fOak Drawer Bench"
render:
model: voxel:furniture/basic/bench/oak_drawer_bench
properties:
furniture:
inventory:
title: ":offset_-8::generic_27_top::offset_-170:&r<name>"
size: 27Set animation.sync_neighbors: true on persistent non-inventory animations to synchronize connected furniture.
Right-clicking one opted-in instance chooses the new target state, then applies that same state to the entire contiguous
group of horizontally face-adjacent, same-height furniture whose definitions also enable sync_neighbors and define
animation.use. This intentionally synchronizes state instead of blindly toggling every neighbor, so a mixed group
becomes consistently open or consistently closed. Diagonal, vertical, non-animated, inventory, and opted-out furniture
stop propagation.
For example, a curtain wall can use:
animation:
use: voxel:curtain_closed
sync_neighbors: trueanimation.close_delay is measured in server ticks and defaults to 10 (half a second). Opening switches to the
use model immediately. After the last viewer closes the inventory, VoxelFurniture saves its contents immediately
but keeps the use model visible for this delay before restoring the normal or blockstate model. Set it to 0 for
an immediate return.
Players can place ordinary blocks against furniture collision blocks. Furniture with an inventory consumes a normal right-click to open it, so the player must sneak while placing a block against it, matching vanilla container interaction. VoxelFurniture items remain protected from placing their carrier blocks through this bypass.
VoxelFurniture v1.0.0
Getting started
Authoring and behaviour
- Furniture Definitions
- Configuration Reference
- Interactions and Seating
- Storage and Animations
- Dyeable Furniture
- Rendering and Effects
- Highlighting
- Furniture Values
Operations and administration