Download
Choose Minecraft Version
1.21.21.21.3v1.8.0
1.21.21.21.2v1.8.0
Close

šŸ“– Furnace NBT Recipes

GitHub Smithed Modrinth Discord Python Datapack

šŸ”„ 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

šŸ“ 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.
āš ļø This part is really wanky and I don't want people to use this library so here is a link to SimplEnergy's example.

Smithed

Copyright Ā© 2024 Smithed
Not an official Minecraft product. Not approved by or associated with Mojang Studios