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