Tech-mod machines on Paper and Folia servers, with no client mod.
MachineEngine is a framework: it provides machines that store, process and move energy, fluids and items, cables between them, multiblock structures, upgrades and machine menus — and leaves the content to addons (such as Mekanized, Mekanism's machines) and to your own YAML. Blocks and items are CraftEngine blocks and items, sent to players in its resource pack; menus are zMenu inventories.
Documentation: 1robie.github.io/plugins/machineengine
| Server | Paper or Folia, Minecraft 1.20.6 – 26.3 (one jar) |
| Java | 21 for 1.20.6, 25 for 26.x |
| Plugins | CraftEngine (required), zMenu (for menus) |
- Download MachineEngine from Hangar or the GitHub releases.
- Put CraftEngine, MachineEngine and zMenu in
plugins/, with any addon, and start the server. - Run
/ce reload allso CraftEngine builds its resource pack and sends it to players. - Check with
/machineengine status.
Details: installing.
- Machines that sleep when there is nothing to do, and keep their state with their block in the world.
- One energy and shared fluids for every addon, so any cable or pipe carries them.
- Cables and pipes that connect by themselves, with pull, push and per-side modes.
- Multiblocks: hollow boxes (tanks, reactors) or any fixed shape.
- Upgrades, installed from the machine's menu.
- Textured menus drawn by the resource pack, with live bars and slots.
- Hoppers and comparators work with machines like with chests.
- Keep contents: a machine broken by a player drops as one item holding everything.
- Safe uninstalls: machines of a removed addon keep their data until it comes back.
- Folia, designed for regionised threading from the start.
Without Java, in plugins/MachineEngine/definitions/*.yml: resources, recipes, processing and
storage machines, multiblocks — then a CraftEngine block for each.
machines:
mypack:iron_press:
storages:
input: { slots: 1, capacity: 64, filter: { item: minecraft:raw_iron } }
output: { slots: 1, capacity: 64 }
energy: { capacity: 10000, filter: { type: machineengine:energy } }
behavior: { type: machineengine:processing, recipes: mypack:pressing, inputs: [input], output: output, costs: energy }See YAML definitions and the rest of Building with it.
Addons depend on machineengine-api and test headless with machineengine-test, from the Maven
repository https://1robie.github.io/maven/:
repositories { maven("https://1robie.github.io/maven/") }
dependencies { compileOnly("com.github.1robie.MachineEngine:machineengine-api:0.1.0") }See the Developer API and the Javadoc. Building MachineEngine itself, dev servers and releases: CONTRIBUTING.md. The design and every decision: docs/ARCHITECTURE.md.
GPL-3.0. See LICENSE.