This filename is misleading: there is no Lua component named opencomputers-common.
This page exists to document a legacy mixed export that actually combines callbacks from two real OpenComputers components:
configuratorinventory_controller
The configurator component is used to inspect and configure adjacent Ender IO conduits.
- Typical hosts: adapter, drone, robot, microcontroller with a configurator-capable environment
- Real Lua component name:
configurator - Main purpose: conduit inspection and conduit setting changes
Part of this page also contains robot-only upgrade-slot helpers that actually belong to inventory_controller.
- Typical host: robot
- Real Lua component name:
inventory_controller - Main purpose here: swap tools and installed upgrades
Most configurator callbacks on this page require all of the following:
- Ender IO must be installed.
- There must be an Ender IO conduit bundle on the chosen adjacent side.
- For item filter editing, the conduit must already have a compatible filter upgrade installed.
Common failure returns:
false, "EnderIO not loaded"nil, "No conduit here"nil, "no item conduit here"nil, "no liquid conduit here"nil, "no ender conduit here"
Invalid color or mode strings raise an error instead of returning a clean failure tuple, so pass only supported values.
The conduit-related callbacks use two side arguments:
side:number: which side of the host contains the adjacent conduit bundle block.conduitDirection:number: which face of that conduit bundle you want to inspect or configure.
Example:
- On a robot,
sideis interpreted relative to the robot's facing. - On an adapter,
sideis the world side of the adjacent block.
Color arguments are case-insensitive after uppercasing, and should use the standard Ender IO dye names:
blackredgreenbrownbluepurplecyanlight_graygraypinklimeyellowlight_bluemagentaorangewhite
Accepted conduit connection modes:
IN_OUTINPUTOUTPUTDISABLEDNOT_SET
Accepted extraction redstone modes:
IGNOREONOFFNEVER
- Syntax:
configurator.getConduitConfiguration(side, conduitDirection) - Parameters:
side:number: adjacent conduit bundle position.conduitDirection:number: target face on that conduit bundle.
- Returns:
- Success:
table - Failure:
nil, "No conduit here"ornil, "EnderIO not loaded"
- Success:
- Purpose: Returns a structured snapshot of the conduit bundle on the chosen side.
Top-level return keys:
HasFacade:booleanItemConduit:tablewhen an item conduit existsLiquidConduit:tablewhen a liquid conduit existsRedstoneConduit:tablewhen a redstone conduit exists
Possible ItemConduit keys:
OutputColorInputColorRoundRobinEnabledSelfFeedEnabledExtractionRedstoneConditionMetOutputPriorityInputFilterOutputFilterConnectionModeExtractionRedstoneModeExtractionRedstoneColor
Possible LiquidConduit keys on Ender Fluid Conduits:
InputFilterOutputFilterInputColorOutputColorConnectionModeExtractionRedstoneModeExtractionRedstoneColor
Possible LiquidConduit keys on normal tank conduits:
FluidTypeConnectionModeExtractionRedstoneModeExtractionRedstoneColor
Possible RedstoneConduit keys:
SignalColorIsOutputStrongConnectionMode
Item filter tables may contain:
AdvancedBlacklistMatchMetaMatchNBTUseOreDictStickyFuzzyModeFilterItems
Fluid filter tables may contain:
blacklist"1"through"5"for the configured fluid names in each filter slot
- Syntax:
configurator.setItemConduitColor(side, conduitDirection, isInput, color) - Parameters:
side:numberconduitDirection:numberisInput:boolean:truefor input color,falsefor output color.color:string: one of the accepted dye colors listed above.
- Returns:
- Success:
true - Failure:
false, "EnderIO not loaded"ornil, "no item conduit here"
- Success:
- Purpose: Sets the input or output color of an item conduit connection.
- Syntax:
configurator.setItemConduitOutputPriority(side, conduitDirection, priority) - Parameters:
side:numberconduitDirection:numberpriority:number: numeric priority applied to that output face.
- Returns:
- Success:
true - Failure:
false, "EnderIO not loaded"ornil, "no item conduit here"
- Success:
- Purpose: Sets the output priority of an item conduit face.
- Syntax:
configurator.setItemConduitFilter(side, conduitDirection, databaseAddress, dbSlot, filterIndex, isInput) - Parameters:
side:numberconduitDirection:numberdatabaseAddress:string: address of a database component on the same network.dbSlot:number: database slot to copy from.filterIndex:number: target slot inside the conduit filter. This index is passed through directly and is effectively0-based.isInput:boolean:truefor input filter,falsefor output filter.
- Returns:
- Success:
true - Failure:
false, "EnderIO not loaded"orfalse, "Wrong or no item filter"or conduit/database related errors
- Success:
- Purpose: Copies one item stack from a database entry into an item conduit filter slot.
Usage notes:
- The conduit must already have a normal item filter that can accept direct slot edits.
dbSlotfollows normal OpenComputers slot validation.
- Syntax:
configurator.setItemConduitConnectionMode(side, conduitDirection, mode) - Parameters:
side:numberconduitDirection:numbermode:string: one ofIN_OUT,INPUT,OUTPUT,DISABLED,NOT_SET.
- Returns:
- Success:
true - Failure:
false, "EnderIO not loaded"ornil, "no item conduit here"
- Success:
- Purpose: Sets the item conduit connection mode for that face.
- Syntax:
configurator.setItemConduitExtractionRedstoneColor(side, conduitDirection, color) - Parameters:
side:numberconduitDirection:numbercolor:string: one of the accepted dye colors.
- Returns:
- Success:
true - Failure:
false, "EnderIO not loaded"ornil, "no item conduit here"
- Success:
- Purpose: Sets the extraction redstone color used by that item conduit face.
- Syntax:
configurator.setItemConduitExtractionRedstoneMode(side, conduitDirection, mode) - Parameters:
side:numberconduitDirection:numbermode:string: one ofIGNORE,ON,OFF,NEVER.
- Returns:
- Success:
true - Failure:
false, "EnderIO not loaded"ornil, "no item conduit here"
- Success:
- Purpose: Sets when redstone allows that item conduit face to extract.
- Syntax:
configurator.setEnderLiquidConduitFilter(side, conduitDirection, fluid, blacklist, isInput[, filterIndex]) - Parameters:
side:numberconduitDirection:numberfluid:string: registered fluid name, such aswaterorlava.blacklist:boolean:trueto blacklist the fluid,falseto whitelist it.isInput:boolean:trueto change the input filter,falsefor output.filterIndex:number: optional filter slot index, default0. Ender fluid filters expose five slots, indexed0to4.
- Returns:
- Success:
true - Failure:
false, "EnderIO not loaded"ornil, "no ender conduit here"
- Success:
- Purpose: Replaces one filter entry in an Ender Fluid Conduit.
- Syntax:
configurator.setEnderLiquidConduitColor(side, conduitDirection, isInput, color) - Parameters:
side:numberconduitDirection:numberisInput:booleancolor:string
- Returns:
- Success:
true - Failure:
false, "EnderIO not loaded"ornil, "no ender conduit here"
- Success:
- Purpose: Sets the input or output color of an Ender Fluid Conduit face.
- Syntax:
configurator.setLiquidConduitConnectionMode(side, conduitDirection, mode) - Parameters:
side:numberconduitDirection:numbermode:string: one ofIN_OUT,INPUT,OUTPUT,DISABLED,NOT_SET.
- Returns:
- Success:
true - Failure:
false, "EnderIO not loaded"ornil, "no liquid conduit here"
- Success:
- Purpose: Sets the connection mode of a liquid conduit face.
- Syntax:
configurator.setLiquidConduitExtractionRedstoneColor(side, conduitDirection, color) - Parameters:
side:numberconduitDirection:numbercolor:string
- Returns:
- Success:
true - Failure:
false, "EnderIO not loaded"ornil, "no liquid conduit here"
- Success:
- Purpose: Sets the extraction redstone color of a liquid conduit face.
- Syntax:
configurator.setLiquidConduitExtractionRedstoneMode(side, conduitDirection, mode) - Parameters:
side:numberconduitDirection:numbermode:string: one ofIGNORE,ON,OFF,NEVER.
- Returns:
- Success:
true - Failure:
false, "EnderIO not loaded"ornil, "no liquid conduit here"
- Success:
- Purpose: Sets the extraction redstone mode of a liquid conduit face.
- Syntax:
configurator.setRedstoneConduitSignalColor(side, conduitDirection, color) - Parameters:
side:numberconduitDirection:numbercolor:string
- Returns:
- Success:
true - Failure:
false, "EnderIO not loaded"ornil, "no liquid conduit here"
- Success:
- Purpose: Sets the color channel of an insulated redstone conduit connection.
- Syntax:
configurator.setRedstoneConduitSignalStrength(side, conduitDirection, strength) - Parameters:
side:numberconduitDirection:numberstrength:boolean:truefor strong output,falsefor weak output.
- Returns:
- Success:
true - Failure:
false, "EnderIO not loaded"ornil, "no liquid conduit here"
- Success:
- Purpose: Sets whether an insulated redstone conduit outputs strong or weak redstone power.
- Syntax:
configurator.replaceConduitFilter(side, conduitDirection, isInput) - Parameters:
side:numberconduitDirection:numberisInput:boolean:truefor input filter,falsefor output filter.
- Returns:
- Success:
true - Failure:
false, "EnderIO not loaded"ornil, "no item conduit here"
- Success:
- Purpose: Robot-only helper that swaps the conduit filter upgrade with the item stack in the robot's currently selected slot.
Behavior details:
- Only the robot variant of
configuratorexposes this callback. - The old conduit filter item is moved into the robot's selected slot.
These callbacks belong to the real inventory_controller component, not to configurator.
- Syntax:
inventoryController.equip() - Returns:
boolean - Purpose: Swaps the robot's equipped tool slot with the robot's currently selected internal inventory slot.
- Syntax:
inventoryController.installUpgrade([slot]) - Parameters:
slot:number: optional robot container slot index, default1.
- Returns:
- Success:
true - Failure:
false,false, "not a container slot", orfalse, "Invalid upgrade"
- Success:
- Purpose: Swaps the upgrade installed in the chosen robot container slot with the item in the currently selected robot inventory slot.
- Syntax:
inventoryController.getUpgradeContainerType(slot) - Parameters:
slot:number: robot container slot index.
- Returns:
string - Purpose: Returns the container type accepted by that robot slot.
Behavior details:
- If the slot is not a container slot, the function returns
"None".
- Syntax:
inventoryController.getUpgradeContainerTier(slot) - Parameters:
slot:number: robot container slot index.
- Returns:
number - Purpose: Returns the tier requirement of that robot container slot.
Behavior details:
- If the slot is not a container slot, the function returns
0.
local component = require("component")
local sides = require("sides")
local configurator = component.configurator
local info = configurator.getConduitConfiguration(sides.front, sides.up)
print("Has facade:", info.HasFacade)
if info.ItemConduit then
print("Item mode:", tostring(info.ItemConduit.ConnectionMode))
print("Output priority:", info.ItemConduit.OutputPriority)
endlocal component = require("component")
local robot = require("robot")
local inventoryController = component.inventory_controller
robot.select(1)
local ok, err = inventoryController.installUpgrade(1)
print("Upgrade installed:", ok, err)opencomputers-inventory-controlrobotadapter