This page documents the Ender IO integrations exposed through OpenComputers and Computronics. The integration covers machine state, capacitor banks, XP storage tiles, configurable IO sides, power monitors, generic power storage, redstone control, telepads, dimensional transceivers, vacuum chests, and weather obelisks.
- Dependency:
enderio - Label:
integration-required
enderio_machinecapacitor_bankexperience_tileio_config_tilepower_monitorpower_storageredstone_tiletelepaddimensional_transceivervacuum_chestweather_obelisk
- Monitoring whether Ender IO machines are active and how fast they are progressing.
- Tuning capacitor-bank throughput and redstone gating.
- Reading or changing per-side IO configuration.
- Configuring telepad destinations from Lua.
- Automating dimensional transceiver channel membership.
- Monitoring power networks, XP storage, vacuum range, and weather devices.
enderio_machine is a shared component family. A particular machine may expose only part of this API, depending on which Ender IO interfaces it implements.
- Syntax:
isActive(): boolean - Purpose: Return whether the machine is currently active.
- Usage notes:
- This callback comes from the
AbstractMachineEntitydriver.
- This callback comes from the
- Syntax:
getPowerPerTick(): number - Purpose: Return the machine's per-tick power use value from
getPowerUsePerTick(). - Usage notes:
- This callback comes from the
AbstractPoweredMachineEntitydriver.
- This callback comes from the
- Syntax:
getProgress(): number - Purpose: Return the machine's internal progress value.
- Usage notes:
- This callback comes from the
IProgressTiledriver. - The returned value is whatever Ender IO stores internally. It is not guaranteed to be a normalized percentage.
- This callback comes from the
capacitor_bank is exposed on Ender IO capacitor banks.
- Syntax:
getAverageInputPerTick(): number - Purpose: Return the recent average energy input per tick.
- Returns:
- The network average when the bank belongs to a capacitor-bank network.
0when no bank network object is available.
- Syntax:
getAverageOutputPerTick(): number - Purpose: Return the recent average energy output per tick.
- Returns:
- The network average when the bank belongs to a capacitor-bank network.
0when no bank network object is available.
- Syntax:
getAverageChangePerTick(): number - Purpose: Return the recent average net storage change per tick.
- Returns:
- The network average when the bank belongs to a capacitor-bank network.
0when no bank network object is available.
- Syntax:
setMaxInput(max: number) - Purpose: Change the maximum accepted input rate.
- Parameters:
max: new maximum input value.
- Returns:
- No useful return value on success.
- Usage notes:
- When the bank is part of a network, the write is applied to the network object instead of the single block.
- Syntax:
setMaxOutput(max: number) - Purpose: Change the maximum output rate.
- Parameters:
max: new maximum output value.
- Returns:
- No useful return value on success.
- Usage notes:
- When the bank is part of a network, the write is applied to the network object instead of the single block.
- Syntax:
getInputMode(): string - Purpose: Return the current redstone control mode for input.
- Syntax:
getOutputMode(): string - Purpose: Return the current redstone control mode for output.
- Syntax:
setInputMode(mode: string) - Purpose: Change the redstone control mode for input.
- Parameters:
mode: one ofignore,on,off,never.
- Returns:
- No useful return value on success.
- Usage notes:
- Invalid values raise
No valid Redstone mode given.
- Invalid values raise
- Syntax:
setOutputMode(mode: string) - Purpose: Change the redstone control mode for output.
- Parameters:
mode: one ofignore,on,off,never.
- Returns:
- No useful return value on success.
- Usage notes:
- Invalid values raise
No valid Redstone mode given.
- Invalid values raise
- Syntax:
redstone_modes - Purpose: Return the list of supported redstone control modes.
- Returns:
- An indexed Lua table containing
ignore,on,off, andnever.
- An indexed Lua table containing
experience_tile is exposed on Ender IO tiles implementing IHaveExperience.
- Syntax:
getExperience(): number - Purpose: Return the total experience stored in the tile's XP container.
- Syntax:
getExperienceLevels(): number - Purpose: Return the current represented experience level count.
- Syntax:
getMaxExperience(): number - Purpose: Return the maximum XP the tile can store.
io_config_tile is exposed on Ender IO machines implementing per-side IO configuration.
- Syntax:
getIOMode(side: number): string - Purpose: Return the current IO mode of one side.
- Parameters:
side: side index from1to6.
- Returns:
- One of the lower-case IO mode names.
- Usage notes:
- The driver converts the Lua side value to zero-based
ForgeDirection. - Values outside
1..6raiseside needs to be between 1 and 6.
- The driver converts the Lua side value to zero-based
- Syntax:
setIOMode(side: number, mode: string) - Purpose: Change the IO mode of one side.
- Parameters:
side: side index from1to6.mode: one ofnone,pull,push,push_pull,disabled.
- Returns:
- No useful return value on success.
- Usage notes:
- Invalid side values raise
side needs to be between 1 and 6. - Invalid mode values raise
No valid IO mode given.
- Invalid side values raise
- Syntax:
io_modes - Purpose: Return the list of supported IO modes.
- Returns:
- An indexed Lua table containing
none,pull,push,push_pull, anddisabled.
- An indexed Lua table containing
power_monitor is exposed on Ender IO power monitor blocks.
- Syntax:
getPowerInConduits(): number - Purpose: Return the energy currently stored in the conduit network.
- Syntax:
getMaxPowerInConduits(): number - Purpose: Return the maximum energy the conduit network can store.
- Syntax:
getPowerInCapBanks(): number - Purpose: Return the energy currently stored in connected capacitor banks.
- Syntax:
getMaxPowerInCapBanks(): number - Purpose: Return the maximum energy connected capacitor banks can store.
- Syntax:
getPowerInMachines(): number - Purpose: Return the energy currently stored in connected machines.
- Syntax:
getMaxPowerInMachines(): number - Purpose: Return the maximum energy connected machines can store.
- Syntax:
getAverageEnergySent(): number - Purpose: Return the recent average energy sent value.
- Syntax:
getAverageEnergyReceived(): number - Purpose: Return the recent average energy received value.
- Syntax:
isEngineControlEnabled(): boolean - Purpose: Return whether Engine Control is enabled.
- Syntax:
setEngineControlEnabled(control: boolean) - Purpose: Enable or disable Engine Control.
- Parameters:
control: desired Engine Control state.
- Returns:
- No useful return value on success.
- Usage notes:
- The ComputerCraft-side error string mistakenly says
first argument needs to be a number, but the actual required type is still boolean.
- The ComputerCraft-side error string mistakenly says
- Syntax:
getStartLevel(): number - Purpose: Return the level at which the monitor starts emitting redstone.
- Syntax:
setStartLevel(level: number) - Purpose: Change the level at which the monitor starts emitting redstone.
- Parameters:
level: new threshold value.
- Returns:
- No useful return value on success.
- Usage notes:
- The driver stores the number as a float.
- Syntax:
getStopLevel(): number - Purpose: Return the level at which the monitor stops emitting redstone.
- Syntax:
setStopLevel(level: number) - Purpose: Change the level at which the monitor stops emitting redstone.
- Parameters:
level: new threshold value.
- Returns:
- No useful return value on success.
- Usage notes:
- The driver stores the number as a float.
power_storage is exposed on generic Ender IO power-storage tiles implementing IPowerStorage.
- Syntax:
getMaxInput(): number - Purpose: Return the maximum accepted input rate.
- Syntax:
getMaxOutput(): number - Purpose: Return the maximum output rate.
- Syntax:
getEnergyStored(): number - Purpose: Return the currently stored energy amount.
- Syntax:
getMaxEnergyStored(): number - Purpose: Return the maximum stored energy capacity.
- These callbacks are read-only.
- The OC driver class internally names its environment like a capacitor-bank component in one path, but the exposed component family documented here is the generic power-storage API.
redstone_tile is exposed on Ender IO tiles implementing generic redstone mode control.
- Syntax:
getRedstoneMode(): string - Purpose: Return the current redstone control mode.
- Syntax:
setRedstoneMode(mode: string) - Purpose: Change the redstone control mode.
- Parameters:
mode: one ofignore,on,off,never.
- Returns:
- No useful return value on success.
- Usage notes:
- Invalid values raise
No valid Redstone mode given.
- Invalid values raise
- Syntax:
redstone_modes - Purpose: Return the list of supported redstone modes.
- Returns:
- An indexed Lua table containing
ignore,on,off, andnever.
- An indexed Lua table containing
telepad is exposed on Ender IO telepads.
- Syntax:
getX(): number - Purpose: Return the configured target X coordinate.
- Usage notes:
- The callback requires the telepad to be part of a valid telepad network and otherwise raises
telepad is not a valid structure.
- The callback requires the telepad to be part of a valid telepad network and otherwise raises
- Syntax:
getY(): number - Purpose: Return the configured target Y coordinate.
- Usage notes:
- The callback requires a valid telepad structure.
- Syntax:
getZ(): number - Purpose: Return the configured target Z coordinate.
- Usage notes:
- The callback requires a valid telepad structure.
- Syntax:
getCoords(): number, number, number - Purpose: Return the configured target coordinates.
- Usage notes:
- The callback requires a valid telepad structure.
- Syntax:
getDimension(): number - Purpose: Return the configured target dimension ID.
- Usage notes:
- The callback requires a valid telepad structure.
- Syntax:
setX(x: number): number | nil, string? - Purpose: Change the target X coordinate.
- Parameters:
x: new target X coordinate.
- Returns:
- The new X coordinate on success.
nil, "not enabled in config"when coordinate editing is disabled by config.
- Usage notes:
- The callback requires a valid telepad structure.
- Syntax:
setY(y: number): number | nil, string? - Purpose: Change the target Y coordinate.
- Parameters:
y: new target Y coordinate.
- Returns:
- The new Y coordinate on success.
nil, "not enabled in config"when coordinate editing is disabled by config.
- Usage notes:
- The callback requires a valid telepad structure.
- Syntax:
setZ(z: number): number | nil, string? - Purpose: Change the target Z coordinate.
- Parameters:
z: new target Z coordinate.
- Returns:
- The new Z coordinate on success.
nil, "not enabled in config"when coordinate editing is disabled by config.
- Usage notes:
- The callback requires a valid telepad structure.
- Syntax:
setCoords(x: number, y: number, z: number): number, number, number | nil, string? - Purpose: Change all target coordinates in one call.
- Parameters:
x,y,z: new target coordinates.
- Returns:
- The new
x, y, zon success. nil, "not enabled in config"when coordinate editing is disabled by config.
- The new
- Usage notes:
- The callback requires a valid telepad structure.
- Syntax:
setDimension(dimension: number): number | nil, string? - Purpose: Change the target dimension ID.
- Parameters:
dimension: new dimension ID.
- Returns:
- The new dimension ID on success.
nil, "not enabled in config"when dimension editing is disabled by config.
- Usage notes:
- The callback requires a valid telepad structure.
- Syntax:
teleport() - Purpose: Activate the telepad and teleport valid entities.
- Returns:
- No useful return value on success.
- Usage notes:
- The OC driver checks that the telepad is a valid structure before teleporting and otherwise raises
telepad is not a valid structure.
- The OC driver checks that the telepad is a valid structure before teleporting and otherwise raises
- Syntax:
isValid(): boolean - Purpose: Return whether the telepad is currently part of a valid telepad network.
dimensional_transceiver is exposed on Ender IO transceivers.
- Syntax:
getSendChannels(channelType: string): table - Purpose: Return the channels this transceiver currently sends to for the specified type.
- Parameters:
channelType: one ofpower,item,fluid,rail.
- Returns:
- An indexed Lua table of channel names.
- Usage notes:
- Invalid channel types raise
No valid channel type given.
- Invalid channel types raise
- Syntax:
setSendChannel(channelType: string, name: string, shouldSend: boolean): boolean - Purpose: Add or remove one send channel from the local transceiver configuration.
- Parameters:
channelType: one ofpower,item,fluid,rail.name: channel name.shouldSend:trueto add the channel,falseto remove it.
- Returns:
truewhen the requested change was applied.falsewhen the named channel could not be found in the relevant source list.
- Syntax:
getReceiveChannels(channelType: string): table - Purpose: Return the channels this transceiver currently receives from for the specified type.
- Parameters:
channelType: one ofpower,item,fluid,rail.
- Returns:
- An indexed Lua table of channel names.
- Usage notes:
- Invalid channel types raise
No valid channel type given.
- Invalid channel types raise
- Syntax:
setReceiveChannel(channelType: string, name: string, shouldReceive: boolean): boolean - Purpose: Add or remove one receive channel from the local transceiver configuration.
- Parameters:
channelType: one ofpower,item,fluid,rail.name: channel name.shouldReceive:trueto add the channel,falseto remove it.
- Returns:
truewhen the requested change was applied.falsewhen the named channel could not be found in the relevant source list.
- Syntax:
addChannel(channelType: string, name: string): boolean - Purpose: Add a public channel to the global registry.
- Parameters:
channelType: one ofpower,item,fluid,rail.name: channel name.
- Returns:
truewhen the channel was created.falsewhen a channel with the same name already exists for that type, or the type cannot be resolved.
- Syntax:
removeChannel(channelType: string, name: string): boolean - Purpose: Remove a public channel from the global registry.
- Parameters:
channelType: one ofpower,item,fluid,rail.name: channel name.
- Returns:
truewhen the channel was removed.falsewhen no matching channel exists.
- Syntax:
isChannelExisting(channelType: string, name: string): boolean - Purpose: Return whether a public channel currently exists.
- Syntax:
getChannels(channelType: string): table - Purpose: Return every public channel registered for the specified type.
- Returns:
- An indexed Lua table of channel names.
- Syntax:
isSendChannel(channelType: string, name: string): boolean - Purpose: Return whether this transceiver is configured to send to the specified channel.
- Syntax:
isReceiveChannel(channelType: string, name: string): boolean - Purpose: Return whether this transceiver is configured to receive from the specified channel.
- Syntax:
channel_types - Purpose: Return the list of available channel types.
- Returns:
- An indexed Lua table containing
power,item,fluid, andrail.
- An indexed Lua table containing
vacuum_chest is exposed on Ender IO vacuum chests.
- Syntax:
getRange(): number - Purpose: Return the current vacuum range.
- Syntax:
setRange(range: number) - Purpose: Change the vacuum range.
- Parameters:
range: new range value.
- Returns:
- No useful return value on success.
weather_obelisk is exposed on Ender IO weather obelisks.
- Syntax:
canActivate(task: number): boolean[, string] - Purpose: Return whether the specified weather task can currently start.
- Parameters:
task: numeric weather mode ID.
- Returns:
trueorfalsefor valid mode IDs.false, "invalid weather mode. needs to be between 1 and N"for out-of-range IDs.
- Usage notes:
- The supported modes are exposed through
weather_modes.
- The supported modes are exposed through
- Syntax:
activate(): boolean - Purpose: Attempt to start a weather task immediately.
- Returns:
truewhen a task starts successfully.falsewhen a task is already active or the current prerequisites are not met.
- Usage notes:
- The obelisk needs the required fluid, a firework, no active task, and no cooldown before it can start a task.
- Syntax:
weather_modes - Purpose: Return the mapping of weather mode names to numeric IDs.
- Returns:
- A Lua table containing:
clear = 1rain = 2storm = 3
- A Lua table containing:
local component = require("component")
if component.isAvailable("capacitor_bank") then
local bank = component.capacitor_bank
print("Cap bank input mode:", bank.getInputMode())
print("Average change:", bank.getAverageChangePerTick())
end
if component.isAvailable("telepad") then
local telepad = component.telepad
if telepad.isValid() then
local x, y, z = telepad.getCoords()
print("Telepad target:", x, y, z, "dim", telepad.getDimension())
end
endopencomputers-redstone-vanillacomputronics