SDM Recipe Machine Stages
Modby Sixik
The ultimate progression tool for tech-based modpacks. Lock machine recipes behind stages with seamless KubeJS and CraftTweaker integration.
Type
Mod
CurseForge Downloads
122,898
CurseForge ID
1108011
Last Updated
Aug 15, 2026
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 addRecipeByMachine has 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 (addRecipeByMod or addRecipeByMachine) 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.).
Links
Recommended Gear
AffiliateHardware and extras that pair well with this mod.
As an Amazon Associate I earn from qualifying purchases.
Similar Mods
[LEGACY] InvMove (Forge)
Adds the ability to walk around while in inventories.
ModularWarfare - Guns & more
A mod that adds configurable guns, models, attachements, sounds and animations. (Content-pack based)
Guardians Galore
Summon friendly mobs to guard your base! These tamable animals have an area-of-effect which forces hostile mobs to despa...
SCP-939, With Many Voices
Don't trust any usual voices, it's definitely SCP-939...
project-261793
Backports one of the 17w06a features
Recipe Book Delight
Adds a recipe book to the cooking pot from Farmer's Delight [Fabric].