Furnitury 4.0 Developer Docs
Official developer documentation

Build around Furnitury,
not against it.

A compact integration guide for modpack authors, datapack creators and addon developers. Add Furniture Workbench recipes, register compatible materials and extend the tool system without Java patches.

1.20.1 Forge baseline
JSON Datapack recipes
Tags Cross-mod compatibility
01
Quick Start

Your first Furniture Workbench datapack

No addon mod required.

Furniture Workbench recipes are loaded through Minecraft's recipe manager, so a normal datapack can add or replace them.

Folder structure

Create your datapack

my_furnitury_pack/
├── pack.mcmeta
└── data/
    └── mypack/
        └── recipes/
            └── custom_chair.json
Minecraft 1.20.1

pack.mcmeta

{
  "pack": {
    "pack_format": 15,
    "description": "My Furnitury integration"
  }
}
Minimal example

Custom chair recipe

{
  "type": "furnitury:furniture_workbench",
  "pattern": [
    { "item": "minecraft:oak_planks" },
    { "item": "minecraft:air" },
    { "item": "minecraft:oak_planks" },
    { "item": "minecraft:oak_planks" },
    { "item": "minecraft:oak_planks" },
    { "item": "minecraft:oak_planks" },
    { "item": "minecraft:stick" },
    { "item": "minecraft:air" },
    { "item": "minecraft:stick" }
  ],
  "input": {
    "tag": "furnitury:furniture_workbench/additional_materials/nails"
  },
  "tool": {
    "tag": "furnitury:furniture_workbench/tools/hammers"
  },
  "result": {
    "item": "yourmod:oak_chair",
    "count": 1
  }
}
02
Recipe API

Furniture Workbench recipe format

Field Type Required Behavior
type Resource Location Yes Must be furnitury:furniture_workbench.
pattern 9 Ingredients Yes Exact 3×3 layout. Supports item and tag ingredients.
input Ingredient Yes Additional material. Consumed once per craft.
tool Ingredient Recommended Tool slot requirement. Damageable tools lose 1 durability per craft.
result ItemStack Yes Craft output and optional result count.

3×3 Pattern

Slots 0–8

The array represents the workbench grid from left to right, top to bottom. Pattern ingredients can use a concrete item or an item tag. Official Furnitury recipes currently use minecraft:air for empty positions.

0
1
2
3
4
5
6
7
8
Specific item
{ "item": "minecraft:oak_planks" }
Compatible tag
{ "tag": "minecraft:planks" }

Additional Material

Slot 9

input is a normal Minecraft Ingredient. It can therefore point to one item or an entire tag. The matching stack is consumed by one item whenever the player crafts.

"input": {
  "tag": "furnitury:furniture_workbench/additional_materials/nails"
}

Tool Slot

Slot 10

tool is also an Ingredient. Official recipes use the hammer tag instead of hard-coding a single item. If the selected tool is damageable, crafting removes 1 durability. The tool itself is not consumed until it breaks.

"tool": {
  "tag": "furnitury:furniture_workbench/tools/hammers"
}
i
Compatibility by design.

Another mod can add its own hammer to Furnitury's hammer tag and become compatible without changing the recipe.

03
Item Tags

Official compatibility tags

Use these tags instead of hard-coding Furnitury items whenever you want your integration to remain compatible with datapacks and third-party addons.

Additional Materials #furnitury:furniture_workbench/additional_materials
.../nailsfurnitury:nail
.../stringsminecraft:string
.../dirtminecraft:dirt
.../stuffingfurnitury:stuffing
.../light_bulbsfurnitury:light_bulb
.../torchesminecraft:torch
.../sandminecraft:sand
.../circuitsfurnitury:circuit
.../wooden_block_basesfurnitury:wooden_block_base
Workbench Tools #furnitury:furniture_workbench/tools
.../hammersfurnitury:hammer
The aggregate tools tag controls which items are accepted by the Tool Slot.
04
Datapacks

Extend Furnitury without code

1

Add a compatible hammer

Create this file in your datapack:

data/furnitury/tags/items/
└── furniture_workbench/
    └── tools/
        └── hammers.json
2

Append your item

{
  "replace": false,
  "values": [
    "yourmod:steel_hammer"
  ]
}
3

Use the shared tag in recipes

"tool": {
  "tag": "furnitury:furniture_workbench/tools/hammers"
}
!
Use "replace": false.

Replacing Furnitury's tag would remove the built-in values and can break official recipes or other integrations.

05
Addon Authors

Use the Workbench as a shared furniture crafting layer

A

Craft your own blocks

A Furniture Workbench recipe can output an item from another namespace. The result does not need to belong to Furnitury.

B

Accept your own tools

Add compatible tools to Furnitury tags from your own datapack or mod resources.

C

Share materials

Add equivalent nails, stuffing or other materials to the matching compatibility tag instead of duplicating recipes.

D

JEI-friendly Ingredients

Tag-based Ingredients can expose multiple valid alternatives to recipe viewers instead of forcing one hard-coded item.

06
Examples

Common integration patterns

{
  "type": "furnitury:furniture_workbench",
  "pattern": [
    { "item": "furnitury:bamboo_plank" },
    { "item": "furnitury:bamboo_large_plank" },
    { "item": "furnitury:bamboo_plank" },
    { "item": "minecraft:bamboo" },
    { "item": "minecraft:air" },
    { "item": "minecraft:bamboo" },
    { "item": "minecraft:bamboo" },
    { "item": "minecraft:air" },
    { "item": "minecraft:bamboo" }
  ],
  "input": {
    "tag": "furnitury:furniture_workbench/additional_materials/nails"
  },
  "tool": {
    "tag": "furnitury:furniture_workbench/tools/hammers"
  },
  "result": {
    "item": "furnitury:bamboo_table",
    "count": 1
  }
}
{
  "type": "furnitury:furniture_workbench",
  "pattern": [
    { "item": "minecraft:air" },
    { "item": "minecraft:iron_nugget" },
    { "item": "minecraft:air" },
    { "item": "minecraft:white_wool" },
    { "item": "minecraft:white_wool" },
    { "item": "minecraft:white_wool" },
    { "item": "minecraft:air" },
    { "item": "minecraft:iron_ingot" },
    { "item": "minecraft:air" }
  ],
  "input": {
    "tag": "furnitury:furniture_workbench/additional_materials/torches"
  },
  "tool": {
    "tag": "furnitury:furniture_workbench/tools/hammers"
  },
  "result": {
    "item": "yourmod:white_lamp",
    "count": 1
  }
}
{
  "type": "furnitury:furniture_workbench",
  "pattern": [
    { "item": "minecraft:air" },
    { "item": "minecraft:bamboo" },
    { "item": "minecraft:air" },
    { "item": "minecraft:bricks" },
    { "item": "minecraft:bamboo" },
    { "item": "minecraft:bricks" },
    { "item": "minecraft:bricks" },
    { "item": "minecraft:bricks" },
    { "item": "minecraft:bricks" }
  ],
  "input": {
    "tag": "furnitury:furniture_workbench/additional_materials/dirt"
  },
  "tool": {
    "tag": "furnitury:furniture_workbench/tools/hammers"
  },
  "result": {
    "item": "yourmod:bamboo_planter",
    "count": 1
  }
}
{
  "type": "furnitury:furniture_workbench",
  "pattern": [
    { "tag": "minecraft:planks" },
    { "item": "minecraft:air" },
    { "tag": "minecraft:planks" },
    { "tag": "minecraft:planks" },
    { "tag": "minecraft:planks" },
    { "tag": "minecraft:planks" },
    { "item": "minecraft:stick" },
    { "item": "minecraft:air" },
    { "item": "minecraft:stick" }
  ],
  "input": {
    "tag": "furnitury:furniture_workbench/additional_materials/nails"
  },
  "tool": {
    "tag": "furnitury:furniture_workbench/tools/hammers"
  },
  "result": {
    "item": "yourmod:custom_chair",
    "count": 1
  }
}
07
Best Practices

Integration rules

01
Prefer Furnitury tags for additional materials and tools.

This keeps recipes compatible with third-party equivalents.

02
Do not replace shared tags unless you intentionally own the entire compatibility layer.

For ordinary integrations, always use "replace": false.

03
Keep the pattern semantically meaningful.

The Furniture Workbench intentionally uses an exact 3×3 layout instead of shapeless material lists.

04
Use your own namespace for your recipes and outputs.

Only target the furnitury namespace when extending Furnitury's public tags.

05
Reload and verify with JEI after changing datapacks.

Check the workbench output, accepted material variants and tool alternatives before shipping a modpack.

Furnitury ecosystem

Make furniture mods work together.

The Furniture Workbench API is designed to give modpacks a consistent crafting experience while letting addon authors keep ownership of their own blocks and materials.

Build an integration
Copied to clipboard