A 1.20.1 fork of Custom Machinery for pack authors who need catalyst recipes, scriptable redstone, and a few machine-world fixes.
Catalyst / non-consumed items
Item inputs can be required without being extracted. The item must still be present to start the recipe; it is not pulled from the slot.
JSON (consume defaults to true):
{
"type": "custommachinery:item",
"mode": "input",
"item": "minecraft:nether_star",
"amount": 1,
"consume": false
}
KubeJS:
.requireItem('minecraft:nether_star', false)
.requireItem('minecraft:nether_star', 'input', false)
.requireItemTag('#forge:ingots/iron', 1, null, '', false)
JEI marks these inputs in gold as Not consumed.
Scriptable redstone output
Machines expose getPowerLevel() / setPowerLevel(int). If the level is greater than 0, that value is used as the block’s redstone signal instead of the redstone component. This is a runtime override (set it from a script/tick); it is not a new saved machine property.
Progress bar JEI click area
Progress-bar GUI elements accept "hide_jei": true so that bar is not a JEI recipe click target. Useful when a machine GUI has a bar you do not want opening JEI.
World / compatibility
- Custom machine blocks refuse liquid placement, so they are not waterlogged or filled by dumped fluids.
- Status updates no longer crash when a machine is rendered in a Create contraption (VirtualRenderWorld).
- The status GUI element no longer shows the default Idle/Running/Errored tooltip (including the error message). Custom tooltips you set on the element still work.

