Skip to main content

Incinerator (Furnace) Recipe Registration

The Incinerator supports dynamic recipe registration using ScriptEvents.
Recipes are sent as a JSON string after worldLoad, and UtilityCraft parses and registers them automatically.

The Incinerator shares its ScriptEvent channel with Better Smelters furnaces.
Any recipe registered through this event will also be available to compatible Better Smelters furnaces.


Sending the ScriptEvent

import { system, world } from "@minecraft/server";

const newRecipes = {
"minecraft:stone": {
output: "minecraft:smooth_stone"
}
};

world.afterEvents.worldLoad.subscribe(() => {
system.sendScriptEvent(
"utilitycraft:register_furnace_recipe",
JSON.stringify(newRecipes)
);
});

You must always:

  • Wait for worldLoad
  • Use JSON.stringify
  • Send through utilitycraft:register_furnace_recipe

Recipe Object Fields

Incinerator uses the same structure as Crusher and Electro Press:

  • output (required)
    Item produced by the machine.

  • amount (optional, default: 1)
    Number of output items produced per operation.

  • required (optional, default: 1)
    Amount of input items required per operation.

  • cost (optional, default: 800 DE)
    Energy cost per operation.

If optional fields are omitted, machine defaults are applied automatically.


Example Recipe Object

const recipes = {
"minecraft:iron_dust": {
output: "minecraft:iron_ingot"
},
"minecraft:rotten_flesh": {
output: "strat:coagulated_blood",
cost: 1200
}
};

Notes

  • If a recipe already exists, it will be replaced.
  • Invalid fields are ignored safely.
  • Recipes are registered at runtime and do not require modifying UtilityCraft source files.
  • Registered recipes are shared with Better Smelters furnaces via the same ScriptEvent channel.