Oraxen
Search…
Furniture Mechanic
How to add non cubic blocs to the game

Furniture Mechanic

How does it work?

Oraxen uses invisible item frames to add non cubic blocks to the game. This avoids some lags causes by armorstands You can then activate a transparent block (barrier) on top to act as a hitbox.
Example furniture

Global configuration

This global configuration has to be used in order to define the hierarchy of between your multiple tool_types. You can put the normal types + new types you just invented.
furniture:
tool_types:
- WOODEN
- STONE
- IRON
- GOLDEN
- DIAMOND
- NETHERITE
enabled: true

Example configuration per item

table:
displayname: "<gray>Table"
material: DIAMOND
Pack:
generate_model: false
model: default/table
Mechanics:
furniture:
place_sound: "block.wood.place"
break_sound: "block.wood.break"
hit_sound: "block.wood.hit"
step_sound: "block.wood.step"
fall_sound: "block.wood.fall"
rotation: NONE
facing: UP
barrier: true
drop: # useless if you are not using a barrier
silktouch: false
loots:
- { oraxen_item: table, probability: 1.0 }

Custom Sounds

Furniture, like custom blocks, can have custom sounds. Currently the options are place/break/hit/step/fall.
Mechanics:
furniture:
place_sound: "block.wood.place"
break_sound: "block.wood.break"
hit_sound: "block.wood.hit"
step_sound: "block.wood.step"
fall_sound: "block.wood.fall"

Barriers

Barriers are invisible blocks placed with your furniture so that it has a realistic hitbox. You can place a single one or a list relative to the position of the player who places them.

Single barrier:

barrier: true

Multiple barriers:

barriers:
- { x: 0, y: 0, z: 0 }
- { x: 0, y: 0, z: 1 }
- { x: 0, y: 0, z: 2 }
- { x: 1, y: 0, z: 0 }
- { x: 1, y: 0, z: 1 }
- { x: 1, y: 0, z: 2 }

Seats

Seats are only available when barriers are enabled. Currently it will also spawn a seat for every barrier, if there is multiple ones. You can alter the height-offset of seats with the following configuration:
seat: { height: 0.5 }
You can also adjust the rotation if desired by adding a yaw section. Keep in mind it is recommended to leave this off
seat: { height: -0.5, yaw: 90 }

Limited placing

You can customize what blocks a custom block/furniture can be placed on with limited_placing subsection. The type specifies if it should only be allowed on or denied on specific blocks. If type is ALLOW the block can only be placed on the given blocks. If the type is DENY can be placed on all blocks not matching the given blocks.
amethyst_ore:
Mechanics:
furniture:
limited_placing:
type: ALLOW
block_types:
- GRASS_BLOCK
- DIRT
block_tags:
- base_stone_nether
oraxen_blocks:
- chair
- ruby_ore
The block_tags can be found at this page. Useful if you want to allow/deny a group of blocks. The block_types are materials. Useful if you want to allow/deny a specific list block. The oraxen_blocks are blocks defined in the oraxen configuration. This allows all custom blocks and furniture in here, but furniture requires a barrier-hitbox.

Storage

This is a sub-mechanic for furniture and noteblock mechanics, that let you make a custom storage container. Essentially a chest, closet or whatever you might want.
There's a few different types: STORAGE, PERSONAL, ENDERCHEST & DISPOSAL. STORAGE is similar to a normal chest. Anyone can open it and view the content of it. PERSONAL is essentially a custom enderchest, letting you edit the row-count and so on. ENDERCHEST is literally just the enderchest inventory, but letting you make a custom block/furniture to access it. DISPOSAL is a custom trashcan, letting you throw items in it, and they will be deleted when closed.\
Mechanics:
furniture:
barrier: true
storage:
type: STORAGE
rows: 5 # Default: 6
title: "<red>My Storage" # Default: "Storage"
open_sound: entity.shulker.open # Default: entity.chest.open
close_sound: entity.shulker.close # Default: entity.chest.close
This mechanic requires a barrier(s) if used with furniture!

Light

You can configure your furniture so it produces light. To do so you need to install this plugin: LightAPI.
This allows you to use a new option: light. This option corresponds to light intensity and must be between 1 and 15.
Mechanics:
furniture:
facing: UP
barrier: true
light: 5
drop: # useless if you are not using a barrier
silktouch: false
loots:
- { oraxen_item: table, probability: 1.0 }

Video Tutorial

Copy link
On this page
Furniture Mechanic
How does it work?
Global configuration
Example configuration per item
Custom Sounds
Barriers
Seats
Storage
Light