Skip to content

About

No description, website, or topics provided.

Resources

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

MachineEngine

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

Requirements

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)

Installing

  1. Download MachineEngine from Hangar or the GitHub releases.
  2. Put CraftEngine, MachineEngine and zMenu in plugins/, with any addon, and start the server.
  3. Run /ce reload all so CraftEngine builds its resource pack and sends it to players.
  4. Check with /machineengine status.

Details: installing.

Features

  • 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.

Make your own machines

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.

For developers

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.

License

GPL-3.0. See LICENSE.

About

No description, website, or topics provided.

Resources

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages