Create your datapack
my_furnitury_pack/
├── pack.mcmeta
└── data/
└── mypack/
└── recipes/
└── custom_chair.json
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.
Furniture Workbench recipes are loaded through Minecraft's recipe manager, so a normal datapack can add or replace them.
my_furnitury_pack/
├── pack.mcmeta
└── data/
└── mypack/
└── recipes/
└── custom_chair.json
{
"pack": {
"pack_format": 15,
"description": "My Furnitury integration"
}
}
{
"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
}
}
| 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. |
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.
{ "item": "minecraft:oak_planks" }
{ "tag": "minecraft:planks" }
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 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"
}
Another mod can add its own hammer to Furnitury's hammer tag and become compatible without changing the recipe.
Use these tags instead of hard-coding Furnitury items whenever you want your integration to remain compatible with datapacks and third-party addons.
#furnitury:furniture_workbench/additional_materials
#furnitury:furniture_workbench/tools
tools tag controls which items are
accepted by the Tool Slot.
Create this file in your datapack:
data/furnitury/tags/items/
└── furniture_workbench/
└── tools/
└── hammers.json
{
"replace": false,
"values": [
"yourmod:steel_hammer"
]
}
"tool": {
"tag": "furnitury:furniture_workbench/tools/hammers"
}
"replace": false.
Replacing Furnitury's tag would remove the built-in values and can break official recipes or other integrations.
A Furniture Workbench recipe can output an item from another namespace. The result does not need to belong to Furnitury.
Add compatible tools to Furnitury tags from your own datapack or mod resources.
Add equivalent nails, stuffing or other materials to the matching compatibility tag instead of duplicating recipes.
Tag-based Ingredients can expose multiple valid alternatives to recipe viewers instead of forcing one hard-coded item.
{
"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
}
}
This keeps recipes compatible with third-party equivalents.
For ordinary integrations, always use
"replace": false.
The Furniture Workbench intentionally uses an exact 3×3 layout instead of shapeless material lists.
Only target the furnitury namespace when
extending Furnitury's public tags.
Check the workbench output, accepted material variants and tool alternatives before shipping a modpack.
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.