Register Port
Register generated ports with a KubeJS startup script.
Startup script
MMEvents.registerPorts(event => {
event.create('item_port')
.name('Item Port')
.controllerId('mm:coke_oven')
.config('mm:item', c => {
c.rows(1).columns(3).slotCapacity(64).tierRank(1)
})
})
event.create(...) takes the bare MM base port id/path. Do not include mm: here.
Correct:
event.create('item_port')
Wrong:
event.create('mm:item_port')
The generated block/item ids are:
mm:item_port_input
mm:item_port_output
Structure references
For exact port matching in structures, use the base port id plus the input flag:
l.key('I', { port: 'mm:item_port', input: true })
l.key('O', { port: 'mm:item_port', input: false })
Port-type matching is often cleaner:
l.key('I', { portType: 'mm:item', input: true, minTier: 1, maxTier: 1 })
l.key('E', { portType: 'mm:energy', input: true, minTier: 1, maxTier: 1 })
Builder methods
MMEvents.registerPorts(event => {
event.create('my_item_port')
.name('My Item Port')
.controllerId('mm:my_controller')
.config('mm:item', c => {
c.rows(3)
c.columns(3)
c.autoPush(false)
c.slotCapacity(64)
c.tierRank(1)
})
})
| Method | Meaning |
|---|---|
create(id) |
Bare generated MM base port id/path. Input/output suffixes are added by the mod. |
name(text) |
Default display name. |
controllerId(id) |
Full controller id, for example mm:coke_oven. Can be called more than once. |
config(portType, builder => ...) |
Port type id plus type-specific config builder. |
Common config builder methods by type:
| Type | Methods |
|---|---|
mm:item |
rows, columns, autoPush, slotCapacity, tierRank |
mm:fluid |
rows, columns, slotCapacity, autoPush, tierRank |
mm:energy |
capacity, maxReceive, maxExtract, autoPush, tierRank |
mm:create/kinetic |
stress |
mm:botania/mana |
capacity |
mm:pneumaticcraft/air |
volume, danger, critical |
mm:mekanism/gas |
capacity or amount, depending on builder/source version |
mm:mekanism/slurry |
capacity or amount, depending on builder/source version |
mm:mekanism/pigment |
capacity or amount, depending on builder/source version |
mm:mekanism/infuse |
capacity or amount, depending on builder/source version |
Important: Startup-generated controllers, ports, and extra blocks use bare ids in
event.create(...). Structures and process recipes are datapack/resource ids and should be namespaced.