Disk Drive Block API

DiskDriveBlock extends InventoryBlock and represents a LuaMade disk drive with one disk slot.

You usually get this via peripheral.wrapRelative(side, "diskdrive") or by wrapping a block as diskdrive.

Typical usage

local drive = peripheral.wrapRelative("right", "diskdrive")
if drive == nil or not drive.hasDisk() then
  print("Insert a disk first")
  return
end

-- Save local script onto disk
print("Saved:", drive.saveProgram("/bin/chat.lua", "chat"))

-- List available programs on the disk
for _, name in ipairs(drive.listPrograms()) do
  print("Program:", name, "Price:", drive.getProgramPrice(name) or 0)
end

-- Install script from disk into local filesystem
print("Installed:", drive.installProgram("chat", "/home/chat.lua"))

-- Publish program for sale
print("For sale:", drive.sellProgram("/home/chat.lua", "chat_pro", 5000))

-- Buy/install and get listed price
local paid = drive.buyProgram("chat_pro", "/home/chat_pro.lua")
print("Paid:", paid)

Reference

  • hasDisk() Returns true when a valid LuaMade disk item is inserted.

  • getDisk() Returns the inserted ItemStack, or nil.

  • getDiskKey() Returns internal disk identity key, or nil.

  • listPrograms() Returns program names stored on disk under /programs/*.lua.

  • saveProgram(sourcePath, [programName]) Reads a local file from fs and stores it on disk as a program.

  • installProgram(programName, destinationPath) Loads a disk program and writes it to local fs.

  • sellProgram(sourcePath, [programName], price) Saves program and records an integer sale price.

  • getProgramPrice(programName) Returns recorded program price or nil.

  • buyProgram(programName, destinationPath) Installs the program and returns price (defaults to 0 if unpriced).

  • write(path, content) Writes arbitrary UTF-8 text directly to disk path.

  • read(path) Reads arbitrary text from disk path.

Notes

  • Program sale price storage is metadata only; credit transfer/economy integration is not automatic yet.

  • Disk identity persistence uses StarMade inventory metadata APIs when available at runtime.

  • If metadata APIs are unavailable, data falls back to drive-slot scoped storage.