Create_ElevatorPulley

An elevator pulley — Create's smart-floor lift. Drives a cabin between floor contacts placed in a column; motion is target-driven (sqrt-decel convergence to currentTarget), not gearshift-driven.

Lua control mirrors the player's options:

Floor identity is owned by the contact peripherals. Use getFloors to enumerate them, or pair with Create_ElevatorContact peripherals on the same column.

isAssembled()Check whether the pulley has assembled a cabin.
assemble()Assemble the pulley's cabin.
disassemble()Disassemble the pulley's cabin.
getOffset()Get the cable's current extension distance, in blocks.
getMaxLength()Get the maximum extension this pulley can reach, in blocks.
getCurrentY()Get the cabin's current world Y coordinate.
getMovementSpeed()Get the cabin's current movement speed in blocks per tick.
isArrived()Check whether the cabin has arrived at its current target floor (within the elevator's tolerance, ~0.
getColumnId()Get the opaque id of this cabin's column, or nil when unassembled.
getCurrentTargetY()Get the Y level the cabin is currently heading to, or nil when no target is selected (e.
getFloors()Get the list of floors on this cabin's column, ordered bottom-to-top.
getCurrentFloor()Get the floor the cabin is currently parked at, or nil if the cabin isn't currently arrived at any known floor (in trans...
getColumnContacts()Get every contact on this cabin's column with its current state.
stop()Halt the cabin at its current Y (sets the target to the current position).
setTargetY(y)Send the cabin to a free-form Y level, regardless of whether a floor contact exists there.
setTargetFloor(y)Send the cabin to the floor at the given world Y.
getLastAssemblyError()Get the last assembly error message, or nil if the last attempt succeeded or no attempt has been made.
getContraption()Get everything known about the assembled contraption in one read: whether it's stalled, its current velocity (world-fram...
size()Get the number of slots in the contraption's combined inventory — every mounted chest, barrel, depot, etc.
list()List every non-empty slot in the contraption's combined inventory.
getItemDetail(slot)Get the item in a specific slot of the contraption's combined inventory.
getItemLimit(slot)Get the maximum number of items a slot in the contraption's combined inventory can hold.
tanks()List every tank in the contraption's combined fluid storage.
getSelfId()Get this block's id.
getSourceId()Get the id of the block immediately driving this one, or nil if this block has no source.
getSubnetworkAnchorId()Get the id of this block's speed-zone anchor — the gearshift / clutch / speed controller / generator that defines the start of this speed zone.
getNetworkId()Get the id of this block's kinetic network.
getKind()Get this block's role on the kinetic graph: one of "generator", "split_shaft", "consumer", or "passthrough".
getSpeed()Get the local rotational speed at this block.
hasSource()Check whether this block is connected to a kinetic source.
isOverstressed()Check whether the block's network is overstressed.
getStressImpact()Get the stress impact of this block on its network — how much stress it draws while running.
getStressContribution()Get this block's contribution to its network's stress capacity.
isAssembled()Source

Check whether the pulley has assembled a cabin.

Returns

  1. boolean True if running.
assemble()Source

Assemble the pulley's cabin. Equivalent to a player right-clicking the pulley with an empty hand while it's stopped. No-op if already assembled.

disassemble()Source

Disassemble the pulley's cabin.

getOffset()Source

Get the cable's current extension distance, in blocks. 0 = cabin at the pulley's level; positive = extended downward.

Returns

  1. number The current offset in blocks.
getMaxLength()Source

Get the maximum extension this pulley can reach, in blocks.

Returns

  1. number The maximum extension.
getCurrentY()Source

Get the cabin's current world Y coordinate.

Returns

  1. number The platform's world Y.
getMovementSpeed()Source

Get the cabin's current movement speed in blocks per tick. Signed: positive descending, negative ascending, 0 stopped.

Returns

  1. number The movement speed.
isArrived()Source

Check whether the cabin has arrived at its current target floor (within the elevator's tolerance, ~0.5 blocks).

Returns

  1. boolean True if arrived.
getColumnId()Source

Get the opaque id of this cabin's column, or nil when unassembled. Matches Create_ElevatorContact.getColumnId() on every contact on the same column — equality-comparable for cross-peripheral grouping. Column resolution touches server-thread-only state.

Returns

  1. string The column id, or nil.
getCurrentTargetY()Source

Get the Y level the cabin is currently heading to, or nil when no target is selected (e.g. just-assembled and idle, or unassembled).

Returns

  1. number The target Y, or nil.
getFloors()Source

Get the list of floors on this cabin's column, ordered bottom-to-top. Each entry is a table {y, short_name, long_name}. Returns nil when unassembled.

Returns

  1. { { [string] = any }... } A list of floor tables, or nil.
getCurrentFloor()Source

Get the floor the cabin is currently parked at, or nil if the cabin isn't currently arrived at any known floor (in transit, parked between floors via setTargetY, or unassembled).

Same shape as one entry of getFloors: {y, short_name, long_name}.

Returns

  1. { [string] = any } The current floor table, or nil.
getColumnContacts()Source

Get every contact on this cabin's column with its current state.

Each entry is a table:

  • y: contact's Y
  • short_name, long_name: floor names
  • calling: this contact is the column's selected target
  • powering: cabin is at this floor right now
  • door_mode: contact's door mode (e.g. all, north, ...)

Returns nil when unassembled or the column is unavailable.

Returns

  1. { { [string] = any }... } A list of contact tables, or nil.
stop()Source

Halt the cabin at its current Y (sets the target to the current position). The cabin decelerates smoothly and parks. Equivalent to setTargetY with getCurrentY; convenience.

setTargetY(y)Source

Send the cabin to a free-form Y level, regardless of whether a floor contact exists there.

The cabin physically moves to that Y using the same target-driven motion the contact system uses. Differences vs. setTargetFloor:

  • No floor contact gets CALLING (no button "lights up").
  • POWERING on arrival fires only if a contact happens to be at the destination Y — door logic triggers accordingly.

Bounded to the cabin's reachable range (minContactY .. maxContactY); throws LuaException if outside.

Parameters

  1. y number The destination Y coordinate.
setTargetFloor(y)Source

Send the cabin to the floor at the given world Y. Equivalent to a redstone pulse on that floor's contact, or a player using an in-cabin Contraption Controls UI to pick the floor.

Parameters

  1. y number The destination floor's Y coordinate.
getLastAssemblyError()Source

Get the last assembly error message, or nil if the last attempt succeeded or no attempt has been made.

Returns

  1. string The error message, or nil.
getContraption()Source

Get everything known about the assembled contraption in one read: whether it's stalled, its current velocity (world-frame blocks/tick — a rate of change, not a location, so it's exempt from the local-only rule below), block count, seat count, hasBlockBreakers (can it destroy blocks in its path, e.g. a saw in cutting mode — relevant context for a stall: is it expected to grind through an obstacle or just sit blocked by one), local bounding box, the local position (an offset from the contraption's own anchor, not a world coordinate) and block id of every block making it up, its active mechanical implements (actors — drills, saws, harvesters, deployers, mechanical arms, mixers, each with disabled/stalled), every seat with whoever's riding it (seats), every entity being carried along without a seat — standing on an elevator cabin, walking a moving platform (riders) — every block supporting right-click interaction while riding (interactors), the actor types currently switched off via the Contraption Controls filter (disabledActorTypes), and mounted-storage counts. Both seats and riders are anonymous by design: an occupant is only isPlayer and its entity type, never a name or UUID.

Anything mounted so it protrudes in the contraption's own direction of travel — a drill facing fore or aft on a gantry carriage, say — will collide with whatever it's moving past on every block of motion, not just once. That reads as a stall repeating at a regular position interval rather than a single jam. On a gantry shaft, Create_GantryShaft.getAxis names that travel axis and shares this method's local coordinate frame exactly, so a block/actor position with only that axis nonzero is the one to suspect.

Returns

  1. any... The contraption table, or nil plus a reason.
size()Source

Get the number of slots in the contraption's combined inventory — every mounted chest, barrel, depot, etc. summed together. 0 when unassembled.

Returns

  1. number The slot count.
list()Source

List every non-empty slot in the contraption's combined inventory. Empty when unassembled.

Returns

  1. { [number] = { [string] = any } } A map of slot to item detail.
getItemDetail(slot)Source

Get the item in a specific slot of the contraption's combined inventory.

Parameters

  1. slot number The slot to inspect.

Returns

  1. { [string] = any } The item detail, or nil if empty.
getItemLimit(slot)Source

Get the maximum number of items a slot in the contraption's combined inventory can hold.

Parameters

  1. slot number The slot to inspect.

Returns

  1. number The item limit.
tanks()Source

List every tank in the contraption's combined fluid storage. Empty when unassembled.

Returns

  1. { [number] = { [string] = any } } A map of tank index to fluid detail.
getSelfId()Source

Get this block's id. Other peripherals' getSourceId or getSubnetworkAnchorId return this same id when they refer to this block.

Returns

  1. string The block's id.
getSourceId()Source

Get the id of the block immediately driving this one, or nil if this block has no source.

Returns

  1. string The parent's id, or nil.
getSubnetworkAnchorId()Source

Get the id of this block's speed-zone anchor — the gearshift / clutch / speed controller / generator that defines the start of this speed zone. Two blocks share an anchor iff they're in the same speed zone. A generator or split-shaft returns its own getSelfId.

Returns

  1. string The anchor block's id, or nil.
getNetworkId()Source

Get the id of this block's kinetic network. Same value for every block on the same network regardless of how many speed zones lie between them. Nil if this block isn't on a network.

Returns

  1. string The network id, or nil.
getKind()Source

Get this block's role on the kinetic graph: one of "generator", "split_shaft", "consumer", or "passthrough".

Returns

  1. string The role string.
getSpeed()Source

Get the local rotational speed at this block. Signed; same value across a speed zone, changes across a split-shaft.

Returns

  1. number The local speed.
hasSource()Source

Check whether this block is connected to a kinetic source.

Returns

  1. boolean True if a source is connected.
isOverstressed()Source

Check whether the block's network is overstressed.

Returns

  1. boolean True if overstressed.
getStressImpact()Source

Get the stress impact of this block on its network — how much stress it draws while running. Speed-dependent; zero for sources and pure conduit blocks. Matches the "Stress Impact" value shown by goggles.

Returns

  1. number The stress impact.
getStressContribution()Source

Get this block's contribution to its network's stress capacity. Non-zero for sources only. Parallel to getStressImpact (per-block draw) and distinct from Create_Stressometer#getStressCapacity, which reports the network total.

Returns

  1. number The per-block stress contribution.