Description
Recipe Machine Stage
This mod provides the ability to block recipes for mechanisms, similar to how it is implemented in Recipe Stages for the workbench.
⚠️ Update for 1.21.1+: A new method
addRecipeByMachinehas been added, and the syntax for both KubeJS and CraftTweaker has been significantly updated! Please see the 1.21+ Documentation section below.
What mods are supported?
The list of supported mods can be found here: GitHub
How to use it?
Everything works very simply. You only need to install the dependencies: (CraftTweaker AND Game Stages) OR KubeJS OR AStages.
- AStages: See wiki to know how to use it
📖 Documentation for 1.21.1+ (New Syntax)
⚠️ Important: Registration order matters! If a recipe is already restricted individually (via
addRecipe), subsequent bulk restrictions (addRecipeByModoraddRecipeByMachine) will ignore it. This allows you to create exceptions (e.g., locking a specific recipe to stage "A", but locking the rest of the machine to stage "B"). Specific recipes must be declared before bulk ones!
KubeJS (1.21+)
// kubejs/server_scripts/rms_example.js
RMSEvents.register(event => {
// --- Individual Restrictions ---
// event.addRecipe(recipeType: string, recipe_id: string, stage: string)
event.addRecipe('create:milling', 'create:milling/fern', 'two')
// event.addRecipes(recipeType: string, recipe_ids: string[], stage: string)
event.addRecipes('minecraft:smelting', ['minecraft:stone', 'minecraft:iron_ingot'], 'one')
// --- Bulk Restrictions ---
// event.addRecipeByMod(recipeType: string, modId: string, stage: string)
event.addRecipeByMod('minecraft:smelting', 'create', 'create')
// event.addRecipeByMods(recipeType: string, modIds: string[], stage: string)
event.addRecipeByMods('minecraft:smelting', ['create', 'minecraft'], 'one')
// --- NEW: Block entirely by machine ---
// event.addRecipeByMachine(recipeType: string, stage: string)
event.addRecipeByMachine('minecraft:smelting', 'one')
})
CraftTweaker (1.21+)
import mods.rms.RMS;
// Individual
RMS.addRecipe("minecraft:smelting", "minecraft:stone", "one");
RMS.addRecipe("minecraft:smelting", ["minecraft:stone", "minecraft:iron_ingot"], "one");
// Bulk
RMS.addRecipeByMod("minecraft:smelting", "minecraft", "one");
RMS.addRecipeByMod("minecraft:smelting", ["minecraft", "create"], "one");
// NEW: Block entirely by machine
RMS.addRecipeByMachine("minecraft:smelting", "one");
📖 Documentation for 1.20.1 and below (Legacy Syntax)
KubeJS (Server Scripts)
// kubejs/server_scripts/example.js
// RecipeMachineStage.addRecipe(String recipeType, String recipeID, String stage)
RecipeMachineStage.addRecipe('create:milling', 'create:milling/fern', 'two')
RecipeMachineStage.addRecipe("minecraft:smelting", "minecraft:stone", "one")
// RecipeMachineStage.addRecipes(String recipeType, String[] recipeIDs, String stage)
RecipeMachineStage.addRecipes("minecraft:smelting", ["minecraft:stone", "minecraft:iron_ingot"], "one")
CraftTweaker
import mods.recipemachinestage.RecipeMachineStage;
RecipeMachineStage.addRecipe(recipeType as string, recipeID as string, stage as string)
RecipeMachineStage.addRecipe(recipeType as string, recipeID as string[], stage as string)
RecipeMachineStage.addRecipeByMod(recipeType as string, modId as string, stage as string)
RecipeMachineStage.addRecipeByMod(recipeType as string, modId as string[], stage as string)
RecipeMachineStage.addRecipe(recipeType as RecypeType, recipeID as string, stage as string)
RecipeMachineStage.addRecipe(recipeType as RecypeType, recipeID as string[], stage as string)
RecipeMachineStage.addRecipeByMod(recipeType as RecypeType, modId as string, stage as string)
RecipeMachineStage.addRecipeByMod(recipeType as RecypeType, modId as string[], stage as string)
Example (1.20.1)
import mods.recipemachinestage.RecipeMachineStage;
RecipeMachineStage.addRecipe("minecraft:smelting", "minecraft:stone", "one");
RecipeMachineStage.addRecipe(<recypetype:minecraft:smelting>, "minecraft:stone", "one");
// Botania (Mana Infusion)
RecipeMachineStage.addRecipe("botania:mana_infusion", "botania:mana_infusion/mana_diamond", "two");
// Mekanism (Metallurgic Infusing)
RecipeMachineStage.addRecipe("mekanism:metallurgic_infusing", "mekanism:processing/iron/enriched", "three");
RecipeMachineStage.addRecipeByMod("minecraft:smelting", ["minecraft", "create"], "one");
Parameters Description
- recipeType - Recipe Type. In CraftTweaker (
<recypetype:minecraft:smelting>), you need to write it without the prefix:"minecraft:smelting". - recipeID - Recipe ID (
"minecraft:iron_ingot_from_blasting_iron_ore","mekanism:processing/iron/enriched", etc.). - stage - The stage required to unlock the recipe (
"one","two", etc.).


