Logo
Icon

Forging Table

Forging Table is an addon that introduces players a new forging mechanic that similar to an anvil or smithing table, but it is very easy for developers to customize with disenchanting weapon ability.
38,928

Forging Table is an addon that introduces players a new forging mechanic that similar to an anvil or smithing table. Still, it is very easy for developers to customize with disenchanting weapon ability.

Forging Table UI Panel

 

Forging Table Recipe

 

Features:

  • Forging Table API
  • Built-in disenchanting ability
  • Built-in curse-removing ability

Compatibility

If you are an addon developer who wants to add your custom forging table recipe, you can do it by copying the forging table module to your addon script folder from this behavior pack in the folder "scripts/module/ForgingTableModule.js".

Example code:

scripts/disenchant.js

import { ForgingTableModule } from "./module/ForgingTableModule";
import { ItemStack } from "@minecraft/server";

ForgingTableModule.registerForgingRecipe(
    {
        primary: {
            tag: [ "minecraft:is_tool", "minecraft:is_armor"]
        },
        secondary: {
            item: [ "minecraft:book", "minecraft:enchanted_book" ]
        },
        tool: {
            item: "minecraft:echo_shard"
        },
        cost: 4
    },
    data =>{
        let enchantable = data.result.getComponent("minecraft:enchantable");
        if(enchantable && data.secondary && data.secondary.amount == 1){
            let enchantments = enchantable.getEnchantments();
            if(enchantments.length > 0 && !enchantable.hasEnchantment("binding") && !enchantable.hasEnchantment("vanishing")){
                let book_enchantable = data.secondary.getComponent("minecraft:enchantable");
              if(!book_enchantable.hasEnchantment(enchantments[0].type)){
                    let out_book = new ItemStack("minecraft:enchanted_book");
                    out_book.getComponent("minecraft:enchantable").addEnchantments(book_enchantable.getEnchantments().concat(enchantments[0]));
                    data.secondary = out_book;
                    enchantable.removeEnchantment(enchantments[0].type);
                    if(data.tool.amount > 1){
                        data.tool.amount -= 1;
                    }else{
                        data.tool = undefined;
                    }
                    data.primary = undefined;
                }else{
                    data.cancel = true;
                }
            }else{
                data.cancel = true;
            }
        }else{
            data.cancel = true;
        }
    }
)
More versions
Dev by: Avatar
qduoubp @qduoubp
All Rights Reserved
27/07/2025
20:41 27/07