Furniture - simple
Tutorial on how to create your first furniture
A furniture is a decorative object which can be solid, emit light, used as chair and can have other features.
Creating a simple furniture
Configuration file
The first step is to create a configuration file in your namespace folder.
In this example I called it furniture_example.yml
.
As you can see I created the item with some special properties.
behaviours
attribute has a special sub-attribute called furniture
, this attribute tells ItemsAdder that this item is a placeable furniture model.
Let's add some more settings to it:
I added some properties, in this case I specified where the furniture can be placed (only on the floor
), the hitbox
size and place
/break
sounds.
Model file
Now open BlockBench and create a "Java Block/Item".

Now create your model, in this example I'm modelling an ugly minimal modern lamp.

Important: make sure the north is opposite of where you want the model to face.
Or add the property to the YML configuration opposite_direction: true
Edit how the model is shown on player hand:


Configure how the model is shown ingame
Using armor_stand
armor_stand
You have to select the head icon and then small armorstand:

Then you have to shift your model down until it matches the armorstand base:

Using item_display
item_display
You have to select the Image icon and then set the Z-offset to -16
.
This will display the model slighly of the block the Item Frame is attached to, but will be seamless when an invisible Item Frame is used. This is because of how items in invisible Item Frames are slightly lower than usual.
Using item_frame
item_frame
Same thing of item_display
.
Export the model
Now let's save the model file into the correct folder, in this case I set this property in the yml configuration file: model_path: lamp
, so you have to save the .json file inside this path: contents/myitems/models/lamp.json
.
To achieve this, click on "File" followed by "Export Model" and finally "Export Block/Item Model". In the new window, head over to the path you want to save your model under, give it the right name and confirm the changes.
Saving changes
Now run /iazip
(and follow the hosting tutorial if needed).
To obtain the item use this command: /iaget myitems:lamp
.


Chair
To create a chair you just have to follow the furniture creation tutorial and add a simple attribute to the furniture to make it "sittable".
Just add the furniture_sit
behaviour and specify the sit_height
.
Furniture entity types
item_display
item_display
This type of furniture entity is useful for any type of furniture you want to create.

Special properties
item_display
allows you to do some special adjustments to your furniture model using the display_transformation
property.
You can resize it, rotate it and move it freely.
This feature uses the native item_display
feature of Minecraft, you can read more here and online.
You can also use this tool to preview your changes.
Example
armor_stand
armor_stand
This type of furniture entity is useful when you want to create chairs, plants, columns, lamps and similar environment decorations which don't need to rotate based on the surface on which you place them.

item_frame
item_frame
This type of furniture entity is useful when you want to make the furniture rotate based on the surface on which you place it.
For example if you have a decorative lamp you can make it placeable on walls, ceiling and ground and and make it oriented automatically based on the surface inclination.

Hitbox
You can make a furniture solid adding the "solid" attribute and specifying a hitbox (if you want > 1x1x1)

Hitbox has wrong location
Sometimes you need to also specify an "offset" to fix the hitbox location. This can happen if your furniture is 2x1x1 for example.

Correct location
I had to set a width offset
of 0.5
.
You can also use negative values if needed.
Preview the hitbox


Hitboxes limitations
item_frame
limitations (doesn't affect armor_stand
)
Furnitures that use entity
item_frame
only support hitboxes with width
and length
of the same value.
Example: width: 2
, length: 2
, height: 1
.
If you want to have different width
and length
use entity
item_display
or armor_stand
.
Limitations
Limitations of itemframes furnitures
solid itemframe furnitures are possible only on Server version >= 1.16 (client doesn't matter).
invisible itemframe furnitures are possible only on Server and Client version >= 1.16. If a user connects with viaversion using an old mc version they will see the itemframe.
Limitations of all furnitures
non solid furnitures can't receive interact events, they can only be removed using mouse left click but cannot be interacted with (only solid furnitures can get interact events)
max size of the hitbox is 3x3x3 for performance reasons
Last updated
Was this helpful?