Skip to content

Anatomy

DarkBladeDev edited this page Jul 23, 2026 · 1 revision

Anatomy of a Multiblock

Every multiblock structure in MultiBlockEngine is defined by a YAML configuration file. This file acts as the blueprint, defining everything from the shape of the machine to how it reacts to player interaction.

Here is a high-level overview of the sections you will find in a typical multiblock YAML file:


📄 The Basic Skeleton

id: simple_furnace
version: "1.0.0"
display_name: "&6Simple Furnace"

# 1. The Core Block
controller: BLAST_FURNACE

# 2. The Shape
pattern:
  - offset: [0, -1, 0]
    match: BRICKS

# 3. Custom Data
variables:
  energy_stored: 0

# 4. Interactive Logic
actions:
  on_interact:
    - type: message
      value: "&eFurnace clicked!"

🔍 Breaking Down the Sections

1. Metadata

  • id: The unique identifier for this multiblock. It must be unique across all addons.
  • version: Used for tracking updates to your machines.
  • display_name: The visual name used in holograms or UI panels.

2. The Controller

  • controller: Defines the material of the "Anchor Block". This is the block the player will right-click to form the multiblock. (See Core Concepts for more info).

3. The Pattern

  • pattern: A list of relative coordinates and rules defining what blocks must surround the controller to form the structure.
  • Learn more in Pattern & Matchers.

4. Variables & States

  • variables: Initial custom data values (like mana, energy, progress) attached to every instance of this multiblock.
  • Learn more in Variables & States.

5. Actions (The ECA System)

  • actions: This is where the magic happens. It maps Events (like on_interact, on_tick, on_break) to a series of Actions that execute conditionally.
  • Learn more in Events (Triggers), Conditions, and Actions.

🧩 Advanced Features

Some YAML files might contain additional advanced keys depending on the addons installed:

  • extends: Allows inheriting configuration from another YAML file. (See Inheritance & Templates)
  • ports: Used by the mbe-wiring addon to define network I/O points. (See Wiring & Topology)
  • assembly: Overrides how the structure is built (e.g., changing the required interaction item).

Clone this wiki locally