COWMODSКаталог модов

Furnace NBT Recipes

Minecraft datapack library for handling custom furnace recipes with advanced NBT / component support!

Автор: Stoupy518261обновлён 17 сент. 2026 г.
Библиотеки

Описание

📖 Furnace NBT Recipes

GitHub Smithed Modrinth PMC Discord Powered by StewBeet

🔥 Minecraft datapack library for handling custom furnace recipes with advanced NBT / component support!
Enables creation of complex smelting recipes using NBT tags / components. 🛠️

📚 How to Use

🔧 Function Tags

The library provides several function tags that you can use to add your custom recipes:

🔨 Smelting, Blasting, Smoking

The function tags are the following:

  • #furnace_nbt_recipes:v1/smelting_recipes: 🔥 Recipes in a classic furnace
  • #furnace_nbt_recipes:v1/blasting_recipes: ⚒️ Recipes in a blast furnace (e.g. ores)
  • #furnace_nbt_recipes:v1/smoking_recipes: 🍖 Recipes in a smoker (e.g. food)

📝 In any of these function tags, you must add a call to a function you created that will handle the recipe.
✅ Each line should check if the #found score is 0 and the input matches your recipe.
🔄 If so, it will run a loot table command in the container.3 slot.

⚡ Taken example from SimplEnergy:

# Smelt 'Raw Simplunium' into 'Simplunium Ingot'
execute if score #found furnace_nbt_recipes.data matches 0 store result score #found furnace_nbt_recipes.data if data storage furnace_nbt_recipes:main input{"components": {"minecraft:custom_data": {"simplenergy": {"raw_simplunium": true}}}} run loot replace block ~ ~ ~ container.3 loot simplenergy:i/simplunium_ingot

#furnace_nbt_recipes:v1/disable_cooking

🔧 As the library stands on fake recipes, we need to prevent the default vanilla items from smelting ⚠️
Therefore, you should use this function tag to disable them with the following syntax ⬇️:

# For instance, if a custom recipe uses command block as a base item:
execute if score #reset furnace_nbt_recipes.data matches 0 store success score #reset furnace_nbt_recipes.data if data storage furnace_nbt_recipes:main input{"id":"minecraft:command_block"}

#furnace_nbt_recipes:v1/recipes_used

⚡ Configure XP rewards for your custom recipes when a player retrieves items from the furnace.
🎯 The XP amount can be customized based on the input item and furnace type (🔥 regular furnace, ⚒️ blast furnace, or 🍖 smoker).
✨ Taken example from SimplEnergy:

# Give 0.8 XP for smelting 'Raw Simplunium'
execute if score #found furnace_nbt_recipes.data matches 0 store result score #found furnace_nbt_recipes.data if data storage furnace_nbt_recipes:main input{"components": {"minecraft:custom_data": {"simplenergy": {"raw_simplunium": true}}}} run function simplenergy:calls/furnace_nbt_recipes/xp_reward/0.8

#furnace_nbt_recipes:v1/configure_furnace

⚡ Configure a furnace once, the tick the library starts tracking it, so a configured furnace costs nothing extra afterwards.
🏃 It runs as the furnace's marker entity, at the furnace, and sets furnace_nbt_recipes.speed, given per thousand: 1000 is the vanilla pace, 8000 cooks eight times faster, and 1200 cooks 1.2 times faster.
🧮 Thousandths exist so a furnace can cook at a fraction of a tick per tick; the leftover is carried between ticks, so even 1050 stays exact over a whole recipe.
🔄 The progress arrow stays smooth at any speed, because the library scales progress onto the clock it holds rather than onto the recipe duration.
✨ Example, an electric smelter that smelts eight times faster:

# Run as the marker, at the furnace: check whatever identifies your block
execute if entity @e[tag=simplenergy.electric_smelter,distance=..1] run scoreboard players set @s furnace_nbt_recipes.speed 8000

📝 Recipe Format

📝 For each custom recipe you make, you'll need to add a recipe that take the base item ingredient as ingredient and result the base item of the result.
⏱️ The cookingtime field is mandatory, and the game divides it by the speed multiplier of the fuel: write 200 and a furnace takes ten seconds, while a blast furnace or a smoker on vanilla fuel takes five.
⚠️ This part is really wanky and I don't want people to use this library so here is a link to SimplEnergy's example.

⚙️ How the cooking is driven

🕐 The library owns the furnace clock: it holds the cooking time high enough that the vanilla recipe can never complete on its own, and swaps in your result once the recipe has had its full duration.
⛽ The pace comes from the fuel, whatever it is: a custom fuel with a speed_multiplier of 10 cooks ten times faster, exactly as it would for a vanilla recipe.
🔥 Vanilla refuses to light a furnace whose output slot holds an item its own recipe result cannot stack with. The library hands it a free slot for one tick so it lights itself and burns its fuel normally, then puts the item back.
🧱 Two custom results never merge: while the output slot holds a different item, the furnace stops instead of stacking them, and resumes once the slot is cleared.

⭐ Star History

Star History Chart

Последние версии

Все версии →
release

FurnaceNbtRecipes [v1.11.0]

1.11.0
17 сент. 2026 г.194Minecraft: 26.3datapack
Скачать
release

FurnaceNbtRecipes [v1.10.2]

1.10.2
16 сент. 2026 г.16Minecraft: 26.3datapack
Скачать
Что нового
## Changelog ### Features - ✨ Updated cooking to 26.3 formats and raised minimum version to 26.3 [dafcd0d](https://github.com/Stoupy51/FurnaceNbtRecipes/commit/dafcd0dce0c1a5f4c7fc8c02844e9d0f5b91497f) ### Documentation - 📝 Update README with cooking time details and library functionality [07369b7](https://github.com/Stoupy51/FurnaceNbtRecipes/commit/07369b795a4706b734c79a5f8b89566be4db36d7) ### Code Refactoring - ♻️ Moved every static file to dynamic python files [3bab34c](https://github.com/Stoupy51/FurnaceNbtRecipes/commit/3bab34c114393ed57e995e84cec816367519dc16) - ♻️ Unnecessary spaces [c8240f2](https://github.com/Stoupy51/FurnaceNbtRecipes/commit/c8240f246159eaee2c14f503bc02b05c5e0d18ef) ### Build System - 🚀 Bumped v1.10.2 (MC 26.3+) [ca96dde](https://github.com/Stoupy51/FurnaceNbtRecipes/commit/ca96dde7199a1e6767efe27f8b79c84d471c2443) ### Other - a [d7f5345](https://github.com/Stoupy51/FurnaceNbtRecipes/commit/d7f534525d230f9deac5014c04ccf8ea81424a50) **Full Changelog**: https://github.com/Stoupy51/FurnaceNbtRecipes/compare/v1.10.1...v1.10.2
release

FurnaceNbtRecipes [v1.10.1]

1.10.1
15 апр. 2026 г.437Minecraft: 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2datapack
Скачать
Что нового
## Changelog ### Features - ✨ Add stall time tracking and improve function execution logic [412c7a9](https://github.com/Stoupy51/FurnaceNbtRecipes/commit/412c7a95514ac69334d24b203709da50bf92a9b6) ### Bug Fixes - 🐛 Clarify condition for stalling check in tick function [9892868](https://github.com/Stoupy51/FurnaceNbtRecipes/commit/989286878b43aa90e8cca3ea1df555a46f7cad1f) ### Documentation - 📝 Add "Powered by StewBeet" badge to README [8654280](https://github.com/Stoupy51/FurnaceNbtRecipes/commit/8654280657896f40875497732a635b3564e13040) - 📝 Add "Powered by StewBeet" badge to README [f3e3ebd](https://github.com/Stoupy51/FurnaceNbtRecipes/commit/f3e3ebd279b40e982bdb730434680fe88efad888) ### Chores - 🔧 Updated Modrinth CD config [8398533](https://github.com/Stoupy51/FurnaceNbtRecipes/commit/839853305f8798fd8a3861920ab9c6bbfa7b7749) ### Build System - 🚀 Bump to v1.10.0 (MC 1.21.8-1.21.11+) [5dd75db](https://github.com/Stoupy51/FurnaceNbtRecipes/commit/5dd75dba3ae7d60d63015ee8e25bcb4de11bef4f) - 🚀 Bump to v1.10.1 (MC 1.21.8-1.21.11+) [d6fca52](https://github.com/Stoupy51/FurnaceNbtRecipes/commit/d6fca52d71f988aad08df792ae7f483c367fe0b0) **Full Changelog**: https://github.com/Stoupy51/FurnaceNbtRecipes/compare/v1.9.1...v1.10.1
release

FurnaceNbtRecipes [v1.9.1]

1.9.1
1 июл. 2025 г.57Minecraft: 1.21.7datapack
Скачать
Что нового
## Changelog ### Bug Fixes - 🐛 Missing pack.png in zip file ([8cba4fc](https://github.com/Stoupy51/FurnaceNbtRecipes/commit/8cba4fc94dec9ed0a51cc976b36f2c0af0174e4f)) ### Build System - 🚀 Now using StewBeet ([817cc60](https://github.com/Stoupy51/FurnaceNbtRecipes/commit/817cc60433f113d0faae4d3cd768fc2312775dd4)) - 🚀 Updated to 1.21.7 (bump 1.9.1) ([a5bd2d6](https://github.com/Stoupy51/FurnaceNbtRecipes/commit/a5bd2d66c65f4a779098c0ca2dc47bec13d4e95b)) **Full Changelog**: https://github.com/Stoupy51/FurnaceNbtRecipes/compare/v1.9.0...v1.9.1
release

FurnaceNbtRecipes [v1.9.0]

1.9.0
30 дек. 2024 г.67Minecraft: 1.21.4, 1.21.5, 1.21.6datapack
Скачать
Что нового
## Changelog ### Build System - 🚀 Updated to 1.21.4 (CookTime -> cooking_time_spent) ([1378802](https://github.com/Stoupy51/FurnaceNbtRecipes/commit/1378802a3dbd2688bf6d9e158382e15609b2de1b)) **Full Changelog**: https://github.com/Stoupy51/FurnaceNbtRecipes/compare/v1.8.0...v1.9.0
release

FurnaceNbtRecipes [v1.8.0]

1.8.0
26 нояб. 2024 г.52Minecraft: 1.21.2, 1.21.3datapack
Скачать
Что нового
## Changelog ### Build System - 🚀 Updated from 1.7.0 to 1.8.0 ([4f89e8b](https://github.com/Stoupy51/FurnaceNbtRecipes/commit/4f89e8b2ad5f9e8c6dd2306d61e76d61c82f9fb7)) - 🚀 Configured upload scripts ([68953d4](https://github.com/Stoupy51/FurnaceNbtRecipes/commit/68953d4c67b1fa8036d6c61e05d9f851f0572ef3)) ### Code Refactoring - ♻️ Moved placed_furnace function to link.py to use dynamic versioning ([8c8ab50](https://github.com/Stoupy51/FurnaceNbtRecipes/commit/8c8ab50e769b41ccd36912efe0417af7f51f5870)) ### Documentation - 📝 Better README ([9ee849c](https://github.com/Stoupy51/FurnaceNbtRecipes/commit/9ee849c0847e3376c8e28eec4c282137ea897ca0)) - 📝 Slightly better README ([597b3b2](https://github.com/Stoupy51/FurnaceNbtRecipes/commit/597b3b24c73b9bb2baedfa49dc5196f1a55c29ab)) ### Migration - 🎉 Now using Python Datapack ([e59c5d1](https://github.com/Stoupy51/FurnaceNbtRecipes/commit/e59c5d1cd0e724f9221da4eb01b7987b4aa9df99)) **Full Changelog**: https://github.com/Stoupy51/FurnaceNbtRecipes/compare/v1.6.0...v1.8.0