Skip to content

Furniture

Furniture is a placeable item rendered by a display entity rather than a block, so it can be any shape and any size without consuming a block state.

Defining furniture

info:
  namespace: mypack

items:
  oak_chair:
    display_name: "<#c9a227>Oak Chair"
    resource:
      material: PAPER
      model_path: "mypack:furniture/oak_chair"
    behaviours:
      furniture:
        solid: true
      furniture_sit:
        sit_height: 0.5

The ItemsAdder Mechanics.furniture.* spelling is read too:

    Mechanics:
      furniture:
        solid: true
        barrier: true
        seat:
          height: 0.5
Key Effect
solid / barrier Gives the furniture a collision box players cannot walk through
seat.height / sit_height Makes it sittable; the number is where the player sits, in blocks

How it is placed

Right-click a block face with the item. Ember Forge spawns:

  • an ItemDisplay carrying the model, centred on the block
  • an Interaction entity providing the clickable and punchable hitbox

Both are tagged so they survive restarts and are removed together.

Sitting

If a seat height is set, right-clicking seats the player on an invisible armour stand at that height. Standing up, disconnecting or the furniture being broken all release the seat — a seat entity that outlives its furniture is the usual cause of "invisible thing blocking my base".

Breaking

Punch it. The furniture drops its own item back, not the base material.

Current limits

Being honest about what is not implemented yet:

  • No rotation on placement — furniture faces a fixed direction
  • No multi-block footprints
  • No light emission
  • No placement preview

These are on the roadmap.