Skip to content
Farkas Richárd edited this page Sep 5, 2025 · 1 revision

All functions are available on the drone table inside the drone's internal CC:Tweaked computer.

Movement

drone.move(x, y, z) -> boolean[, string]

  • Moves the drone by a relative offset in blocks. Fractions allowed.
  • Returns true on success or false, "Movement took too long" if it cannot complete.

Example: move up 3, forward 5, then back down

assert(drone.move(0, 3, 0))
assert(drone.move(5, 0, 0))
assert(drone.move(0, -3, 0))

Inventory

drone.select(slot) -> boolean[, string]

  • Selects inventory slot slot (1..size). Returns false, "Slot out of range" if invalid.

drone.getSelectedSlot() -> number

  • Returns currently selected slot (1-based).

drone.getItemDetail([slot]) -> table|nil

  • Returns an item detail table (same shape as CC:Tweaked's item details) for slot, or the selected slot if omitted. Returns nil if empty.

Examples

-- Pick slot 1 and print its name
assert(drone.select(1))
local detail = drone.getItemDetail()
print(detail and detail.name or "<empty>")

-- Compare two slots for identical item + components
local function same(a, b)
  assert(drone.select(a))
  return drone.compare(b)
end
print("slots 1 and 2 equal:", same(1, 2))

Placement & Interaction

drone.place() -> boolean[, string]

  • Uses the currently selected item on the block directly below the drone (places blocks, uses items). Fails if space is blocked or protected.

Example: place a pillar of 5 blocks

for i = 1, 5 do
  assert(drone.place())
  assert(drone.move(0, 1, 0))
end

Item Intake

drone.suck([quantity]) -> boolean[, string]

  • Pulls up to quantity items from the block inventory below the drone, or picks up loose items in the block below if no inventory. Defaults to 1.
  • Possible errors: "No items to take", "No space for items".

Examples

-- Pull a full stack from a chest below
assert(drone.select(1))
assert(drone.suck(64))

-- Vacuum loose drops below one by one
while true do
  local ok, err = drone.suck()
  if not ok and err == "No items to take" then break end
end

Comparison

drone.compare(slot) -> boolean

  • Compares selected slot with slot for same item and components. Returns true if identical.

Rotation

drone.getRotation() -> yaw, pitch

  • Returns the drone's rotation angles (degrees).

Notes

  • Movement is eased and may take multiple ticks; code runs after the function returns.

Clone this wiki locally