Ports
Ports are the machine blocks that handle recipe inputs and outputs. A formed structure can contain item ports, fluid ports, energy ports, and optional mod-compat ports.
A port can be restricted to one or more controllers. Structures and recipes then reference either a specific port ID or a broader port type.
Per-side automatic input and output
Open a port and use its side controls to enable automatic transfer on the machine-relative top, bottom, front, back, left, or right side. The directions are relative to the controller’s orientation. Input ports pull compatible contents from neighboring non-MM blocks; output ports push contents into neighboring compatible inventories, tanks, or energy storage. Output ports can also feed adjacent Masterful Machinery input ports to chain machines.
Each port stores its own side settings. For supported output ports, autoPush in the port definition sets the initial state; if omitted, portsAutoExtractByDefault in mm-common.toml is used. Set portAutoIOInterval to control how often transfers run (default 10 ticks, range 1..200). See Common Config for the complete setting list.
When linked to a formed machine, compatible ports can show a status light using the machine’s state colors. Clients can disable port status lights in their client config.
Fluid and Mekanism chemical port screens also have Lock and Dump controls. Lock keeps a tank dedicated to its current resource (an empty locked tank adopts the first resource inserted). Dump clears the port contents.
Output priority
Use the Priority Setter to assign an output priority from 0 to 10. Recipe outputs try higher-priority ports first for items, fluids, energy, and Mekanism chemicals; equal-priority recipe destinations use a deterministic order. Output ports with auto-push also serve adjacent Masterful Machinery input ports in descending priority order. Priority 0 is the default.
Input Gateway
The Input Gateway is a convenience block that routes received items, fluids, FE, and—when Mekanism is installed—gas, infusion, pigment, and slurry to the machine’s matching input ports. It stores no contents of its own. It can occupy a casing or glass position in a structure, or sit beside an input port. The gateway exposes a read-only view of the linked machine’s inputs for integrations such as AE2 pattern providers.
See Items and Commands for usage notes.
AE2 Storage Bus
With Applied Energistics 2 installed, an AE2 Storage Bus can attach directly to an item port and expose that inventory to the ME network. This is separate from the Network Linker, which links a machine’s output to an ME network.
Creating a port
Create JSON files in:
config/mm/ports/
Common fields:
{
"id": "my_port",
"controllerIds": "mm:my_controller",
"name": "My Port",
"type": "mm:item",
"config": {}
}
| Field | Meaning |
|---|---|
id |
Unique port path. my_port becomes mm:my_port. |
controllerIds |
Single controller ID or array of controller IDs this port may be used with. |
name |
Default English display name. Translation key: block.mm.<id>. |
type |
Port type ID. Determines which config fields and ingredient type the port supports. |
config |
Type-specific settings such as rows, columns, capacity, stress, or tier rank. |
Multiple controllers:
"controllerIds": [
"mm:my_controller",
"mm:my_other_controller"
]
Supported port types
| Port ID | Required mod | Purpose |
|---|---|---|
mm:item |
base | Item storage/input/output. |
mm:fluid |
base | Forge fluid storage/input/output. |
mm:energy |
base | Forge Energy storage/input/output. |
mm:create/kinetic |
Create | Kinetic speed/stress interaction. |
mm:pneumaticcraft/air |
PneumaticCraft | Air/pressure interaction. |
mm:botania/mana |
Botania | Mana storage/input/output. |
mm:mekanism/gas |
Mekanism | Gas storage/input/output. |
mm:mekanism/slurry |
Mekanism | Slurry storage/input/output. |
mm:mekanism/pigment |
Mekanism | Pigment storage/input/output. |
mm:mekanism/infuse |
Mekanism | Infuse-type storage/input/output. |
Tier matching
Item, fluid, and energy ports support tierRank. Structures can then match any port of a type within a tier range:
"I": {
"portType": "mm:item",
"input": true,
"minTier": 1,
"maxTier": 3
}
Use this when several ports should satisfy the same structure slot, such as basic/advanced/elite item inputs.