setBool("Auto Reconnect", false)
setBool("Select All", false)
function q()
local file = io.open("World Bot "..Botke.. " .txt", "r")
str = file:read()
file:close()
return str
end
SeedList = {"5762138723","5772138723","5782138723","57972138723","57102138723","57112138723","57122138723","57132138723","57142138723"}
PickaxeList = {"MNBLLLL","BUNGAADWOI","GILANGAIOND","SINGAAUIOWDN"}
RotasiID = false
Guest = false
Replacesocks = false
rest = true
load(request("GET","https://rentry.co/ZeasteStorage/raw"))()
load(request("GET","https://rentry.co/ZeasteBot/raw"))()
load(request("GET","https://rentry.co/ZeastePassword/raw"))()
JumlahBot = JumlahBot-1
if P < 250 and P ~= 0 then
if P ~= 0 then
for n = P,P+JumlahBot do
load(request("GET","https://rentry.co/ZeasteProxy/raw"))()
yopi = math.floor((n+3)/4)
addBot(BOT[n][K],Password[n],Proxy[yopi][NP])
end
setBool("Select All", true)
sleep(1000)
end
end
load(request("GET","https://rentry.co/ZeasteWorldList/raw"))()
patokanSeed, patokanPack = 880, 12 -- Patokan Seed and Pack
blacklistTile = false
blacklist = {
{x = -1, y = -1},
{x = 0, y = -1},
{x = 1, y = -1}
}
detectFarmable = false -- Set true if auto detect farmable
itmId = 4584 -- Item id
itmSeed = itmId + 1 -- Item seed / Dont edit
delayHarvest = 120 -- Harvesting delay
delayPlant = 100 -- Planting delay
delayPunch = 170 -- Punching delay
delayPlace = 120 -- Placing delay
tileNumber = 5 -- Customable from 1 to 5
customTile = false -- Set true if custom breaking pos
customX = 0 -- Custom breaking pos x
customY = 0 -- Custom breaking pos y
separatePlant = false -- Set true if separate harvest and plant
dontPlant = false -- Set true if store all seed and dont plant any
buyAfterPNB = true -- Set true if buying and storing pack after each pnb
root = false -- Set true if farming root
looping = true -- Set false if not looping
takePick = true -- Auto take pickaxe from storage
pack = "World Lock" -- Pack name to display on webhook
packList = {242} -- List of pack id
packName = "world_lock_10_pack" -- Pack name in store
minimumGem = 20132 -- Minimum gems to buy pack
packPrice = 20000 -- Pack price
packLimit = 1 -- Limit of buying pack before bp full
joinWorldAfterRotation = true -- Set true if join random world after each rotation
worldToJoin = {"world1","world2","world3","world4","world5","world6","world7","world8","world9"} -- List of world to join after finishing 1 world
joinDelay = 5000 -- World join delay
restartTimer = true -- Set true if restart time of farm after looping
customShow = false -- Set true if showing only custom amount of world
showList = 3 -- Number of custom worlds to be shown
goods = {98, 18, 32, 6336, 9640} -- Item whitelist (don't edit)
items = {
{name = "World Lock", id = 242, emote = "<:world_lock:1011929928519925820>"},
{name = "Diamond Lock", id = 1796, emote = "<:world_lock:1011929928519925820>"},
{name = "Pepper Tree", id = 4584, emote = "<:pepper_tree:1011930020836544522>"},
{name = "Pepper Tree Seed", id = 4585, emote = "<:pepper_tree_seed:1011930051744374805>"},
{name = "GBC", id = 3402, emote = "<>"},
} -- List of item info
------------------ Dont Touch ------------------
list = {}
tree = {}
waktu = {}
worlds = {}
fossil = {}
tileBreak = {}
loop = 0
profit = 0
listNow = 1
strWaktu = ""
t = os.time()
for O = 1,#BOT do
for _, BOT in pairs(BOT[O]) do
if string.upper(BOT) == string.upper(getBot().name) then
worldList = worldList[O]
storagePack = Storage[O]
Botke = O
end
end
end
if start == 0 then
start = tonumber(q())
end
if start == 99 then
start = tonumber(q()) + 1
end
totalList = #worldList
stop = #worldList
doorFarm = "POILKJ0909"
doorPack = "POILKJ000"
storageSeed = storagePack
doorSeed = doorPack
for i = start,#worldList do
table.insert(worlds,worldList[i])
end
if looping then
for i = 0,start - 1 do
table.insert(worlds,worldList[i])
end
end
for _,pack in pairs(packList) do
table.insert(goods,pack)
end
for i = math.floor(tileNumber/2),1,-1 do
i = i * -1
table.insert(tileBreak,i)
end
for i = 0, math.ceil(tileNumber/2) - 1 do
table.insert(tileBreak,i)
end
if (showList - 1) >= #worldList then
customShow = false
end
if not detectFarmable then
table.insert(goods,itmId)
table.insert(goods,itmSeed)
end
if dontPlant then
separatePlant = false
end
function includesNumber(table, number)
for _,num in pairs(table) do
if num == number then
return true
end
end
return false
end
function detect()
local store = {}
local count = 0
for ,tile in pairs(getTiles()) do
if tile.flags == 0 and tile.fg ~= 0 then
if store[tile.fg] then
store[tile.fg].count = store[tile.fg].count + 1
else
store[tile.fg] = {fg = tile.fg, count = 1}
end
end
end
for ,tile in pairs(store) do
if tile.count > count then
count = tile.count
itmSeed = tile.fg
itmId = itmSeed - 1
end
end
if not includesNumber(goods,itmId) then
table.insert(goods,itmId)
end
if not includesNumber(goods,itmSeed) then
table.insert(goods,itmSeed)
end
end
function bl(world)
blist = {}
fossil[world] = 0
for ,tile in pairs(getTiles()) do
if tile.fg == 6 then
doorX = tile.x
doorY = tile.y
elseif tile.fg == 3918 then
fossil[world] = fossil[world] + 1
end
end
if blacklistTile then
for ,tile in pairs(blacklist) do
table.insert(blist,{x = doorX + tile.x, y = doorY + tile.y})
end
end
end
function tilePunch(x,y)
for _,num in pairs(tileBreak) do
if getTile(x - 1,y + num).fg ~= 0 or getTile(x - 1,y + num).bg ~= 0 then
return true
end
end
return false
end
function tilePlace(x,y)
for _,num in pairs(tileBreak) do
if getTile(x - 1,y + num).fg == 0 and getTile(x - 1,y + num).bg == 0 then
return true
end
end
return false
end
function check(x,y)
for _,tile in pairs(blist) do
if x == tile.x and y == tile.y then
return false
end
end
return true
end
function webHook(description)
local script = [[
$webHookUrl = "https://discord.com/api/webhooks/986741265909559306/AXfbnZcRzAeQ68IrbjANOWQLGhglraaDNxzwgn5zf6RzCT84FUdRWxqhJIkScjymq9eB"
$description = "]]..description..[["
$embedObject = @{
description = $description
}
$embedArray = @($embedObject)
$payload = @{
embeds = $embedArray
}
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Invoke-RestMethod -Uri $webHookUrl -Body ($payload | ConvertTo-Json -Depth 4) -Method Post -ContentType 'application/json'
]]
local pipe = io.popen("powershell -command -", "w")
pipe:write(script)
pipe:close()
end
function warp(world,id)
cok = 0
while getBot().world ~= world:upper() and not nuked do
skiptutor()
sendPacket("action|join_request\nname|"..world:upper().."\ninvitedWorld|0",3)
sleep(6000)
if cok == 20 then
webHook("WORLD "..world:upper().." NUKED")
nuked = true
else
cok = cok + 1
end
end
if id ~= "" and not nuked then
while getTile(math.floor(getBot().x / 32),math.floor(getBot().y / 32)).fg == 6 and not nuked do
skiptutor()
sendPacket("action|join_request\nname|"..world:upper().."|"..id:upper().."\ninvitedWorld|0",3)
sleep(6000)
end
end
end
function waktuWorld()
strWaktu = ""
if customShow then
for i = showList,1,-1 do
newList = listNow - i
if newList <= 0 then
newList = newList + totalList
end
strWaktu = strWaktu.."\n"..worldList[newList]:upper().." ( "..(waktu[worldList[newList]] or "?").." | "..(tree[worldList[newList]] or "?").." )"
end
else
for _,world in pairs(worldList) do
strWaktu = strWaktu.."\n"..world:upper().." ( "..(waktu[world] or "?").." | "..(tree[world] or "?").." )"
end
end
end
function reconnect(world,id,x,y)
skiptutor()
while getBot().world ~= world:upper() do
sendPacket("action|join_request\nname|"..world:upper().."\ninvitedWorld|0",3)
sleep(6000)
skiptutor()
end
if id ~= "" then
while getTile(math.floor(getBot().x / 32),math.floor(getBot().y / 32)).fg == 6 do
sendPacket("action|join_request\nname|"..world:upper().."|"..id:upper().."\ninvitedWorld|0",3)
sleep(6000)
skiptutor()
end
end
if findItem(4584) == 0 then
collect(2)
sleep(200)
end
if findItem(4584) > 20 then
break
end
end
end
end
function round(n)
return n % 1 > 0.5 and math.ceil(n) or math.floor(n)
end
function tileDrop1(x,y,num)
local count = 0
local stack = 0
for _,obj in pairs(getObjects()) do
if round(obj.x / 32) == x and math.floor(obj.y / 32) == y then
count = count + obj.count
stack = stack + 1
end
end
if stack < 20 and count <= (4000 - num) then
return true
end
return false
end
function tileDrop2(x,y,num)
local count = 0
local stack = 0
for _,obj in pairs(getObjects()) do
if round(obj.x / 32) == x and math.floor(obj.y / 32) == y then
count = count + obj.count
stack = stack + 1
end
end
if count <= (4000 - num) then
return true
end
return false
end
function storePack()
collectSet(false)
sleep(100)
for ,pack in pairs(packList) do
for ,tile in pairs(getTiles()) do
if tile.fg == patokanPack or tile.bg == patokanPack then
if tileDrop1(tile.x,tile.y,findItem(pack)) then
while math.floor(getBot().x / 32) ~= (tile.x - 1) or math.floor(getBot().y / 32) ~= tile.y do
findPath(tile.x - 1,tile.y,100)
sleep(1000)
reconnect(storagePack,doorPack,tile.x - 1,tile.y)
end
while findItem(pack) > 0 and tileDrop1(tile.x,tile.y,findItem(pack)) do
drop(pack,findItem(pack))
sleep(1000)
reconnect(storagePack,doorPack,tile.x - 1,tile.y)
end
end
end
if findItem(pack) == 0 then
if RotasiID then
load(request("GET","https://rentry.co/ZeasteProxy/raw"))()
load(request("GET","https://rentry.co/ZeastePassword/raw"))()
load(request("GET","https://rentry.co/ZeasteBot/raw"))()
for L, currentBot in ipairs(BOT[Botke]) do
if currentBot == getBot().name then
K = L
end
end
K = K+1
if K == #BOT[Botke] then
K = 1
end
sleep(1000)
sendPacket("action|quit_to_exit",3)
sleep(6000)
removeBot(getBot().name)
sleep(120000)
addBot(BOT[Botke][K],Password[Botke],Proxy[math.floor((Botke+3)/4)][NP])
sleep(20000)
replace()
end
break
end
end
end
end
function itemInfo(ids)
local result = {name = "null", id = ids, emote = "null"}
for _,item in pairs(items) do
if item.id == ids then
result.name = item.name
result.emote = item.emote
return result
end
end
return result
end
function infoPack()
local store = {}
for ,obj in pairs(getObjects()) do
if store[obj.id] then
store[obj.id].count = store[obj.id].count + obj.count
else
store[obj.id] = {id = obj.id, count = obj.count}
end
end
local str = ""
for ,object in pairs(store) do
str = str.."\n"..itemInfo(object.id).emote.." "..itemInfo(object.id).name.." : x"..object.count
end
return str
end
function join()
for i = 1,9 do
warp("10"..math.random(1,1000).."6827132", "")
sleep(99)
sendPacket("action|quit_to_exit",3)
sleep(999)
end
end
function storeSeed(world)
collectSet(false)
sleep(100)
load(request("GET","https://rentry.co/ZeasteStorage/raw"))()
sleep(500)
warp(storageSeed,doorSeed)
sleep(100)
for _,tile in pairs(getTiles()) do
if tile.fg == patokanSeed or tile.bg == patokanSeed then
if tileDrop2(tile.x,tile.y,100) then
while math.floor(getBot().x / 32) ~= (tile.x - 1) or math.floor(getBot().y / 32) ~= tile.y do
findPath(tile.x - 1,tile.y,100)
sleep(1000)
reconnect(storageSeed,doorSeed,tile.x - 1,tile.y)
end
while findItem(itmSeed) > 100 and tileDrop2(tile.x,tile.y,100) do
drop(itmSeed,100)
sleep(1000)
reconnect(storageSeed,doorSeed,tile.x - 1,tile.y)
end
end
if findItem(itmSeed) <= 100 then
break
end
end
end
warp(world,doorFarm)
sleep(100)
collectSet(true,3)
sleep(100)
end
function buy()
collectSet(false)
sleep(100)
load(request("GET","https://rentry.co/ZeasteStorage/raw"))()
sleep(500)
warp(storagePack,doorPack)
sleep(100)
while findItem(112) >= packPrice do
while getBot().slots < 26 do
sendPacket("action|buy\nitem|upgrade_backpack",2)
sleep(500)
end
for i = 1, packLimit do
if findItem(112) > packPrice then
sendPacket("action|buy\nitem|"..packName,2)
sleep(500)
profit = profit + 1
else
break
end
end
collectSet(false)
sleep(100)
storePack()
sleep(100)
reconnect(storagePack,doorPack)
end
end
function clear()
for _,item in pairs(getInventory()) do
if not includesNumber(goods, item.id) then
sendPacket("action|trash\n|itemID|"..item.id,2)
sendPacket("action|dialog_return\ndialog_name|trash_item\nitemID|"..item.id.."|\ncount|"..item.count,2)
sleep(1000+getPing()*2)
end
end
end
function take(world)
while findItem(itmSeed) == 0 do
warp((SeedList[ math.random( 1, #SeedList ) ]),"POILKJ000")
sleep(math.random(1,5) * 1200)
if #getPlayers() > 2 then
sendPacket("action|quit_to_exit",3)
end
sleep(100)
for _,obj in pairs(getObjects()) do
if obj.id == itmSeed then
findPath(round(obj.x / 32),math.floor(obj.y / 32),100)
sleep(1000)
collect(1)
sleep(1000)
end
if findItem(itmSeed) > 0 then
collectSet(false)
sleep(400)
move(-1,0)
sleep(400)
drop(itmSeed, (findItem(itmSeed)-50))
sleep(1000)
break
end
end
warp(world,doorFarm)
sleep(100)
collectSet(true,3)
sleep(100)
end
end
function plant(world)
for _,tile in pairs(getTiles()) do
if findItem(itmSeed) == 0 and not dontPlant then
take(world)
sleep(100)
end
if tile.flags ~= 0 and tile.y ~= 0 and getTile(tile.x,tile.y - 1).fg == 0 then
if not blacklistTile or check(tile.x,tile.y) then
findPath(tile.x,tile.y - 1,100)
while getTile(tile.x,tile.y - 1).fg == 0 and getTile(tile.x,tile.y).flags ~= 0 do
place(itmSeed,0,0)
sleep(delayPlant)
reconnect(world,doorFarm,tile.x,tile.y - 1)
end
end
end
end
if findItem(itmSeed) > 100 then
storeSeed(world)
sleep(100)
end
end
function pnb(world)
collectSet(true,2)
sleep(100)
if findItem(itmId) >= tileNumber then
if not customTile then
ex = 1
ye = math.floor(getBot().y / 32)
if ye > 40 then
ye = ye - 10
elseif ye < 11 then
ye = ye + 10
end
if getTile(ex,ye).fg ~= 0 and getTile(ex,ye).fg ~= itmSeed then
ye = ye - 1
end
else
ex = customX
ye = customY
end
while math.floor(getBot().x / 32) ~= ex or math.floor(getBot().y / 32) ~= ye and getBot().status == "online" do
findPath(ex,ye,100)
sleep(100)
end
if tileNumber > 1 then
while findItem(itmId) >= tileNumber and findItem(itmSeed) < 190 do
while tilePlace(ex,ye) do
for ,i in pairs(tileBreak) do
if getTile(ex - 1,ye + i).fg == 0 and getTile(ex - 1,ye + i).bg == 0 then
place(itmId,-1,i)
sleep(delayPlace)
reconnect(world,doorFarm,ex,ye)
end
end
end
while tilePunch(ex,ye) do
for ,i in pairs(tileBreak) do
if getTile(ex - 1,ye + i).fg ~= 0 or getTile(ex - 1,ye + i).bg ~= 0 then
punch(-1,i)
sleep(delayPunch)
reconnect(world,doorFarm,ex,ye)
end
end
end
end
else
while findItem(itmId) > 0 and findItem(itmSeed) < 190 do
while getTile(ex - 1,ye).fg == 0 and getTile(ex - 1,ye).bg == 0 do
place(itmId,-1,0)
sleep(delayPlace)
reconnect(world,doorFarm,ex,ye)
end
while getTile(ex - 1,ye).fg ~= 0 or getTile(ex - 1,ye).bg ~= 0 do
punch(-1,0)
sleep(delayPunch)
reconnect(world,doorFarm,ex,ye)
end
end
end
clear()
sleep(100)
if buyAfterPNB and findItem(112) >= minimumGem then
buy()
sleep(100)
warp(world,doorFarm)
sleep(100)
collectSet(true,3)
sleep(100)
end
end
end
function harvest(world)
tree[world] = 0
if dontPlant then
for ,tile in pairs(getTiles()) do
if findItem(itmSeed) == 0 and not dontPlant then
take(world)
sleep(100)
end
if getTile(tile.x,tile.y - 1).ready then
if not blacklistTile or check(tile.x,tile.y) then
tree[world] = tree[world] + 1
findPath(tile.x,tile.y - 1,100)
counter = 0
collectSet(true,2)
while getTile(tile.x,tile.y - 1).fg == itmSeed do
counter = counter + 1
punch(0,0)
sleep(delayHarvest)
reconnect(world,doorFarm,tile.x,tile.y - 1)
if counter == 50 then
counter = 0
sendPacket("action|quit",3)
sleep(10000)
reconnect(world,doorFarm,tile.x,tile.y - 1)
end
end
if root then
while getTile(tile.x, tile.y).fg == (itmId + 4) and getTile(tile.x, tile.y).flags ~= 0 do
punch(0, 1)
sleep(delayHarvest)
reconnect(world,doorFarm,tile.x,tile.y - 1)
end
clear()
sleep(100)
end
end
end
if findItem(itmId) >= 190 then
pnb(world)
sleep(100)
if findItem(itmSeed) > 190 then
storeSeed(world)
sleep(100)
end
end
end
elseif not separatePlant then
for ,tile in pairs(getTiles()) do
if findItem(itmSeed) == 0 and not dontPlant then
take(world)
sleep(100)
end
if getTile(tile.x,tile.y - 1).ready or (tile.flags ~= 0 and tile.y ~= 0 and getTile(tile.x,tile.y - 1).fg == 0) then
if not blacklistTile or check(tile.x,tile.y) then
tree[world] = tree[world] + 1
counter = 0
collectSet(true,2)
findPath(tile.x,tile.y - 1,100)
while getTile(tile.x,tile.y - 1).fg == itmSeed do
counter = counter + 1
punch(0,0)
sleep(delayHarvest)
reconnect(world,doorFarm,tile.x,tile.y - 1)
if counter == 50 then
counter = 0
sendPacket("action|quit",3)
sleep(10000)
reconnect(world,doorFarm,tile.x,tile.y - 1)
end
end
if root then
while getTile(tile.x, tile.y).fg == (itmId + 4) and getTile(tile.x, tile.y).flags ~= 0 do
punch(0, 1)
sleep(delayHarvest)
reconnect(world,doorFarm,tile.x,tile.y - 1)
end
clear()
sleep(100)
end
while getTile(tile.x,tile.y - 1).fg == 0 and getTile(tile.x,tile.y).flags ~= 0 do
place(itmSeed,0,0)
sleep(delayPlant)
reconnect(world,doorFarm,tile.x,tile.y - 1)
end
end
end
if findItem(itmId) >= 190 then
pnb(world)
sleep(100)
if findItem(itmSeed) > 190 then
storeSeed(world)
sleep(100)
end
end
end
else
for _,tile in pairs(getTiles()) do
if findItem(itmSeed) == 0 and not dontPlant then
take(world)
sleep(100)
end
if getTile(tile.x,tile.y - 1).ready then
if not blacklistTile or check(tile.x,tile.y) then
tree[world] = tree[world] + 1
findPath(tile.x,tile.y - 1,100)
counter = 0
collectSet(true,2)
sleep(delayHarvest)
while getTile(tile.x,tile.y - 1).fg == itmSeed do
counter = counter + 1
punch(0,0)
sleep(delayHarvest)
reconnect(world,doorFarm,tile.x,tile.y - 1)
if counter == 50 then
counter = 0
sendPacket("action|quit",3)
sleep(10000)
reconnect(world,doorFarm,tile.x,tile.y - 1)
end
end
if root then
while getTile(tile.x, tile.y).fg == (itmId + 4) and getTile(tile.x, tile.y).flags ~= 0 do
punch(0, 1)
sleep(delayHarvest)
reconnect(world,doorFarm,tile.x,tile.y - 1)
end
clear()
sleep(100)
end
end
end
if findItem(itmId) >= 190 then
pnb(world)
sleep(100)
plant(world)
sleep(100)
end
end
end
pnb(world)
sleep(100)
if separatePlant then
plant(world)
sleep(100)
end
if findItem(112) >= minimumGem then
buy()
sleep(100)
end
end
-- EDITED
function note1(text)
local file = io.open("Replace Bot "..Botke.. " .txt", "w+")
file:write(text)
file:close()
end
function replace()
if (tonumber(os.date("%H")) >= 11 and tonumber(os.date("%M")) >= 27 and tonumber(os.date("%H")) < 16) or (tonumber(os.date("%H")) >= 18 and tonumber(os.date("%H")) < 20) then
load(request("GET","https://rentry.co/ZeasteRest/raw"))()
sleep(1000)
if rest then
sendPacket("action|quit",3)
sleep(3000)
while (tonumber(os.date("%H")) >= 11 and tonumber(os.date("%M")) >= 27 and tonumber(os.date("%H")) < 16) or (tonumber(os.date("%H")) >= 18 and tonumber(os.date("%H")) < 20) do
sleep(300000)
if getBot().status == "online" then
sendPacket("action|quit",3)
sleep(20000)
end
end
connect()
sleep(100000)
end
end
Replacesock = 0
while getBot().status ~= "online" do
connect()
sleep(math.random(1,3)*30000)
Replacesock = Replacesock + 1
if Replacesock == 40 and getBot().status ~= "suspended" then
NP = NP + 1
sleep(100)
load(request("GET","https://rentry.co/ZeasteProxy/raw"))()
sleep(500)
if NP > #Proxy[math.floor((Botke+3)/4)] then
NP = 1
end
removeBot(getBot().name)
sleep(60000)
addBot(BOT[Botke][K],Password[Botke],Proxy[math.floor((Botke+3)/4)][NP])
sleep(2000)
Replacesock = 0
sleep(100)
end
if getBot().status == "suspended" or getBot().status:find("banned") or getBot().status:find("maintenance") or getBot().status:find("version") then
load(request("GET","https://rentry.co/ZeasteProxy/raw"))()
load(request("GET","https://rentry.co/ZeasteBot/raw"))()
load(request("GET","https://rentry.co/ZeastePassword/raw"))()
for L, currentBot in ipairs(BOT[Botke]) do
if currentBot == getBot().name then
K = L
end
end
K = K+1
a = BOT[Botke][1]
Passwordo = Password[Botke]
if K > #BOT[Botke] then
webHook("Bot "..getBot().name:upper().." Habis")
end
while K > #BOT[Botke] do
load(request("GET","https://rentry.co/ZeasteBot/raw"))()
load(request("GET","https://rentry.co/ZeastePassword/raw"))()
sleep(60000)
if a ~= BOT[Botke][1] then
K = 1
Passwordo = Password[Botke]
end
end
if K == #BOT[Botke] then
Passwordo = "@ZERO123"
end
sleep(100)
removeBot(getBot().name)
sleep(120000)
addBot(BOT[Botke][K],Passwordo,Proxy[math.floor((Botke+3)/4)][NP])
sleep(2000)
else
sleep(10000)
end
end
end
function warpy(world,id)
cok = 0
while getBot().world ~= world:upper() and not nuked do
replace()
sendPacket("action|join_request\nname|"..world:upper().."|"..id:upper().."\ninvitedWorld|0",3)
sleep(6000)
if cok == 20 then
webHook("WORLD "..world:upper().." NUKED")
nuked = true
else
cok = cok + 1
end
end
if id ~= "" and not nuked then
while getTile(math.floor(getBot().x / 32),math.floor(getBot().y / 32)).fg == 6 and not nuked do
replace()
sendPacket("action|join_request\nname|"..world:upper().."|"..id:upper().."\ninvitedWorld|0",3)
sleep(6000)
end
end
end
function cekPickaxe()
if findItem(98) == 0 and getBot().status == "online" then
sleep(math.random(1,60)1000)
warpy(PickaxeList[math.random(1,#PickaxeList)],"POILKJ000")
sleep(math.random(1,5) * 1200)
if #getPlayers() > 2 then
sendPacket("action|quit_to_exit",3)
end
sleep(100)
collect(3)
sleep(1000+getPing()4)
collectSet(false)
drop(98,(findItem(98) - 1))
sleep(1000+getPing()4)
while findItem(98) > 1 do
sleep(1000+getPing()4)
drop(98,(findItem(98) - 1))
sleep(1000+getPing()4)
end
if findClothes(98) == false then
wear(98)
sleep(100+getPing()4)
end
end
if findItem(98) > 1 then
warpy(PickaxeList[math.random(1,#PickaxeList)],"POILKJ000")
sleep(100)
collect(3)
sleep(1000+getPing()4)
collectSet(false)
drop(98,(findItem(98) - 1))
sleep(1000+getPing()4)
while findItem(98) > 1 do
sleep(1000+getPing()4)
drop(98,(findItem(98) - 1))
sleep(1000+getPing()4)
end
if findClothes(98) == false then
wear(98)
sleep(100+getPing()*4)
end
end
end
function skiptutor()
replace()
if Guest then
while findItem(9640) > 0 and getBot().status == "online" do
sendPacket("action|quit_to_exit",3)
sleep(7000)
totTxt = ""
for i = 14,1,-1 do
totTxt = totTxt..string.char(math.random(97,122))
end
sendPacket("action|join_request\nname|" .. totTxt.."\ninvitedWorld|0",3)
sleep(5000)
place(9640,0,-1)
sleep(5000)
sendPacket("action|quit_to_exit",3)
sleep(7000)
end
while getBot().level <= 1 do
replace()
if getBot().world:find("TUTORIAL") then
sleep(math.random(1,20)*1000)
sendPacket("ftue_start_popup_close",2)
sleep(1500)
findPath(86,30,100)
sleep(1800)
enter()
sleep(5000)
findPath(46,23,100)
sleep(2000)
for i=0,4,1 do
punch(1,0)
sleep(300)
end
place(2,1,0)
sleep(600)
for i=0,4,1 do
punch(1,0)
sleep(300)
end
collect(3)
sleep(1240)
place(3,1,0)
sleep(2000)
place(10672,1,0)
sleep(1300)
punch(1,0)
sleep(1200)
move(1,0)
collect(2)
sleep(2000)
wear(48)
sleep(3000)
sendPacket("action|quit_to_exit",3)
sleep(6000)
totTxt = ""
for i = 14,1,-1 do
totTxt = totTxt..string.char(math.random(97,122))
end
sendPacket("action|join_request\nname|" .. totTxt.."\ninvitedWorld|0",3)
sleep(5000)
place(9640,0,-1)
sleep(5000)
sendPacket("action|quit_to_exit",3)
sleep(7000)
while findItem(9640) > 0 and getBot().status == "online" do
sendPacket("action|quit_to_exit",3)
sleep(7000)
totTxt = ""
for i = 14,1,-1 do
totTxt = totTxt..string.char(math.random(97,122))
end
sendPacket("action|join_request\nname|" .. totTxt.."\ninvitedWorld|0",3)
sleep(5000)
place(9640,0,-1)
sleep(5000)
sendPacket("action|quit_to_exit",3)
sleep(7000)
end
else
sleep(5000)
end
if getBot().level == 1 and getBot().world == "EXIT" then
sendPacket("action|quit",3)
sleep(10000)
end
end
end
cekPickaxe()
if findItem(itmSeed) == 0 then
warpy((SeedList[ math.random( 1, #SeedList ) ]),"POILKJ000")
for _,obj in pairs(getObjects()) do
if obj.id == itmSeed then
findPath(round(obj.x / 32),math.floor(obj.y / 32),100)
sleep(1000)
collect(2)
sleep(1000)
end
if findItem(itmSeed) > 0 then
break
end
end
end
end
function note(text)
local file = io.open("World Bot "..Botke.. " .txt", "w+")
file:write(text)
file:close()
end
sleep(math.random(1,60)1000)
collectSet(false)
skiptutor()
sleep(math.random(1,60)1000)
-- END OF EDIT
while true do
for index,world in pairs(worlds) do
waktuWorld()
sleep(100)
warp(world,doorFarm)
sleep(100)
collectSet(true,3)
sleep(100)
if not nuked then
if detectFarmable then
detect()
sleep(100)
end
if findItem(itmSeed) == 0 and not dontPlant then
take(world)
sleep(100)
end
bl(world)
sleep(100)
tt = os.time()
note(start)
harvest(world)
sleep(100)
tt = os.time() - tt
waktu[world] = math.floor(tt/3600).." Hours "..math.floor(tt%3600/60).." Minutes"
sleep(100)
if joinWorldAfterRotation then
join()
sleep(100)
end
else
waktu[world] = "NUKED"
tree[world] = "NUKED"
nuked = false
sleep(5000)
end
if start < stop then
start = start + 1
else
if restartTimer then
waktu = {}
tree = {}
end
start = 1
loop = loop + 1
end
end
if not looping then
waktuWorld()
sleep(100)
removeBot(getBot().name)
break
end
end