You are currently on the unstable branch. Click here to go to safety.
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