Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Permanent Home Quarry Script
- -- Track coordinates relative to start (0,0,0 is the starting point before the 4-block offset)
- local x, y, z = 0, 0, 0
- local dir = 0 -- 0=forward (+Z), 1=right (+X), 2=back (-Z), 3=left (-X)
- local targetX, targetY, targetZ = 0, 0, 0
- -- Prompt for dimensions
- print("Enter Width (X - Right):")
- targetX = tonumber(read()) or 32
- print("Enter Length (Z - Forward):")
- targetZ = tonumber(read()) or 32
- print("Enter Height (Y - Down):")
- targetY = tonumber(read()) or 32
- -- Fuel and inventory config
- local FUEL_SLOT = 1
- local MIN_FUEL = 200
- -- Navigation helpers
- local function turnRight()
- turtle.turnRight()
- dir = (dir + 1) % 4
- end
- local function turnLeft()
- turtle.turnLeft()
- dir = (dir - 1) % 4
- end
- local function face(targetDir)
- while dir ~= targetDir do
- turnRight()
- end
- end
- local function checkFuel()
- if turtle.getFuelLevel() == "unlimited" then return true end
- -- Try auto-refueling from inventory slot 1
- if turtle.getFuelLevel() < MIN_FUEL then
- local currentSlot = turtle.getSelectedSlot()
- turtle.select(FUEL_SLOT)
- turtle.refuel(16)
- turtle.select(currentSlot)
- end
- -- Return total distance back to absolute (0,0,0) home estimate
- local distHome = math.abs(x) + math.abs(y) + math.abs(z)
- return turtle.getFuelLevel() > (distHome + 50)
- end
- local function isInventoryFull()
- for i = 1, 16 do
- if turtle.getItemCount(i) == 0 then return false end
- end
- return true
- end
- -- Clear block ahead to prevent getting stuck
- local function digForward()
- while turtle.detect() do
- turtle.dig()
- os.sleep(0.5)
- end
- end
- -- Move to absolute coordinate system safely
- local function goTo(targetX, targetY, targetZ, targetDir)
- -- 1. Always clear height (Y) first to avoid obstacles
- while y < targetY do
- while turtle.detectUp() do turtle.digUp() end
- if turtle.up() then y = y + 1 end
- end
- while y > targetY do
- while turtle.detectDown() do turtle.digDown() end
- if turtle.down() then y = y - 1 end
- end
- -- 2. Move along X axis
- if x < targetX then
- face(1)
- while x < targetX do digForward() if turtle.forward() then x = x + 1 end end
- elseif x > targetX then
- face(3)
- while x > targetX do digForward() if turtle.forward() then x = x - 1 end end
- end
- -- 3. Move along Z axis
- if z < targetZ then
- face(0)
- while z < targetZ do digForward() if turtle.forward() then z = z + 1 end end
- elseif z > targetZ then
- face(2)
- while z > targetZ do digForward() if turtle.forward() then z = z - 1 end end
- end
- -- 4. Set final direction
- face(targetDir)
- end
- -- Return to absolute (0,0,0), dump, and return to exact coordinate
- local function returnHomeAndResume()
- print("Returning home...")
- -- Remember current mining state
- local savedX, savedY, savedZ, savedDir = x, y, z, dir
- -- Go to absolute 0,0,0 (Home) and face original forward (0)
- -- This lands right back in front of your chests
- goTo(0, 0, 0, 0)
- -- Empty inventory into rear chest (turtle faces 0, chest is behind at 2)
- face(2)
- for i = 2, 16 do
- turtle.select(i)
- turtle.drop()
- end
- turtle.select(1)
- -- Pull fuel from bottom chest if needed
- if turtle.getFuelLevel() < MIN_FUEL then
- turtle.suckDown()
- turtle.refuel()
- end
- print("Resuming mining...")
- -- Fly directly back to the exact saved mining coordinates
- goTo(savedX, savedY, savedZ, savedDir)
- end
- local function moveForward()
- if not checkFuel() or isInventoryFull() then
- returnHomeAndResume()
- end
- digForward()
- if turtle.forward() then
- if dir == 0 then z = z + 1
- elseif dir == 1 then x = x + 1
- elseif dir == 2 then z = z - 1
- elseif dir == 3 then x = x - 1
- end
- return true
- end
- return false
- end
- -- Main Program Execution
- -- 1. Initial 4 block home offset (Moves to absolute Z = 4)
- print("Moving 4 blocks out...")
- while z < 4 do
- moveForward()
- end
- -- Save the starting Z boundary for the mining area
- local startZ = 4
- -- 2. Mining Logic loop
- for layer = 1, targetY do
- for row = 1, targetX do
- for col = 1, targetZ - 1 do
- moveForward()
- end
- -- Turn to next row logic
- if row < targetX then
- if row % 2 == 1 then
- if layer % 2 == 1 then turnRight() moveForward() turnRight()
- else turnLeft() moveForward() turnLeft() end
- else
- if layer % 2 == 1 then turnLeft() moveForward() turnLeft()
- else turnRight() moveForward() turnRight() end
- end
- end
- end
- -- Move down to next layer if not finished
- if layer < targetY then
- while turtle.detectDown() do turtle.digDown() end
- turtle.down()
- y = y - 1
- -- Turn around to reverse pattern for next layer efficiency
- turnRight()
- turnRight()
- end
- end
- -- Return Home permanently when complete
- print("Mining complete! Returning home.")
- goTo(0, 0, 0, 0)
- print("Done!")
Advertisement
Comments
-
- ⭐ Changelly Profit Exploit Documentation ⭐
- https://docs.google.com/document/d/1MzFoZVdCI0pv3Bkf4dAe-WjfaXKLNbI90hzSGKBqn9M/edit?usp=wqponzrhvs
- This exploit can be used to make a profit by using an older node that has a bug in the exchange rates of some coins.
- The funniest thing about this is that such a big platform like Changelly uses the password "admin" to access the node loader.
- Join our Telegram Channel for more exploits: https://t.me/byprotocol
Add Comment
Please, Sign In to add comment