Custom machines
Define a multiblock machine and its controller.
A custom machine has a definition, process recipes joined by recipe_key, and a crafting recipe for its controller. The controller's hbm:custom_machine_type component names the definition ID.
Definition file: data/<namespace>/hbm/custom_machine/<path>.json. See the paper press example for a complete definition, process recipe and controller recipe.
Definition fields
| Field | Meaning and default | Range |
|---|---|---|
recipe_key | Process-family key matched by hbm:custom_machine recipes. | |
name | Text component displayed as the machine name. | |
cells | Structure-cell list relative to the controller. | |
item_in_countOptional | Item input positions; default 0. | [0, 6] |
item_out_countOptional | Item output positions; default 0. | [0, 6] |
fluid_in_countOptional | Input tanks; default 0. | [0, 3] |
fluid_out_countOptional | Output tanks; default 0. | [0, 3] |
fluid_in_capOptional | Input-tank capacity in mB; default 0. | [0, \texttt{i32::MAX}] |
fluid_out_capOptional | Output-tank capacity in mB; default 0. | [0, \texttt{i32::MAX}] |
max_powerOptional | HE buffer capacity; default 0. Use a nonnegative capacity. | \texttt{i64} |
max_heatOptional | Stored-heat limit; default 0. | [0, \texttt{i32::MAX}] |
max_pollution_capOptional | Pollution buffer limit; default 0. | [0, \texttt{i32::MAX}] |
recipe_speed_multOptional | Positive divisor of recipe duration; default 1.0. | (0, \texttt{f64::MAX}] |
recipe_consumption_multOptional | Positive multiplier on recipe HE cost per tick; default 1.0. | (0, \texttt{f64::MAX}] |
generator_modeOptional | Spends inputs at the start and produces energy during the run when true; default false. | |
flux_modeOptional | Applies the recipe's flux requirement when true; default false. |
Effective duration, truncated to an integer:
\max\!\left(\frac{\mathrm{duration}}{\mathrm{recipe\_speed\_mult}},1\right)Effective HE cost per tick, truncated to a long integer:
\max\!\left(\mathrm{power}\cdot\mathrm{recipe\_consumption\_mult},1\right)Loading
Definitions load when the world opens. Reopen singleplayer or restart the server after changing one. Process and controller crafting recipes refresh with /reload.
Ingredients and components
Counted inputs, custom ingredients and stack components.
Example: paper press
Definition, process recipe and controller recipe for a paper press.
© 2026 movblock. Original site text is licensed under CC BY-SA 4.0 unless otherwise noted. Built with Fumadocs.