Nexo
  • 🏠Home
  • 📜Main Changelog
  • ❓FAQ
  • General Usage
    • ⌨️Commands
    • 🧑‍🍳Recipes
  • Migrate
    • ☄️Oraxen → Nexo
    • 📦ItemsAdder → Nexo
  • Configuration
    • ⚙️Plugin settings
    • ResourcePack
    • ⚒️Items
      • Special Item Appearance
    • ⛑️Custom Armors
      • 🪽Custom Elytras (1.21.2+)
      • Component Based (1.21.2+)
      • Trims Based (1.20-1.21.1)
    • 🌀Glyphs
      • 🎞️Animated Glyphs
      • 🖼️Multi-Bitmap Glyph
      • 🔗Reference Glyph
    • 🎵Sounds
  • Mechanics
    • 🪑Furniture Mechanic
      • 🎯Hitbox
      • 🖇️Connectable Furniture
      • 🪑Seat Mechanic
      • 🛏️Bed Mechanic
      • 💡Light Mechanic
      • 🧑‍🌾Farming Mechanic
    • 📦Custom Block Mechanics
      • ChorusBlock Mechanic
      • 🎶NoteBlock Mechanic
        • Stripped Log Mechanic
        • Directional Mechanic
      • 🧵StringBlock Mechanic
    • 🔱Custom Trident
    • Other Mechanics
    • ClickAction Mechanic
    • Custom Mechanic
  • ➕Addons
    • 🚪Carpentry
    • 🧩Core Shaders
      • Text Effects by Akis
  • Compatibility
    • ModelEngine - custom mobs
    • MythicMobs - custom mobs
    • MythicCrucible
    • MMOItems
  • Community Guides
    • Vendors
    • API
Powered by GitBook
On this page
  • Furniture Mechanic
  • Furniture-Properties
  • Custom Sounds
  • Rotatable
  • ModelEngine Furniture
  • Jukebox
  • Restrict Rotation
  • Limited placing
  • Storage
  • Waterloggable
  • BlockLocker
  1. Mechanics

Furniture Mechanic

How to add non cubic blocs to the game

Furniture Mechanic

myitem:
  itemname: "<gray>Table"
  material: PAPER
  Pack:
    model: default/table
  Mechanics:
    furniture:
      block_sounds:
        place_sound: block.stone.place
        break_sound: block.stone.break
        hit_sound: my.custom.hitsound     # Custom sound as defined in Nexo/sound.yml
        step_sound: my.custom.stepsound   # Requires a sound-file in the Nexo/pack-folder aswell
        fall_sound: my.custom.fallsound
      hitbox:
        barriers:
          - 0,0,0
      drop:
        silktouch: false
        # If no loots section is defined, will drop itself
        #loots:
        #  - { nexo_item: table, probability: 1.0 }

Furniture-Properties

Display Transform

myitem:
  Mechanics:
    furniture:
      properties:
        display_transform: NONE

Tracking Rotation / Billboard

The tracking_rotation-property defines whether you want the furniture to "track" the player. This is mainly for stuff like billboard and leaderboards you want the player to see, not normal furniture. Options are: FIXED - No rotation VERTICAL - Pivots around vertical axis HORIZONTAL - Pivots around horizontal axis CENTER - Pivots around center point

myitem:
  Mechanics:
    furniture:
      properties:
        tracking_rotation: FIXED

Translation

The `translation`-property lets you offset the model of your furniture. Can be useful to adjust visually without editing the model-json itself Config should look like this:

myitem:
  Mechanics:
    furniture:
      properties:
        translation: 1.0,0,2

Brightness

The brightness-property lets you override the vanilla lighting-values of the furniture. It has a block_light and sky_light property for the different types of lighting Minecraft has. Config should look like this:

myitem:
  Mechanics:
    furniture:
      properties:
        brightness:
          block_light: 15
          sky_light: 0

Scale

The scale-property is a way to scale the furniture. It has a x, y and z property for scaling on each axis. Config should look like this:

myitem:
  Mechanics:
    furniture:
      properties:
        scale: 1,1,1

view_range, shadow_radius, shadow_strength should be self-explanatory.

Custom Sounds

Furniture, like custom blocks, can have custom sounds

myitem:
  Mechanics:
    furniture:
      block_sounds:
        place_sound: block.stone.place
        break_sound: block.stone.break
        hit_sound: my.custom.hitsound     # Custom sound as defined in Nexo/sounds.yml
        step_sound: my.custom.stepsound   # Requires a sound-file in the Nexo/pack-folder aswell
        fall_sound: my.custom.fallsound

All the volume and pitch values are set to be what Minecraft uses for blocks normally. If you want to change the volume or pitch, you can do so by using the format below. Keep in mind these two formats are compatible with eachother. We recommend just use the default one, but the option is there if you want to change it.

myitem:
  Mechanics:
    furniture:
      block_sounds:
        place:
          sound: block.stone.place
          volume: 1.0
          pitch: 0.2
        break_sound: block.stone.break
        hit_sound: my.custom.hitsound     # Custom sound as defined in Nexo/sounds.yml
        step_sound: my.custom.stepsound   # Requires a sound-file in the Nexo/pack-folder aswell
        fall_sound: my.custom.fallsound

Rotatable

To make a furniture rotatable, simply add the following to your item's config.

myitem:
  Mechanics:
    furniture:
      rotatable: true

ModelEngine Furniture

To make use of a ModelEngine model as your furniture, simply add the following to your item's config:

myitem:
  Mechanics:
    furniture:
      modelengine_id: name_of_your_bbmodel_file

Jukebox

Lets this furniture accept music discs and custom music discs which will be played. You can tweak the volume and pitch of the music from the jukebox. There is also a permission field, which can be used if you only want certain players to be able to play music from the jukebox. By default permission is blank, which means anyone can play music from the jukebox.

myitem:
  Mechanics:
    furniture:
      jukebox:
        volume: 1.0
        pitch: 1.0
        permission: "nexo.jukebox.play"

Restrict Rotation

You can restrict the amount of rotation-facings a furniture has with restricted_rotation. It can be set to STRICT or VERY_STRICT, with 8 and 4 facings respectively.\

myitem:
  Mechanics:
    furniture:
      restricted_rotation: VERY_STRICT #STRICT is default if unspecified

Limited placing

You can customize what blocks a custom block/furniture can be placed on with limited_placing subsection. You can use the roof, floor and wall options to dictate where a block can be placed. By default, all are set to true. 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. There is also a radius_limitation option, which allows you to limit the amount of a certain furniture within a radius.

myitem:
  Mechanics:
    furniture:
      limited_placing:
        radius_limitation:
          radius: 20
          amount: 10
        roof: false
        floor: true
        wall: false
        type: ALLOW
        block_types:
          - GRASS_BLOCK
          - DIRT
        block_tags:
          - base_stone_nether
        nexo_blocks:
          - chair
          - ruby_ore

Storage

This is a sub-mechanic for furniture & 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.\

myitem:
  Mechanics:
    furniture:
      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

Waterloggable

You can make furniture waterloggable when placed underwater by following the below. This mainly applies to the barrier-hitboxes of your furniture

myitem:
  Mechanics:
    furniture:
      waterloggable: true

BlockLocker

myitem:
  Mechanics:
    furniture:
      blocklocker:
        can_protect: true
        protection_type: CONTAINER
PreviousSoundsNextHitbox

Last updated 1 month ago

The display_transform dictates how the model will be displayed. By default it is set to NONE, which will show it as it looks when you open the model in BlockBench. As some other plugins might use ArmorStands and add the furniture to its head, you can set this option to HEAD for the same effect. There is also: FIRSTPERSON_LEFTHAND, FIRSTPERSON_RIGHTHAND, FIXED, GROUND, GUI, THIRDPERSON_LEFTHAND, THIRDPERSON_RIGHTHAND. All of these will be displayed ingame as shown in BlockBench's Display Tab under the specified type. Look at for an example on FIXED (ItemFrame Position)

The block_tags can be found at . 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 nexo_blocks are blocks/furniture from Nexo. This allows all custom blocks and furniture in here, but furniture requires a barrier-hitbox.

You can use this to allow protection via Valid protectionTypes are CONTAINER, DOOR, ATTACHABLE

Furniture Position
this page
BlockLocker
🪑
Page cover image