(SUPER) Rotation - Multibot - Script - LCF - by - Grow - King - Scripts - Version - 3.04
(SUPER) Rotation - Multibot - Script - LCF - by - Grow - King - Scripts - Version - 3.04
Proxy_Settings = {
----------------- [ PROXY SETTINGS ] -----------------
--Add proxy
Add_Proxy = "NO", --Options: yes or no
Proxy_List = {--Format: IP:PORT:USERNAME:PASSWORD
"IP:PORT:USERNAME:PASSWORD",
"IP:PORT:USERNAME:PASSWORD",
},
----------------------------------
--Change proxy
Change_Proxy = "NO", --Options: yes or no
Change_Proxy_List = {--Format: IP:PORT:USERNAME:PASSWORD
"IP:PORT:USERNAME:PASSWORD",
"IP:PORT:USERNAME:PASSWORD",
},
Bot_Settings = {
----------------- [ BOT SETTINGS ] -----------------
--Add bot
Total_Bot_Used = 1,
Use_External_Bot_List = "NO", External_Bot_List_Path = "FILE_PATH", --
Options: yes or no | File path
Bot_List = {--Format: BOT|PASSWORD
"BOT|PASSWORD",
"BOT|PASSWORD",
},
----------------------------------
--Change bot
Change_Bot = "NO", --Options: yes or no
Change_Bot_Cooldown = 10, --In minutes
Rotation_Settings = {
----------------- [ ROTATION SETTINGS ] -----------------
--Rotation setting
Use_External_Rotation_World_List = "NO", External_Rotation_World_List_Path =
"FILE_PATH", --Options: yes or no | File path
Rotation_World_List = {--Format: WORLD|DOOR_ID|BLOCK_ID or
WORLD:DOOR_ID:BLOCK_ID [Fill in '-' if you are not using a door id]
"WORLD|DOOR_ID|5666",
"WORLD|DOOR_ID|4584",
},
--Break other world in random world (Bot automatically create new world)
Use_Random_World_For_Break = "YES", Buy_Signal_Jammer = "NO", --Options: yes
or no
--Break other world in the tutorial world (World name must contain the bot name)
Use_Tutorial_World_For_Break = "NO", --Options: yes or no
----------------------------------
--Auto buy setting
Auto_Buy_Pack = "YES", --Options: yes or no
Pack_To_Buy_List = {--Format: PACK_NAME|PACK_PRICE|PACK_ID,PACK_ID,PACK_ID or
PACK_NAME:PACK_PRICE:PACK_ID,PACK_ID,,PACK_ID
"ssp_10_pack|1000|5706",
"surgical_kit|12000|1258, 1260, 1262, 1264, 1266, 1268, 1270, 4296,
4308, 4310, 4312, 4314, 4316, 4318, 9310",
},
Max_Buy_Pack = 10, --Fill in with number
Max_Pack_To_Drop = 170, --Fill in with number [Range: 1 - 170]
----------------------------------
--Auto consume setting [NOTE: To retrieve food item from world storage use the
Equipment_World_List feature]
Auto_Consume = "NO", --Options: yes or no [Must have equipment such as: Eggs
Benedict]
Consume_ID = { 1474 }, --Fill in with item id
--Leveling options:
--Leveling with auto cooking [NOTE: To drop food that has finished cooking use the
Drop_Item_Whitelist feature]
--[*NOTE: To retrieve ingredients item from world storage use the
Equipment_World_List feature]
Set_Food = 1, --Options: 1 = Arroz Con Pollo
Cook_World_List = {--Format: WORLD|DOOR_ID|X_Cook|Y_Cook or
WORLD:DOOR_ID:X_Cook:Y_Cook [Fill in '-' if you are not using a door id]
"WORLD|DOOR_ID|50|23"
},
Auto_Fossil = "NO", --Options: yes or no [*Must have equipment such as: Rock
Hammer, Rock Chisel, and Fossil Brush]
Anti_Fire = "NO", --Options: yes or no [*Must have equipment such as: Fire
Hose]
Anti_Toxic = "YES", --Options: yes or no
Advanced_Settings = {
----------------- [ ADVANCED SETTINGS ] -----------------
--Webhook setting
Use_Webhook = "NO", --Options: yes or no
Edit_Webhook_Message = "NO", --Options: yes or no
Webhook_Link_Bot_Information = {--Format: LINK|MESSAGE_ID
"LINK|0",
"LINK|0",
},
Webhook_Link_Dropped_Item = {--Format: LINK|MESSAGE_ID
"LINK|0",
"LINK|0",
},
Webhook_Link_Reconnect = {--Format: LINK|MESSAGE_ID
"LINK|0",
"LINK|0",
},
--Delay (Minutes)
Maintenance_Cooldown = 20,
Mod_Entered_Cooldown = 10,
----------------------------------
--Preferences
Platform_Used = "WINDOWS", --Options: android, windows, or macos
Max_Block_To_Retrieve = 180, --Fill in with number
Max_Seed_To_Drop = 50, --Fill in with number
Change_Proxy = Proxy_Settings.Change_Proxy:upper()
Change_Proxy_List = Proxy_Settings.Change_Proxy_List
---- [ END PROXY SETTINGS ] ----
function bypassLogon(botIndex)
if Bypass_Logon == "YES" then
botIndex.bypass_logon = true
elseif Bypass_Logon == "NO" then
botIndex.bypass_logon = false
end
end
function addProxyMain()
Proxy_Manager.localize = true
Proxy_Manager.spread = false
Proxy_Manager:setLimit(Proxy_Limit)
indexRunningScript = {}
indexUnrunningScript = {}
for i, bots in ipairs(getBots()) do
if bots:isRunningScript() then
table.insert(indexRunningScript, i)
else
bots.reconnect_interval = 1000
table.insert(indexUnrunningScript, i)
end
end
---- [ END RUNNING ] ----
ScriptHelping1 = [[
---- [ PROXY SETTINGS ] ----
--Add proxy
Proxy_List = { "]] .. table.concat(Proxy_Settings.Proxy_List, '", "') ..
[[" }
----------------------------------
--Change proxy
Change_Proxy = "]] .. Proxy_Settings.Change_Proxy:upper() .. [["
Change_Proxy_List = { "]] .. table.concat(New_Change_Proxy_List, '", "') ..
[[" }
Move_Speed_1 = ]] .. tonumber(Bot_Settings.Move_Speed_1) .. [[
Move_Speed_2 = ]] .. tonumber(Bot_Settings.Move_Speed_2) .. [[
Move_Range = ]] .. tonumber(Bot_Settings.Move_Range) .. [[
Show_Punch_Animation = "]] .. Bot_Settings.Show_Punch_Animation:upper() ..
[["
Show_Move_Animation = "]] .. Bot_Settings.Show_Move_Animation:upper() .. [["
Remove_Bot = "]] .. Bot_Settings.Remove_Bot:upper() .. [["
---- [ END BOT SETTINGS ] ----
Save_Seed_World_List = { "]] ..
table.concat(Rotation_Settings.Save_Seed_World_List, '", "') .. [[" }
Save_Pack_World_List = { "]] ..
table.concat(Rotation_Settings.Save_Pack_World_List, '", "') .. [[" }
--Break other world in random world (Bot automatically create new world)
Use_Random_World_For_Break = "]] ..
Rotation_Settings.Use_Random_World_For_Break:upper() .. [["
Buy_Signal_Jammer = "]] .. Rotation_Settings.Buy_Signal_Jammer:upper() .. [["
--Break other world in the tutorial world (World name must contain the bot name)
Use_Tutorial_World_For_Break = "]] ..
Rotation_Settings.Use_Tutorial_World_For_Break:upper() .. [["
tutorialWorld = "nil"
----------------------------------
--Auto buy setting
Auto_Buy_Pack = "]] .. Rotation_Settings.Auto_Buy_Pack:upper() .. [["
Pack_To_Buy_List = { "]] .. table.concat(Rotation_Settings.Pack_To_Buy_List,
'", "') .. [[" }
Max_Buy_Pack = ]] .. tonumber(Rotation_Settings.Max_Buy_Pack) .. [[
Max_Pack_To_Drop = ]] .. tonumber(Rotation_Settings.Max_Pack_To_Drop) .. [[
if Max_Pack_To_Drop == 0 then
Max_Pack_To_Drop = 1
elseif Max_Pack_To_Drop > 170 then
Max_Pack_To_Drop = 170
end
----------------------------------
--Auto consume setting [NOTE: To retrieve food item from world storage use the
Equipment_World_List feature]
Auto_Consume = "]] .. Rotation_Settings.Auto_Consume:upper() .. [["
Consume_ID = { ]] .. table.concat(Rotation_Settings.Consume_ID, ', ') .. [[ }
--Leveling options:
--Leveling with auto cooking [NOTE: To drop food that has finished cooking use the
Drop_Item_Whitelist feature]
Set_Food = ]] .. tonumber(Rotation_Settings.Set_Food) .. [[
if Set_Food == 1 then
Ingredients_ID = { 3472, 4602, 4588, 962 }
end
Cook_World_List = { "]] .. table.concat(Rotation_Settings.Cook_World_List,
'", "') .. [[" }
Auto_Take_Floating_Block = "]] ..
Rotation_Settings.Auto_Take_Floating_Block:upper() .. [["
---- [ END ROTATION SETTINGS ] ----
]]
ScriptHelping2 = [[
---- [ ADVANCED SETTINGS ] ----
--Webhook setting
Use_Webhook = "]] .. Advanced_Settings.Use_Webhook:upper() .. [["
Edit_Webhook_Message = "]] ..
Advanced_Settings.Edit_Webhook_Message:upper() .. [["
Webhook_Link_Bot_Information = { "]] ..
table.concat(Advanced_Settings.Webhook_Link_Bot_Information, '", "') .. [[" }
Webhook_Link_Dropped_Item = { "]] ..
table.concat(Advanced_Settings.Webhook_Link_Dropped_Item, '", "') .. [[" }
Webhook_Link_Reconnect = { "]] ..
table.concat(Advanced_Settings.Webhook_Link_Reconnect, '", "') .. [[" }
Use_Webhook_For_All_Bot_Information = "]] ..
Advanced_Settings.Use_Webhook_For_All_Bot_Information:upper() .. [["
Edit_Webhook_Message_For_All_Bot_Information = "]] ..
Advanced_Settings.Edit_Webhook_Message_For_All_Bot_Information:upper() .. [["
Webhook_Link_All_Bot_Information = "]] ..
Advanced_Settings.Webhook_Link_All_Bot_Information .. [["
Webhook_Link_All_Bot_Information, Message_ID_All_Bot_Information =
Webhook_Link_All_Bot_Information:match("([^|]+)[|]([^|]+)")
Message_ID_All_Bot_Information =
tonumber(Message_ID_All_Bot_Information)
All_Bot_Information_Cooldown = ]] ..
tonumber(Advanced_Settings.All_Bot_Information_Cooldown) .. [[
All_Bot_Information_Cooldown_Milliseconds =
All_Bot_Information_Cooldown * 1000
----------------------------------
--Delay (milliseconds)
Harvest_Delay = ]] .. tonumber(Advanced_Settings.Harvest_Delay) .. [[
Plant_Delay = ]] .. tonumber(Advanced_Settings.Plant_Delay) .. [[
Hit_Delay = ]] .. tonumber(Advanced_Settings.Hit_Delay) .. [[
Place_Delay = ]] .. tonumber(Advanced_Settings.Place_Delay) .. [[
Drop_Delay = ]] .. tonumber(Advanced_Settings.Drop_Delay) .. [[
Auto_Buy_Delay = ]] .. tonumber(Advanced_Settings.Auto_Buy_Delay) .. [[
Wear_Delay = ]] .. tonumber(Advanced_Settings.Wear_Delay) .. [[
Join_World_Delay = ]] .. tonumber(Advanced_Settings.Join_World_Delay) .. [[
Hard_Warp_Join_World_Delay = ]] ..
tonumber(Advanced_Settings.Hard_Warp_Join_World_Delay) .. [[
Reconnect_Delay = ]] .. tonumber(Advanced_Settings.Reconnect_Delay) .. [[
Reconnect_Delay_Cooldown_Seconds = Reconnect_Delay / 1000
--Delay (Minutes)
Maintenance_Cooldown = ]] .. tonumber(Advanced_Settings.Maintenance_Cooldown)
.. [[
Maintenance_Cooldown_Milliseconds = Maintenance_Cooldown * 60 * 1000
Mod_Entered_Cooldown = ]] .. tonumber(Advanced_Settings.Mod_Entered_Cooldown)
.. [[
Mod_Entered_Cooldown_Milliseconds = Mod_Entered_Cooldown * 60 * 1000
----------------------------------
--Preferences
Platform_Used = "]] .. Advanced_Settings.Platform_Used:upper() .. [["
Max_Block_To_Retrieve = ]] ..
tonumber(Advanced_Settings.Max_Block_To_Retrieve) .. [[
Max_Seed_To_Drop = ]] .. tonumber(Advanced_Settings.Max_Seed_To_Drop) .. [[
Script = [[
--Don't delete or change the script function below!
---- [ LUCIFER VARIABLE API ] ----
bot = getBot()
world = bot:getWorld()
inventory = bot:getInventory()
bot.auto_reconnect = false
bot.reconnect_interval = 15
bot.collect_path_check = true
bot.collect_range = 4
bot.object_collect_delay = 50
bot.collect_interval = 100
---- [ END LUCIFER VARIABLE API ] ----
---- [ GKS VARIABLE ] ----
--Dropped variable
dropPackCount = ""
dropPackCountTable = {}
dropSeedCount = 0
dropBlockCount = 0
dropEquipmentCount = "\n 0"
--------------------------
--Bot number & proxy number variable
local botStartNumber = 1
local proxyStartNumber = 1
--------------------------
--Harvest, plant, take gems root, findpath seed, findpath block & findpath
animation variable
tileHarvestPlantX = 1
tileHarvestPlantY = 23
findpathSeedX = 1
findpathSeedY = 23
findpathBlockX = 1
findpathBlockY = 23
actionRotationAndFindpathAnimation = false
--------------------------
--Last Hidden World, default world name, bot x, bot y variable
lastHiddenWorld = "WORLD3"
defaultWorldName = "HELLOGKS"
defaultBotX = 61
defaultBotY = 23
--------------------------
--Break other world variable
breakOtherWorldX = 1
breakOtherWorldY = 23
cachedWorldBreak = nil
notWorldBanned = true
--------------------------
--Gaia and UT variable
wrenchGaiaX = nil
wrenchGaiaY = nil
wrenchUnstableX = nil
wrenchUnstableY = nil
--------------------------
--Reconnect variable
connectCount = 0
autoRecon = true
--------------------------
--Number of trees harvested
job = 0
--------------------------
--Next world status and all bots status
nextWorldStatus = true
dropPackStatus = false
dropWhitelistStatus = false
dropSeedBlockStatus = false
dropPickaxeStatus = false
takingPickaxeStatus = false
--------------------------
--Webhook variable
scriptName = "Rotation Script"
scriptCredit = "**Grow King Scripts**"
reportCenterLink = "https://discord.gg/XvjAqQ8ZuG"
reportCenter = ":warning: **|** Report illegal resale and distribution of
script/login code to <@1034725351873576990> for a free 300 GKS Balance. For more
information [click here!](<" .. reportCenterLink .. ">)"
webhookTitle = scriptName .. " \nScript By " .. scriptCredit
webhookAvatar =
"https://media.discordapp.net/attachments/1151744897687224320/1160427676654391428/
GKS_Logo.jpg?
ex=65349f7d&is=65222a7d&hm=b11ee741e5b45e61d96257712224c5ad4c5c44e4e42fde4e441c529a
646a708c&=&width=427&height=427"
webhookImage =
"https://media.discordapp.net/attachments/1151744897687224320/1160427676381741106/
GKS_Footer.jpg?
ex=65349f7d&is=65222a7d&hm=3e4925cc5fb2ba188bf8c6c4ae7cc58aeca7ca1507011b923c8500e1
aa70eb8b&="
--------------------------
--Folder and file variable
logFolder = "GKSlog"
newGuestFile = logFolder .. "/newGuestLog"
removeBotFile = logFolder .. "/growidLog"
randomBreakOtherWorldFile = logFolder .. "/randomBreakOtherWorldLog"
configFile = logFolder .. "/config"
--------------------------
--Time variable
proxyTime = os.time()
botTime = os.time()
---- [ END GKS VARIABLE ] ----
if file then
for line in file:lines() do
table.insert(Bot_List, line)
end
file:close()
else
removeBotIndex("NO", "External bot list path not found.")
end
end
end
function externalRotationWorld()
if Use_External_Rotation_World_List == "YES" then
Rotation_World_List = {}
local filename = External_Rotation_World_List_Path
local file = io.open(filename, "r")
if file then
for line in file:lines() do
table.insert(Rotation_World_List, line)
end
file:close()
else
removeBotIndex("NO", "External rotation list path not found.")
end
end
end
function runExternalFile()
externalBotList()
externalRotationWorld()
end
runExternalFile()
---- [ END EXTERNAL FILE ] ----
return splitTableWithLimit
end
function splitTableLooping(tables)
local result = {}
local tableCount = #tables
if runningIndex == true then
for checkRunningIndex, bot in ipairs(getBots()) do
indexBot = checkRunningIndex - isRunningIndex
local indexTable = (indexBot - 1) % tableCount + 1
result[bot.name] = tables[indexTable]
end
elseif runningIndex == false then
for indexBot, bot in ipairs(getBots()) do
local indexTable = (indexBot - 1) % tableCount + 1
result[bot.name] = tables[indexTable]
end
end
return result
end
bots[bot.name] = {
Proxy_List = assignedProxyList,
Change_Proxy_List = assignedChangeProxyList,
Bot_List = assignedBotList,
Rotation_World_List = assignedRotationList,
X_Break = assignedX_Break,
Y_Break = assignedY_Break,
Custom_World_For_Break_List = assignedCustomWorldForBreakList,
Pack_To_Buy_List = assignedPackToBuyList[bot.name],
Cook_World_List = assignedCookWorldList,
Webhook_Link_Bot_Information =
assignedWebhookLinkBotInformation[bot.name],
Webhook_Link_Dropped_Item =
assignedWebhookLinkDroppedItem[bot.name],
Webhook_Link_Reconnect = assignedWebhookLinkReconnect[bot.name]
}
end
elseif runningIndex == false then
for indexBot, bot in ipairs(getBots()) do
local index = indexBot
local isUnrunningIndex = #getBots()
local assignedProxyList = splitTableLimit(index, Proxy_List,
Proxy_Limit)
local assignedChangeProxyList = splitTableWithLimit(index,
Change_Proxy_List, Proxy_Limit)
local assignedBotList = splitTable(Bot_List, isUnrunningIndex)[index]
if Spread_Rotation_World_List == "NO" then
assignedRotationList = Rotation_World_List
else
assignedRotationList = splitTable(Rotation_World_List,
isUnrunningIndex)[index]
end
local assignedX_Break, assignedY_Break = setBotPositions(index,
X_Break, Y_Break, PNB_Range_Helping)
local assignedCustomWorldForBreakList =
splitTable(Custom_World_For_Break_List, isUnrunningIndex)[index]
local assignedPackToBuyList = splitTableLooping(Pack_To_Buy_List)
local assignedCookWorldList = splitTableWithLimit(index,
Cook_World_List, 1)
local assignedWebhookLinkBotInformation =
splitTableLooping(Webhook_Link_Bot_Information)
local assignedWebhookLinkDroppedItem =
splitTableLooping(Webhook_Link_Dropped_Item)
local assignedWebhookLinkReconnect =
splitTableLooping(Webhook_Link_Reconnect)
bots[bot.name] = {
Proxy_List = assignedProxyList,
Change_Proxy_List = assignedChangeProxyList,
Bot_List = assignedBotList,
Rotation_World_List = assignedRotationList,
X_Break = assignedX_Break,
Y_Break = assignedY_Break,
Custom_World_For_Break_List = assignedCustomWorldForBreakList,
Pack_To_Buy_List = assignedPackToBuyList[bot.name],
Cook_World_List = assignedCookWorldList,
Webhook_Link_Bot_Information =
assignedWebhookLinkBotInformation[bot.name],
Webhook_Link_Dropped_Item =
assignedWebhookLinkDroppedItem[bot.name],
Webhook_Link_Reconnect = assignedWebhookLinkReconnect[bot.name]
}
end
end
---- [ END SPLIT TABLE (CONFIG INDEX) ] ----
totalBotList = #Bot_List_Result
if totalBotList == 0 then
removeBotIndex("NO", "Index bot " .. bot.index .. " does not have a bot
list.")
end
end
function extractRotationWorldList()
Rotation_World_List_Result = {}
for _, element in ipairs(Rotation_World_List) do
local parts = {}
totalRotationWorldList = #Rotation_World_List_Result
if totalRotationWorldList == 0 then
removeBotIndex("NO", "Index bot " .. bot.index .. " does not have a
rotation world list.")
end
function extractSaveSeedWorldList()
Save_Seed_World_List_Result = {}
for _, element in ipairs(Save_Seed_World_List) do
local parts = {}
totalSaveSeedWorldList = #Save_Seed_World_List_Result
if totalSaveSeedWorldList == 0 then
removeBotIndex("NO", "Index bot " .. bot.index .. " does not have a
save seed world list.")
end
Save_Seed_World = Save_Seed_World_List_Result[1][1]:upper()
Save_Seed_Door_ID = Save_Seed_World_List_Result[1][2]:upper()
if Save_Seed_Door_ID == "-" then
Save_Seed_Door_ID = ""
end
Drop_Seed_Marker = tonumber(Save_Seed_World_List_Result[1][3])
end
function extractSavePackWorldList()
Save_Pack_World_List_Result = {}
for _, element in ipairs(Save_Pack_World_List) do
local parts = {}
totalSavePackWorldList = #Save_Pack_World_List_Result
if totalSavePackWorldList == 0 then
removeBotIndex("NO", "Index bot " .. bot.index .. " does not have a
save pack world list.")
end
Save_Pack_World = Save_Pack_World_List_Result[1][1]:upper()
Save_Pack_Door_ID = Save_Pack_World_List_Result[1][2]:upper()
if Save_Pack_Door_ID == "-" then
Save_Pack_Door_ID = ""
end
Drop_Pack_Marker = tonumber(Save_Pack_World_List_Result[1][3])
end
function extractEquipmentWorldList()
Equipment_World_List_Result = {}
for _, element in ipairs(Save_Pack_World_List) do
local parts = {}
totalEquipmentWorldList = #Equipment_World_List_Result
if totalEquipmentWorldList == 0 then
removeBotIndex("NO", "Index bot " .. bot.index .. " does not have a
equipment world list.")
end
Equipment_World = Equipment_World_List_Result[1][1]:upper()
Equipment_Door_ID = Equipment_World_List_Result[1][2]:upper()
if Equipment_Door_ID == "-" then
Equipment_Door_ID = ""
end
Drop_Equipment_Marker = tonumber(Equipment_World_List_Result[1][3])
end
function extractWhitelistWorldList()
Whitelist_World_List_Result = {}
for _, element in ipairs(Save_Pack_World_List) do
local parts = {}
for part in string.gmatch(element, "[^:|]+") do
table.insert(parts, part)
end
totalWhitelistWorldList = #Whitelist_World_List_Result
if totalWhitelistWorldList == 0 then
removeBotIndex("NO", "Index bot " .. bot.index .. " does not have a
whitelist world list.")
end
Whitelist_World = Whitelist_World_List_Result[1][1]:upper()
Whitelist_Door_ID = Whitelist_World_List_Result[1][2]:upper()
if Whitelist_Door_ID == "-" then
Whitelist_Door_ID = ""
end
Drop_Whitelist_Marker = tonumber(Whitelist_World_List_Result[1][3])
end
function extractCookWorld()
if Leveling_Status == "COOK" then
Cook_World_List_Result = {}
for _, element in ipairs(Cook_World_List) do
local parts = {}
totalCookWorldList = #Cook_World_List_Result
if totalCookWorldList == 0 then
removeBotIndex("NO", "Index bot " .. bot.index .. " does not have
a cook world list.")
end
Cook_World = Cook_World_List_Result[1][1]:upper()
Cook_Door_ID = Cook_World_List_Result[1][2]:upper()
if Cook_Door_ID == "-" then
Cook_Door_ID = ""
end
X_Cook = tonumber(Cook_World_List_Result[1][3])
Y_Cook = tonumber(Cook_World_List_Result[1][4])
else
Cook_World = ""
Cook_Door_ID = ""
X_Cook = 0
Y_Cook = 0
end
end
function extractCustomWorldForBreakList()
if Use_Custom_World_For_Break == "YES" then
Custom_World_For_Break_List_Result = {}
for _, element in ipairs(Custom_World_For_Break_List) do
local parts = {}
table.insert(Custom_World_For_Break_List_Result, {parts[1],
parts[2]})
end
totalCustomWorldForBreakList = #Custom_World_For_Break_List_Result
if totalCustomWorldForBreakList == 0 then
removeBotIndex("NO", "Index bot " .. bot.index .. " does not have
a custom world for break list.")
end
Custom_World_Break_Other_World = Custom_World_For_Break_List_Result[1]
[1]:upper()
Custom_World_Break_Other_World_Door_ID =
Custom_World_For_Break_List_Result[1][2]:upper()
if Custom_World_Break_Other_World_Door_ID == "-" then
Custom_World_Break_Other_World_Door_ID = ""
end
else
Custom_World_Break_Other_World = ""
Custom_World_Break_Other_World_Door_ID = ""
end
end
function extractPackToBuy()
if Auto_Buy_Pack == "YES" then
Pack_To_Buy_List_Result = {}
for part in string.gmatch(Pack_To_Buy_List, "[^:|]+") do
table.insert(Pack_To_Buy_List_Result, part)
end
totalPackToBuy = #Pack_To_Buy_List_Result
if totalPackToBuy == 0 then
removeBotIndex("NO", "Index bot " .. bot.index .. " does not have
a pack to buy list.")
end
Pack_Name_To_Buy = Pack_To_Buy_List_Result[1]
Pack_Price = tonumber(Pack_To_Buy_List_Result[2])
Pack_ID = {}
for packID in Pack_To_Buy_List_Result[3]:gmatch("%d+") do
table.insert(Pack_ID, tonumber(packID))
end
else
Pack_Name_To_Buy = ""
Pack_Price = 999999999999
Pack_ID = { 0 }
end
end
function extractWebhookBot()
if Use_Webhook == "YES" then
Webhook_Bot_Information_Result = {}
for part in string.gmatch(Webhook_Link_Bot_Information, "[^|]+") do
table.insert(Webhook_Bot_Information_Result, part)
end
Webhook_Link_Bot_Information = Webhook_Bot_Information_Result[1]
Message_ID_Bot_Information =
tonumber(Webhook_Bot_Information_Result[2])
else
Webhook_Link_Bot_Information = ""
Message_ID_Bot_Information = ""
end
end
function extractWebhookDropped()
if Use_Webhook == "YES" then
Webhook_Dropped_Item_Result = {}
for part in string.gmatch(Webhook_Link_Dropped_Item, "[^|]+") do
table.insert(Webhook_Dropped_Item_Result, part)
end
Webhook_Link_Dropped_Item = Webhook_Dropped_Item_Result[1]
Message_ID_Dropped_Item = tonumber(Webhook_Dropped_Item_Result[2])
else
Webhook_Link_Dropped_Item = ""
Message_ID_Dropped_Item = ""
end
end
function extractWebhookReconnect()
if Use_Webhook == "YES" then
Webhook_Reconnect_Result = {}
for part in string.gmatch(Webhook_Link_Reconnect, "[^|]+") do
table.insert(Webhook_Reconnect_Result, part)
end
Webhook_Link_Reconnect = Webhook_Reconnect_Result[1]
Message_ID_Reconnect = tonumber(Webhook_Reconnect_Result[2])
else
Webhook_Link_Reconnect = ""
Message_ID_Reconnect = ""
end
end
function runExtractTable()
extractBotList()
extractRotationWorldList()
extractSaveSeedWorldList()
extractSavePackWorldList()
extractEquipmentWorldList()
extractWhitelistWorldList()
extractCookWorld()
extractCustomWorldForBreakList()
extractPackToBuy()
extractWebhookBot()
extractWebhookDropped()
extractWebhookReconnect()
end
runExtractTable()
---- [ END EXTRACT TABLE ] ----
---- [ GET ITEM NAME ] ----
function getItemName(itemID)
return getInfo(itemID).name
end
---- [ END GET ITEM NAME ] ----
function timeEnd()
checkYear_1 = (os.date "%Y")
checkDay_1 = (os.date "%d")
checkMonth_1 = (os.date "%m")
checkHour_1 = (os.date "%H")
checkMinute_1 = (os.date "%M")
checkSecond_1 = (os.date "%S")
ilkzaman = os.time {year = checkYear, month = checkMonth, day = checkDay,
hour = checkHour, min = checkMinute, sec = checkSecond}
sonzaman = os.time {year = checkYear_1, month = checkMonth_1, day =
checkDay_1, hour = checkHour_1, min = checkMinute_1, sec = checkSecond_1}
kalanzamansaniye = sonzaman - ilkzaman
adimadimtarih = (kalanzamansaniye / 60) / 60
sonsaaat = math.floor(adimadimtarih)
sondakika = math.floor((adimadimtarih - sonsaaat) * 60)
end
function timeR()
checkYear_2 = (os.date "%Y")
checkDay_2 = (os.date "%d")
checkMonth_2 = (os.date "%m")
checkHour_2 = (os.date "%H")
checkMinute_2 = (os.date "%M")
checkSecond_2 = (os.date "%S")
end
function timeRS()
checkYear_3 = (os.date "%Y")
checkDay_3 = (os.date "%d")
checkMonth_3 = (os.date "%m")
checkHour_3 = (os.date "%H")
checkMinute_3 = (os.date "%M")
checkSecond_3 = (os.date "%S")
ilkzaman = os.time {year = checkYear_2, month = checkMonth_2, day =
checkDay_2, hour = checkHour_2, min = checkMinute_2, sec = checkSecond_2}
sonzaman = os.time {year = checkYear_3, month = checkMonth_3, day =
checkDay_3, hour = checkHour_3, min = checkMinute_3, sec = checkSecond_3}
kalanzamansaniye6 = sonzaman - ilkzaman
adimadimtarih = (kalanzamansaniye6 / 3600)
jam = math.floor(adimadimtarih)
menit = math.floor((adimadimtarih - jam) * 60)
detik = math.floor((kalanzamansaniye6 - jam * 3600 - menit * 60))
end
function secondON(seconds)
local seconds = tonumber(seconds)
function secondR(seconds)
local seconds = tonumber(seconds)
function convertMillisecondsToHours(ms)
local totalSeconds = math.floor(ms / 1000)
function changeProxyList()
if totalChangeProxyList == 0 and noStopScript == true then
autoRecon = false
noStopScript = false
bot:disconnect()
sleep(100)
webhookShareInfoAllBot()
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** Your proxy total in the proxy
list is " .. totalChangeProxyList .. ", so the script at this index will stop
running."
)
removeBotIndex(Remove_Bot, "Your proxy total in the proxy list is " ..
totalChangeProxyList .. ", so the script at this index will stop running.")
end
bot:updateProxy(Change_Proxy_List[proxyStartNumber])
sleep(100)
bot:disconnect()
sleep(100)
webhookShareInfoAllBot()
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** Your proxy was updated
successfully."
)
connectAfterChangeProxy()
end
end
function connectAfterChangeProxy()
if bot.status ~= BotStatus.online then
maxReconnect()
webhookShareInfoBot(
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "|| [" ..
Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " .. bot.level ..
" \n" ..
"<a:toa:997296837352505415> **|** Bot Trying to Reconnect! (" ..
connectCount .. "/" .. maxReconnectCount .. ")"
)
bot:connect()
--addEvent(Event.variantlist, tutorialQuestEvent)
--listenEvents(Reconnect_Delay_Cooldown_Seconds)
sleep(Reconnect_Delay)
end
proxyTime = os.time()
proxyTimeShow = os.time() - proxyTime
timeR()
timeRS()
main()
end
---- [ END CHANGE PROXY ] ----
function statusBotDescription()
if bot.status == BotStatus.online and string.find(world.name:upper(),
bot.name:upper()) and bot.level < 2 then
return "Skip Tutorial"
elseif bot.status == BotStatus.offline then
return "Offline"
elseif bot.status == BotStatus.online then
return "Online"
elseif bot.status == BotStatus.wrong_password then
return "Wrong Password"
elseif bot.status == BotStatus.account_banned then
return "Account Banned"
elseif bot.status == BotStatus.location_banned then
return "Location Banned"
elseif bot.status == BotStatus.version_update then
return "Version Update"
elseif bot.status == BotStatus.advanced_account_protection then
return "Advanced Account Protection"
elseif bot.status == BotStatus.server_overload then
return "Server Overload"
elseif bot.status == BotStatus.too_many_login then
return "Too Many Login"
elseif bot.status == BotStatus.maintenance then
return "Maintenance"
elseif bot.status == BotStatus.http_block then
return "Http Block"
elseif bot.status == BotStatus.error_connecting then
return "Error Connecting"
elseif bot.status == BotStatus.captcha_requested then
return "Captcha Requested"
elseif bot.status == BotStatus.mod_entered then
return "Mod Entered"
elseif bot.status == BotStatus.changing_subserver then
return "Changing Subserver"
else
return "nil"
end
end
function allBotStatus(variable)
if variable.status == BotStatus.online and string.find(world.name:upper(),
variable.name:upper()) and variable.level < 2 then
return "Skip Tutorial"
elseif variable.status == BotStatus.online and
variable:isInWorld(Save_Pack_World) and dropPackStatus == true then
return "Dropping Pack"
elseif variable.status == BotStatus.online and
variable:isInWorld(Whitelist_World) and dropWhitelistStatus == true then
return "Dropping Item Whitelist"
elseif variable.status == BotStatus.online and
variable:isInWorld(Save_Seed_World) and dropSeedBlockStatus == true then
return "Dropping Seed or Block"
elseif variable.status == BotStatus.online and
variable:isInWorld(Pickaxe_World) and dropPickaxeStatus == true then
return "Dropping " .. getItemName(Pickaxe_ID)
elseif variable.status == BotStatus.online and
variable:isInWorld(Pickaxe_World) and takingPickaxeStatus == true then
return "Taking " .. getItemName(Pickaxe_ID)
elseif variable.status == BotStatus.online and variable:isInWorld(Cook_World)
and Start_Cooking == true then
return "Is Cooking"
elseif variable.status == BotStatus.offline then
return "Offline"
elseif variable.status == BotStatus.online then
return "Online"
elseif variable.status == BotStatus.wrong_password then
return "Wrong Password"
elseif variable.status == BotStatus.account_banned then
return "Account Banned"
elseif variable.status == BotStatus.location_banned then
return "Location Banned"
elseif variable.status == BotStatus.version_update then
return "Version Update"
elseif variable.status == BotStatus.advanced_account_protection then
return "Advanced Account Protection"
elseif variable.status == BotStatus.server_overload then
return "Server Overload"
elseif variable.status == BotStatus.too_many_login then
return "Too Many Login"
elseif variable.status == BotStatus.maintenance then
return "Maintenance"
elseif variable.status == BotStatus.http_block then
return "Http Block"
elseif variable.status == BotStatus.error_connecting then
return "Error Connecting"
elseif variable.status == BotStatus.captcha_requested then
return "Captcha Requested"
elseif variable.status == BotStatus.mod_entered then
return "Mod Entered"
elseif variable.status == BotStatus.changing_subserver then
return "Changing Subserver"
else
return "nil"
end
end
---- [ END STATUS ] ----
function checkDropPackCount2()
dropPackCount2 = ""
for number, packlist in pairs(dropPackCountTable) do
dropPackCount2 = dropPackCount2 .. packlist .. " [" ..
inventory:getItemCount(Pack_ID[number]) .. "] "
sleep(100)
end
end
---- [ END WEBHOOK HELPING ] ----
if useEmbed2 then
wh.embed2.use = true
wh.embed2.image = webhookImage
wh.embed2.title = webhookTitle
wh.embed2.description = message2 .. " \n\n" .. reportCenter
wh.embed2.color = 15105570
wh.embed2.footer.text = scriptName .. " \n" .. webhookDate()
useEmbed2 = false
end
if Edit_Webhook_Message == "YES" then
wh:edit(Message_ID_Bot_Information)
else
wh:send()
end
elseif Use_Webhook == "NO" then
return
end
end
function webhookShareInfoDropped(message)
if Use_Webhook == "YES" then
local wh = Webhook.new(Webhook_Link_Dropped_Item)
wh.username = "Grow King Scripts"
wh.avatar_url = webhookAvatar
wh.embed1.use = true
wh.embed1.image = webhookImage
wh.embed1.title = webhookTitle
wh.embed1.description = message .. " \n\n" .. reportCenter
wh.embed1.color = 15105570
wh.embed1.footer.text = scriptName .. " \n" .. webhookDate()
if Edit_Webhook_Message == "YES" then
wh:edit(Message_ID_Dropped_Item)
else
wh:send()
end
elseif Use_Webhook == "NO" then
return
end
end
function webhookShareInfoReconnect(message)
if Use_Webhook == "YES" then
local wh = Webhook.new(Webhook_Link_Reconnect)
wh.username = "Grow King Scripts"
wh.avatar_url = webhookAvatar
wh.content = "@everyone"
wh.embed1.use = true
wh.embed1.image = webhookImage
wh.embed1.title = webhookTitle
wh.embed1.description = message .. " \n\n" .. reportCenter
wh.embed1.color = 15105570
wh.embed1.footer.text = scriptName .. " \n" .. webhookDate()
if Edit_Webhook_Message == "YES" then
wh:edit(Message_ID_Reconnect)
else
wh:send()
end
elseif Use_Webhook == "NO" then
return
end
end
function webhookShareInfoAds(message)
if Use_Webhook == "YES" then
local wh = Webhook.new(Webhook_Link_Bot_Information)
wh.username = "Grow King Scripts"
wh.avatar_url = webhookAvatar
wh.embed1.use = true
wh.embed1.image = webhookImage
wh.embed1.title = "[ ADVERTISEMENT ]"
wh.embed1.description = message .. " \n\n" .. reportCenter
wh.embed1.color = 15105570
wh.embed1.footer.text = scriptName .. " \n" .. webhookDate()
if Edit_Webhook_Message == "YES" then
return
else
wh:send()
end
elseif Use_Webhook == "NO" then
return
end
end
---- [ END WEBHOOK ] ----
if file then
fileContent = file:read("*a")
file:close()
end
if file then
fileContent = file:read("*a")
file:close()
end
if file then
fileContent = file:read("*a")
file:close()
end
function randomSkinColor()
local color = ""
for i = 1, 1 do
color = color .. generateRandomNumberSkinColor()
end
bot:setSkin(color)
sleep(100)
end
---- [ END RANDOM SKIN COLOR ] ----
function randomGrowID()
local growid = ""
for i = 1, 7 do
growid = growid .. generateRandomCharacter()
end
return growid:upper()
end
function randomMAC()
local mac = ""
for i = 1, 12 do
mac = mac .. generateRandomCharacter()
if i % 2 == 0 and i < 12 then
mac = mac .. ":"
end
end
return mac:upper()
end
function randomRID()
local rid = ""
for i = 1, 32 do
rid = rid .. generateRandomCharacter()
end
return rid:upper()
end
if message:match("add_floater|(%w*GKSPNB%w*)") then
cachedWorldBreak = message:match("(%w*GKSPNB%w*)"):upper()
unlistenEvents()
end
end
end
function randomWorldBreak()
local retry = false
local notHasAccess = false
if bot:isInWorld() then
if string.find(world.name:upper(), "GKSPNB") and
world:hasAccess(bot.x, bot.y) == 0 then
notHasAccess = true
else
bot:sendPacket(3, "action|quit_to_exit")
addEvent(Event.variantlist, randomWorldBreakEvent)
listenEvents(5)
end
end
end
if cachedWorldBreak == nil then
if string.find(world.name:upper(), "GKSPNB") and notHasAccess ==
false then
cachedWorldBreak = world.name
elseif (not string.find(world.name:upper(), "GKSPNB") or
notHasAccess == true) then
local worldBreak = "GKSPNB"
local worldNameLength = math.random(5, 10)
for i = 1, worldNameLength do
worldBreak = worldBreak .. generateRandomCharacter()
end
return cachedWorldBreak:upper()
end
function randomWorldQuest()
local retry = false
local notHasAccess = false
if bot:isInWorld() then
for _, tile in pairs(world:getTiles()) do
if bot.status == BotStatus.online then
if world:hasAccess(tile.x, tile.y) == 0 then
notHasAccess = true
break
end
elseif bot.status ~= BotStatus.online or (bot.status ==
BotStatus.online and bot:getPing() == 0) then
defaultWorldName = world.name:upper()
defaultBotX = bot.x
defaultBotY = bot.y
retry = true
reconnect(defaultWorldName, defaultBotX, defaultBotY)
break
end
end
end
if retry then
randomWorldQuest()
end
if cachedWorldQuest == nil then
if string.find(world.name:upper(), bot.name:upper()) and notHasAccess
== false then
cachedWorldQuest = world.name
elseif string.find(world.name:upper(), "GKSQUEST") and notHasAccess ==
false then
cachedWorldQuest = world.name
elseif not string.find(world.name:upper(), bot.name:upper()) and not
string.find(world.name:upper(), "GKSQUEST") then
local worldQuest = "GKSQUEST"
local worldNameLength = math.random(5, 10)
for i = 1, worldNameLength do
worldQuest = worldQuest .. generateRandomCharacter()
end
return cachedWorldQuest:upper()
end
---- [ END RANDOM GROWID, MAC, RID AND WORLD ] ----
function banWaveEstimatedWithTime(time)
local banWaveLocalTimes = {}
for i = 1, #Ban_Wave_Estimated_Time do
local localTime = convertServerTimeToLocal(Ban_Wave_Estimated_Time[i])
table.insert(banWaveLocalTimes, localTime)
end
for i = 1, #banWaveLocalTimes do
local targetTime = banWaveLocalTimes[i]
local currentTime = os.date("%H:%M")
local targetHour, targetMinute = targetTime:match("(%d+):(%d+)")
local currentHour, currentMinute = currentTime:match("(%d+):(%d+)")
targetHour = tonumber(targetHour)
targetMinute = tonumber(targetMinute)
currentHour = tonumber(currentHour)
currentMinute = tonumber(currentMinute)
function banWaveEstimated()
if Ban_Wave_Estimated == "YES" then
if Ban_Wave_Estimated_With_Time == "YES" then
local currentTime = os.date("%H:%M")
if banWaveEstimatedWithTime(currentTime) then
dropExceedPackGoOffline()
"**[" ..
getItemName(Pickaxe_ID):upper() .. " INFORMATION ]** \n" ..
"<:Globe:1190695520210006036> **|** " ..
getItemName(Pickaxe_ID) .. " World: `" .. world.name:upper() .. "` \n" ..
":package: **|** Total " ..
getItemName(Pickaxe_ID) .. " Dropped: \n" ..
getItemName(Pickaxe_ID) .. ": " ..
objectGrowScan(Pickaxe_ID)
)
end
end
dropEquipmentBeforeOfffline()
hiddenWorld()
autoRecon = false
bot:disconnect()
sleep(100)
webhookShareInfoAllBot()
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " is offline during " ..
convertMillisecondsToHours(Ban_Wave_Estimated_Cooldown_Milliseconds) .. " to avoid
ban."
)
sleep(Ban_Wave_Estimated_Cooldown_Milliseconds)
connectBot()
else
return
end
end
elseif Ban_Wave_Estimated == "NO" then
return
end
end
---- [ END BAN WAVE ESTIMATED ] ----
sleep(3000)
bot:setBubble(Bubble.talk)
sleep(#"Bye I want to go offline. I want to sleep." * 80)
bot:say("Bye I want to go offline. I want to sleep.")
sleep(10)
bot:setBubble(Bubble.none)
sleep(2000)
bot:setBubble(Bubble.talk)
sleep(#"I love playing this game!" * 80)
bot:say("I love playing this game!")
sleep(10)
bot:setBubble(Bubble.none)
sleep(2000)
bot:setBubble(Bubble.talk)
sleep(#"/wave" * 80)
bot:say("/wave")
sleep(10)
bot:setBubble(Bubble.none)
sleep(1000)
end
autoRecon = false
bot:disconnect()
sleep(100)
webhookShareInfoAllBot()
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " .. bot.name:upper() .. " is
offline during " ..
convertMillisecondsToHours(Mod_Entered_Cooldown_Milliseconds) .. " to avoid mod
entred."
)
sleep(Mod_Entered_Cooldown_Milliseconds)
connectBot()
else
return
end
end
---- [ END MOD ENTERED ] ----
if canDropCustomItem then
reconnect(Equipment_World, 1, 23)
equipmentWorld()
dropEquipment(dropEquipmentToOfffline, 0)
end
end
else
reconnect(Equipment_World, 1, 23)
dropEquipmentBeforeOfffline()
end
end
upgradeBackpackForTakeEquipment(variable)
if haveEquipment then
for _, item in pairs(variable) do
for _, obj in pairs(world:getObjects()) do
if bot.status == BotStatus.online and obj.id == item then
if #bot:getPath(tileRounding(obj.x / 32),
tileRounding(obj.y / 32)) > 0 then
findpath(tileRounding(obj.x / 32),
tileRounding(obj.y / 32))
while not bot:isInTile(tileRounding(obj.x /
32), tileRounding(obj.y / 32)) do
sleep(25000)
reconnect(Equipment_World, 1, 23)
findpath(tileRounding(obj.x / 32),
tileRounding(obj.y / 32))
end
takeItem(item)
break
elseif #bot:getPath(tileRounding(obj.x / 32),
tileRounding(obj.y / 32)) == 0 and bot:isInTile(tileRounding(obj.x / 32),
tileRounding(obj.y / 32)) then
takeItem(item)
break
end
elseif bot.status ~= BotStatus.online or (bot.status ==
BotStatus.online and bot:getPing() == 0) then
reconnect(Equipment_World, 1, 23)
end
end
end
reconnect(Equipment_World, 1, 23)
end
sleep(500)
if checkEquipmentLast then
findpathEquipment(variable, maxRetrieve)
end
end
---- [ END EQUIPMENT ] ----
function findpathFossil()
local chosenTile = nil
if chosenTile then
reconnect(Rotation_World, 1, 23)
findpath(chosenTile.x, chosenTile.y + 1)
end
else
reconnect(Rotation_World, 1, 23)
findpathFossil()
end
end
function takeFossil()
local hasFossilEquipment = true
if takeEquipment then
equipmentWorld()
findpathEquipment(fossilEquipment, 1)
if inventory:getItemCount(3932) > 1 or
inventory:getItemCount(3934) > 1 then
while not bot:isInTile(45, 13) do
findpath(45, 13)
end
hiddenWorld()
farmWorld()
end
sleep(500)
if hasFossilEquipment then
if sendWebhookAmountAutoFossil < 1 then
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name:
" .. bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" ..
bot:getLogin().mac .. "|| [" .. Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot
Status: " .. activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level:
" .. bot.level .. " \n" ..
"<a:toa:997296837352505415> **|** Bot
Information: Starting Auto Fossil \n\n" ..
bot.auto_collect = false
sleep(100)
while not inventory:getItem(3932).isActive do
reconnect(Rotation_World, 1, 23)
bot:wear(3932)
sleep(math.random(Wear_Delay, Wear_Delay + 100))
end
local maxHit = 0
while bot.auto_collect == false and bot:isInWorld() and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32) - 1).fg == 3918 and maxHit < 15 do
if not inventory:getItem(3932).isActive then
reconnect(Rotation_World, 1, 23)
bot:wear(3932)
sleep(math.random(Wear_Delay, Wear_Delay +
100))
end
if inventory:getItem(3932).isActive then
reconnect(Rotation_World, 1, 23)
bot:hit(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32) - 1)
addEvent(Event.variantlist, fossilEvent)
listenEvents(2)
maxHit = maxHit + 1
if maxHit >= 15 then
sleep(6000)
maxHit = 0
end
end
end
sleep(500)
sleep(500)
bot:place(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32) - 1, 10)
sleep(math.random(Place_Delay,
Place_Delay + 100))
elseif inventory:getItemCount(2) > 0 and
bot:isInWorld() and ((world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32) - 1).fg == 0) or
(world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32) - 1).bg == 0) or
(world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32) - 1).bg == 14)) then
bot:place(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32) - 1, 2)
sleep(math.random(Place_Delay,
Place_Delay + 100))
end
end
end
sleep(500)
equipmentWorld()
dropEquipment(fossilFinishEquipment, 0)
hiddenWorld()
farmWorld()
end
end
elseif Auto_Fossil == "NO" then
return
end
else
reconnect(Rotation_World, 1, 23)
takeFossil()
end
end
---- [ END AUTO FOSSIL ] ----
function killingGhost()
if bot.status == BotStatus.online then
if Auto_Kill_Ghost == "YES" and ((Spread_Rotation_World_List == "NO"
and bot.index == indexUnrunningScript) or Spread_Rotation_World_List == "YES") then
if ghostScan() > 0 then
local takeEquipment = false
for _, item in pairs(ghostEquipment) do
if inventory:getItemCount(item) == 0 then
takeEquipment = true
break
end
end
if takeEquipment then
equipmentWorld()
findpathEquipment(ghostEquipment, 1)
hiddenWorld()
farmWorld()
end
if hasGhostClothes then
reconnect(Rotation_World, 1, 23)
local sendWebhookAmount = 0
while ghostScan() > 0 do
if sendWebhookAmount < 1 then
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|
** Bot Name: " .. bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" ..
bot:getLogin().mac .. "|| [" .. Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|
** Bot Status: " .. activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \
n" ..
"<:Right_Arrow_V2:11906951670789570
56> `[" .. statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|**
Bot Level: " .. bot.level .. " \n" ..
"<a:toa:997296837352505415> **|**
Bot Information: Starting Killing Ghost \n\n" ..
performActionKillingGhost()
reconnect(Rotation_World, 1, 23)
end
if ghostScan() == 0 then
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot
Name: " .. bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" ..
bot:getLogin().mac .. "|| [" .. Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot
Status: " .. activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056>
`[" .. statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot
Level: " .. bot.level .. " \n" ..
"<a:toa:997296837352505415> **|** Bot
Information: Finished Killing Ghost \n\n" ..
if takeEquipment then
equipmentWorld()
findpathEquipment(Wearing_Specific_Item_ID, 1)
hiddenWorld()
farmWorld()
end
end
else
reconnect(Rotation_World, 1, 23)
wearingSpecificItem()
end
end
---- [ END WEARING SPECIFIC ITEM ] ----
if takeEquipment then
equipmentWorld()
findpathEquipment(Consume_ID, 1)
dropEquipment(Consume_ID, 1)
for _, item in pairs(Consume_ID) do
if inventory:getItemCount(item) == 1 then
bot:place(bot.x, bot.y, item)
sleep(math.random(Place_Delay, Place_Delay + 100))
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** The " ..
getItemName(item) .. " is already in use by " .. bot.name:upper() .. "."
)
end
end
end
else
reconnect(Rotation_World, 1, 23)
takeConsume()
end
end
function autoConsume()
if Auto_Consume == "YES" and bot:isInWorld() and getLocal().avatarFlags == 0
then
if Bot_Level_Rotation == true then
if bot.level < Min_Level then
takeConsume()
hiddenWorld()
if not bot:isInWorld(Cook_World) and Start_Cooking == true
then
cookWorld()
findpath(X_Cook, Y_Cook)
else
farmWorld()
end
elseif bot.level >= Min_Level then
Bot_Level_Rotation = false
return
end
end
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "||
[" .. Bot_Format .. "]\n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " ..
bot.level .. " \n" ..
"<a:toa:997296837352505415> **|** Bot Information: Starting
To Clear The Fire"
)
if takeEquipment then
defaultWorldName = world.name:upper()
defaultBotX = bot.x
defaultBotY = bot.y
equipmentWorld()
findpathEquipment(fireEquipment, 1)
hiddenWorld()
if defaultWorldName == Rotation_World then
reconnect(Rotation_World, defaultBotX, defaultBotY)
farmWorld()
elseif ((defaultWorldName ==
Custom_World_Break_Other_World) or (defaultWorldName == randomWorldBreak())) then
reconnect(Custom_World_Break_Other_World,
defaultBotX, defaultBotY)
breakOtherWorld()
end
end
if tileGrowScan(fireID) == 0 then
bot.anti_fire = false
sleep(100)
if inventory:getItemCount(3066) > 0 then
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac ..
"|| [" .. Bot_Format .. "]\n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " ..
bot.level .. " \n" ..
"<a:toa:997296837352505415> **|** Bot Information:
Finished To Clear The Fire"
)
defaultWorldName = world.name:upper()
defaultBotX = bot.x
defaultBotY = bot.y
equipmentWorld()
dropEquipment(fireEquipment, 0)
hiddenWorld()
if defaultWorldName == Rotation_World then
reconnect(Rotation_World, defaultBotX, defaultBotY)
farmWorld()
elseif ((defaultWorldName ==
Custom_World_Break_Other_World) or (defaultWorldName == randomWorldBreak())) then
reconnect(Custom_World_Break_Other_World,
defaultBotX, defaultBotY)
breakOtherWorld()
end
end
end
elseif Anti_Fire == "NO" then
bot.anti_fire = false
sleep(100)
return
end
end
---- [ END ANTI FIRE ] ----
defaultWorldName = world.name:upper()
defaultBotX = bot.x
defaultBotY = bot.y
if tileSafeScan(778) == 0 then
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac ..
"|| [" .. Bot_Format .. "]\n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " ..
bot.level .. " \n" ..
"<a:toa:997296837352505415> **|** Bot Information:
Finished Auto Toxic"
)
end
end
elseif Anti_Toxic == "NO" then
bot.anti_toxic = false
sleep(100)
return
end
end
---- [ END ANTI TOXIC ] ----
"**[" ..
getItemName(Pickaxe_ID):upper() .. " INFORMATION ]** \n" ..
"<:Globe:1190695520210006036> **|** " ..
getItemName(Pickaxe_ID) .. " World: `" .. world.name:upper() .. "` \n" ..
":package: **|** Total " ..
getItemName(Pickaxe_ID) .. " Dropped: \n" ..
getItemName(Pickaxe_ID) .. ": " ..
objectGrowScan(Pickaxe_ID)
)
end
end
dropEquipmentBeforeOfffline()
hiddenWorld()
autoRecon = false
bot:disconnect()
sleep(100)
webhookShareInfoAllBot()
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " playtime has exceeded the limit."
)
if Change_Bot == "YES" then
local currentBot = table.remove(Bot_List_Result,
botStartNumber)
table.insert(Bot_List_Result, currentBot)
botStartNumber = 0
changeBotStatus()
elseif Change_Bot == "NO" then
noStopScript = false
removeBotIndex(Remove_Bot, "Failed to change the bot
because the feature was disabled.")
end
elseif totalBotList == 1 then
Change_Bot_On_Bot_Playtime = "NO"
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** Change bot on bot
playtime is disabled, because the number of bot on the bot list is " ..
totalBotList .. "."
)
end
end
elseif Change_Bot_On_Bot_Playtime == "NO" then
return
end
end
function matchStatusConnect()
if bot.status ~= BotStatus.online and bot.status == BotStatus.offline then
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "|| [" ..
Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " .. bot.level
)
elseif bot.status ~= BotStatus.online and bot.status ==
BotStatus.wrong_password then
autoRecon = false
bot:disconnect()
sleep(100)
webhookShareInfoAllBot()
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "|| [" ..
Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " .. bot.level
)
removeBotLogFile(bot.name:upper(), statusBotDescription())
if Change_Bot == "YES" then
if totalBotList > 1 then
table.remove(Bot_List_Result, botStartNumber)
totalBotList = #Bot_List_Result
botStartNumber = botStartNumber - 1
changeBotStatus()
return
else
removeBotIndex(Remove_Bot)
end
elseif Change_Bot == "NO" then
noStopScript = false
removeBotIndex(Remove_Bot, "Failed to change the bot because the
feature was disabled.")
end
elseif bot.status ~= BotStatus.online and bot.status ==
BotStatus.account_banned then
autoRecon = false
bot:disconnect()
sleep(100)
webhookShareInfoAllBot()
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "|| [" ..
Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " .. bot.level
)
removeBotLogFile(bot.name:upper(), statusBotDescription())
if Change_Bot == "YES" then
if totalBotList > 1 then
table.remove(Bot_List_Result, botStartNumber)
totalBotList = #Bot_List_Result
botStartNumber = botStartNumber - 1
changeBotStatus()
return
else
removeBotIndex(Remove_Bot)
end
elseif Change_Bot == "NO" then
noStopScript = false
removeBotIndex(Remove_Bot, "Failed to change the bot because the
feature was disabled.")
end
elseif bot.status ~= BotStatus.online and bot.status ==
BotStatus.location_banned then
webhookShareInfoAllBot()
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "|| [" ..
Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " .. bot.level
)
if Change_Proxy == "YES" then
if totalChangeProxyList > 1 then
local proxyMatch = bot:getProxy().ip .. ":" ..
bot:getProxy().port .. ":" .. bot:getProxy().username .. ":" ..
bot:getProxy().password
if proxyMatch == Change_Proxy_List[proxyStartNumber] then
table.remove(Change_Proxy_List, proxyStartNumber)
totalChangeProxyList = #Change_Proxy_List
proxyStartNumber = proxyStartNumber - 1
end
changeProxyList()
else
removeBotIndex(Remove_Bot)
end
elseif Change_Proxy == "NO" then
noStopScript = false
removeBotIndex(Remove_Bot, "Failed to change the proxy because
the feature was disabled.")
end
elseif bot.status ~= BotStatus.online and bot.status ==
BotStatus.version_update then
autoRecon = false
noStopScript = false
bot:disconnect()
sleep(100)
webhookShareInfoAllBot()
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "|| [" ..
Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " .. bot.level
)
removeBotIndex(Remove_Bot, statusBotDescription())
return
elseif bot.status ~= BotStatus.online and bot.status ==
BotStatus.advanced_account_protection then
if AAP_Verification == "YES" then
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "||
[" .. Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " ..
bot.level .. " \n" ..
"<a:toa:997296837352505415> **|** Bot Information: Verify
your account from AAP! \n" ..
"<:Luxurious_Wall_Clock:1190695156333150258> **|** AAP
Verification Time: " .. convertMillisecondsToHours(AAP_Verification_Cooldown)
)
sleep(AAP_Verification_Cooldown)
elseif AAP_Verification == "NO" then
autoRecon = false
bot:disconnect()
sleep(100)
webhookShareInfoAllBot()
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "||
[" .. Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " ..
bot.level
)
removeBotLogFile(bot.name:upper(), statusBotDescription())
if Change_Bot == "YES" then
if totalBotList > 1 then
table.remove(Bot_List_Result, botStartNumber)
totalBotList = #Bot_List_Result
botStartNumber = botStartNumber - 1
changeBotStatus()
return
else
removeBotIndex(Remove_Bot)
end
elseif Change_Bot == "NO" then
noStopScript = false
removeBotIndex(Remove_Bot, "Failed to change the bot
because the feature was disabled.")
end
end
elseif bot.status ~= BotStatus.online and bot.status ==
BotStatus.server_overload then
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "|| [" ..
Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " .. bot.level
)
elseif bot.status ~= BotStatus.online and bot.status ==
BotStatus.too_many_login then
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "|| [" ..
Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " .. bot.level
)
elseif bot.status ~= BotStatus.online and bot.status == BotStatus.maintenance
then
webhookShareInfoAllBot()
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "|| [" ..
Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " .. bot.level ..
" \n" ..
"<:Luxurious_Wall_Clock:1190695156333150258> **|** Maintenance
Cooldown: " .. convertMillisecondsToHours(Maintenance_Cooldown_Milliseconds)
)
sleep(Maintenance_Cooldown_Milliseconds)
return
elseif bot.status ~= BotStatus.online and bot.status == BotStatus.http_block
then
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "|| [" ..
Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " .. bot.level
)
if Change_Proxy == "YES" then
if totalChangeProxyList > 1 then
local proxyMatch = bot:getProxy().ip .. ":" ..
bot:getProxy().port .. ":" .. bot:getProxy().username .. ":" ..
bot:getProxy().password
if proxyMatch == Change_Proxy_List[proxyStartNumber] then
table.remove(Change_Proxy_List, proxyStartNumber)
totalChangeProxyList = #Change_Proxy_List
proxyStartNumber = proxyStartNumber - 1
end
changeProxyList()
else
removeBotIndex(Remove_Bot)
end
elseif Change_Proxy == "NO" then
noStopScript = false
removeBotIndex(Remove_Bot, "Failed to change the proxy because
the feature was disabled.")
end
elseif bot.status ~= BotStatus.online and bot.status ==
BotStatus.error_connecting then
webhookShareInfoAllBot()
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "|| [" ..
Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " .. bot.level
)
if Change_Proxy == "YES" then
if totalChangeProxyList > 1 then
local proxyMatch = bot:getProxy().ip .. ":" ..
bot:getProxy().port .. ":" .. bot:getProxy().username .. ":" ..
bot:getProxy().password
if proxyMatch == Change_Proxy_List[proxyStartNumber] then
table.remove(Change_Proxy_List, proxyStartNumber)
totalChangeProxyList = #Change_Proxy_List
proxyStartNumber = proxyStartNumber - 1
end
changeProxyList()
else
removeBotIndex(Remove_Bot)
end
elseif Change_Proxy == "NO" then
noStopScript = false
removeBotIndex(Remove_Bot, "Failed to change the proxy because
the feature was disabled.")
end
elseif bot.status ~= BotStatus.online and bot.status ==
BotStatus.captcha_requested then
autoRecon = false
bot:disconnect()
sleep(100)
webhookShareInfoAllBot()
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "|| [" ..
Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " .. bot.level
)
removeBotLogFile(bot.name:upper(), statusBotDescription())
if Change_Bot == "YES" then
if totalBotList > 1 then
table.remove(Bot_List_Result, botStartNumber)
totalBotList = #Bot_List_Result
botStartNumber = botStartNumber - 1
changeBotStatus()
return
else
removeBotIndex(Remove_Bot)
end
elseif Change_Bot == "NO" then
noStopScript = false
removeBotIndex(Remove_Bot, "Failed to change the bot because the
feature was disabled.")
end
end
end
function connectBot()
statusConnectFunction = "CONNECTBOT"
tutorialWorld = "nil"
autoRecon = true
dropEquipmentBeforeOfffline()
hiddenWorld()
autoRecon = false
bot:disconnect()
sleep(100)
webhookShareInfoAllBot()
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "||
[" .. Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[Max Level]` \
n" ..
"<:Level:1190699579230916650> **|** Bot Level: " ..
bot.level
)
removeBotLogFile(bot.name:upper(), "Max Level")
if Change_Bot == "YES" then
table.remove(Bot_List_Result, botStartNumber)
totalBotList = #Bot_List_Result
botStartNumber = botStartNumber - 1
changeBotStatus()
elseif Change_Bot == "NO" then
noStopScript = false
removeBotIndex(Remove_Bot, "Failed to change the bot
because the feature was disabled.")
end
end
end
randomWorldBreak()
randomWorldQuest()
proxyTime = os.time()
botTime = os.time()
botTimeShow = os.time() - botTime
timeR()
timeRS()
useEmbed2 = true
checkDropPackCount2()
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " .. bot.name:upper() ..
" \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "|| [" ..
Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " .. bot.level .. " \
n" ..
"<:Purple_Gem:1190695162549108876> **|** Gems Amount: " ..
bot.gem_count .. " \n\n" ..
--questSequenceBackup = false
--startTutorialQuest()
changeBotHelp()
end
function changeBotHelp()
if Min_Level < getInfo(Block_ID).level and bot.level <
getInfo(Block_ID).level and bot:getAge() <= 120 then
Bot_Level_Rotation = true
Min_Level = getInfo(Block_ID).level
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** You need to be level " ..
Min_Level .. " to break " .. getItemName(Block_ID) .. "! The minimum and maximum
level on " .. bot.name:upper() .. " have been set to the latest. Now the minimum
level is " .. Min_Level .. " and the maximum level is " .. Max_Level .. "."
)
elseif inventory:getItemCount(Seed_ID) < 20 or
inventory:getItemCount(Block_ID) == 0 then
seedWorld()
if bot:isInWorld(Save_Seed_World) then
for _, obj in pairs(world:getObjects()) do
if bot.status == BotStatus.online and obj.id == Seed_ID
then
if #bot:getPath(tileRounding(obj.x / 32),
tileRounding(obj.y / 32)) > 0 then
findpath(tileRounding(obj.x / 32),
tileRounding(obj.y / 32))
elseif #bot:getPath(tileRounding(obj.x / 32),
tileRounding(obj.y / 32)) == 0 and bot:isInTile(tileRounding(obj.x / 32),
tileRounding(obj.y / 32)) then
findpath(tileRounding(obj.x / 32),
tileRounding(obj.y / 32))
end
elseif bot.status ~= BotStatus.online or (bot.status ==
BotStatus.online and bot:getPing() == 0) then
defaultWorldName = world.name:upper()
defaultBotX = bot.x
defaultBotY = bot.y
hiddenWorld()
end
main()
end
function changeBotStatus()
if totalBotList == 0 and noStopScript == true then
autoRecon = false
noStopScript = false
bot:disconnect()
sleep(100)
webhookShareInfoAllBot()
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** Your bot total in the bot list
is " .. totalBotList .. ", so the script at this index will stop running."
)
removeBotIndex(Remove_Bot, "Your bot total in the bot list is " ..
totalBotList .. ", so the script at this index will stop running.")
end
botStartNumber = botStartNumber + 1
Bot_Format = niL
if botStartNumber <= totalBotList then
cachedWorldBreak = nil
notWorldBanned = true
elseif botStartNumber > totalBotList then
botStartNumber = 1
end
sleep(8000)
maxReconnect()
webhookShareInfoBot(
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "|| [" ..
Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " .. bot.level ..
" \n" ..
"<a:toa:997296837352505415> **|** Bot Trying to Reconnect! (" ..
connectCount .. "/" .. maxReconnectCount .. ")"
)
bot:connect()
--addEvent(Event.variantlist, tutorialQuestEvent)
--listenEvents(Reconnect_Delay_Cooldown_Seconds)
sleep(Reconnect_Delay)
while bot.status == BotStatus.changing_subserver do
maxReconnect()
webhookShareInfoBot(
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "||
[" .. Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " ..
bot.level .. " \n" ..
"<a:toa:997296837352505415> **|** Bot Trying to Reconnect!
(" .. connectCount .. "/" .. maxReconnectCount .. ")"
)
bot:connect()
--addEvent(Event.variantlist, tutorialQuestEvent)
--listenEvents(Reconnect_Delay_Cooldown_Seconds)
sleep(Reconnect_Delay)
end
end
connectCount = 0
end
---- [ END CHANGING SUBSERVER ] ----
retry = true
reconnect(defaultWorldName, defaultBotX, defaultBotY)
break
end
end
if retry then
fossilRockScan()
end
return fossil
end
function unreadyTreeTutorialQuestScan(itemID)
local retry = false
local unreadyTree = 0
retry = true
reconnect(defaultWorldName, defaultBotX, defaultBotY)
break
end
end
if retry then
unreadyTreeTutorialQuestScan(itemID)
end
return unreadyTree
end
function readyTreeScan()
local retry = false
local readyTree = 0
retry = true
reconnect(defaultWorldName, defaultBotX, defaultBotY)
break
end
end
if retry then
readyTreeScan()
end
return readyTree
end
function readyTreeBelowScan()
local retry = false
local readyTree = 0
retry = true
reconnect(defaultWorldName, defaultBotX, defaultBotY)
break
end
end
if retry then
readyTreeScan()
end
return readyTree
end
function unreadyTreeScan()
local retry = false
local unreadyTree = 0
if retry then
unreadyTreeScan()
end
return unreadyTree
end
function readyMatureRootsScan()
local retry = false
local readyMatureRoots = 0
retry = true
reconnect(defaultWorldName, defaultBotX, defaultBotY)
break
end
end
if retry then
readyMatureRootsScan()
end
return readyMatureRoots
end
function readyMatureRootsBelowScan()
local retry = false
local readyMatureRoots = 0
retry = true
reconnect(defaultWorldName, defaultBotX, defaultBotY)
break
end
end
if retry then
readyMatureRootsScan()
end
return readyMatureRoots
end
function jobScan()
local retry = false
job = 0
retry = true
reconnect(defaultWorldName, defaultBotX, defaultBotY)
break
end
end
if retry then
jobScan()
end
return job
end
function emptyTileScan()
local retry = false
local emptyTile = 0
for _, tile in pairs(world:getTiles()) do
if bot.status == BotStatus.online then
if bot:isInWorld(Rotation_World) and tile.fg == 0 and
world:getTile(tile.x, tile.y + 1).fg ~= 0 and world:getTile(tile.x, tile.y + 1).fg
% 2 == 0 and world:getTile(tile.x, tile.y + 1).fg ~= Block_ID and
world:hasAccess(tile.x, tile.y) ~= 0 then
if #bot:getPath(tile.x, tile.y) > 0 then
emptyTile = emptyTile + 1
elseif #bot:getPath(tile.x, tile.y) == 0 and
bot:isInTile(tile.x, tile.y - 1) then
emptyTile = emptyTile + 1
end
end
elseif bot.status ~= BotStatus.online or (bot.status ==
BotStatus.online and bot:getPing() == 0) then
defaultWorldName = world.name:upper()
defaultBotX = bot.x
defaultBotY = bot.y
retry = true
reconnect(defaultWorldName, defaultBotX, defaultBotY)
break
end
end
if retry then
emptyTileScan()
end
return emptyTile
end
function emptyTileBelowScan()
local retry = false
local emptyTile = 0
retry = true
reconnect(defaultWorldName, defaultBotX, defaultBotY)
break
end
end
if retry then
emptyTileScan()
end
return emptyTile
end
function ghostScan()
local retry = false
local ghost = 0
retry = true
reconnect(defaultWorldName, defaultBotX, defaultBotY)
break
end
end
if retry then
ghostScan()
end
return ghost
end
function placedItemInOtherWorldScan(itemID)
local retry = false
local placed = 0
if bot:isInWorld() then
while bot:isInWorld() and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg ~= 6 do
bot:respawn()
sleep(1000)
end
retry = true
reconnect(defaultWorldName, defaultBotX, defaultBotY)
break
end
end
end
if retry then
placedItemInOtherWorldScan(itemID)
end
return placed
end
function objectSafeScan(itemID)
local retry = false
local float = 0
retry = true
reconnect(defaultWorldName, defaultBotX, defaultBotY)
break
end
end
if retry then
objectSafeScan(itemID)
end
return float
end
function tileSafeScan(itemID)
local retry = false
local tileCount = 0
retry = true
reconnect(defaultWorldName, defaultBotX, defaultBotY)
break
end
end
if retry then
tileSafeScan(itemID)
end
return tileCount
end
function objectGrowScan(itemID)
local retry = false
local count = 0
retry = true
reconnect(defaultWorldName, defaultBotX, defaultBotY)
break
end
end
if retry then
objectGrowScan(itemID)
end
return count
end
function tileGrowScan(itemID)
local retry = false
local count = 0
retry = true
reconnect(defaultWorldName, defaultBotX, defaultBotY)
break
end
end
if retry then
tileGrowScan(itemID)
end
return count
end
function doorScan()
local retry = false
local door = 0
retry = true
reconnect(defaultWorldName, defaultBotX, defaultBotY)
break
end
end
if retry then
doorScan()
end
return door
end
function playerScan()
local retry = false
local playerCount = 0
retry = true
reconnect(defaultWorldName, defaultBotX, defaultBotY)
break
end
end
if retry then
playerScan()
end
return playerCount
end
---- [ END SCAN ] ----
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " .. bot.name:upper() ..
" \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "|| [" ..
Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " .. bot.level .. " \
n" ..
"<:Purple_Gem:1190695162549108876> **|** Gems Amount: " ..
bot.gem_count .. " \n\n" ..
function randomChat()
if Random_Chat_Status == "YES" then
local result = performActionRandomChat()
if result then
bot:setBubble(Bubble.talk)
sleep(#result * 80)
bot:say(result)
sleep(10)
bot:setBubble(Bubble.none)
end
elseif Random_Chat_Status == "NO" then
return
end
end
---- [ END RANDOM CHAT ] ----
function reconnect(world_name_reconnect, x, y)
world_name_reconnect = world_name_reconnect:upper()
if autoRecon then
if bot.status ~= BotStatus.online then
webhookShareInfoAllBot()
webhookShareInfoReconnect(
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "||
[" .. Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " ..
bot.level
)
maxReconnect()
webhookShareInfoReconnect(
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "||
[" .. Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " ..
bot.level .. " \n" ..
"<a:toa:997296837352505415> **|** Bot Trying to Reconnect!
(" .. connectCount .. "/" .. maxReconnectCount .. ")"
)
bot:connect()
sleep(Reconnect_Delay)
while true do
while bot.status ~= BotStatus.online and noStopScript ==
true do
maxReconnect()
webhookShareInfoReconnect(
"<:GT_Bot:1190695123336560781> **|** Bot Name:
" .. bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" ..
bot:getLogin().mac .. "|| [" .. Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot
Status: " .. activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level:
" .. bot.level .. " \n" ..
"<a:toa:997296837352505415> **|** Bot Trying to
Reconnect! (" .. connectCount .. "/" .. maxReconnectCount .. ")"
)
bot:connect()
sleep(Reconnect_Delay)
end
sleep(3000)
changingSubserver()
local maxJoinWorld = 0
while bot.status == BotStatus.online and not
bot:isInWorld(world_name_reconnect) do
bot:warp(world_name_reconnect .. "|" ..
matchDoorID())
if world_name_reconnect == Rotation_World then
addEvent(Event.variantlist,
worldFarmBannedEvent)
listenEvents(10)
elseif ((world_name_reconnect ==
Custom_World_Break_Other_World) or (world_name_reconnect == randomWorldBreak()))
then
addEvent(Event.variantlist,
breakOtherWorldEvent)
listenEvents(10)
else
addEvent(Event.variantlist, worldBannedEvent)
listenEvents(10)
end
changingSubserver()
maxJoinWorld = maxJoinWorld + 1
while maxJoinWorld >= 5 do
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " has tried to enter the world 5 times. \n" ..
"<:Luxurious_Wall_Clock:11906951563331502
58> **|** Cooldown: " .. convertMillisecondsToHours(Hard_Warp_Join_World_Delay)
)
sleep(Hard_Warp_Join_World_Delay)
maxJoinWorld = 0
if not bot:isInWorld(world_name_reconnect) then
bot:disconnect()
sleep(100)
reconnect(world_name_reconnect, x, y)
end
end
end
sleep(5000)
if bot.status == BotStatus.online and
bot:isInWorld(world_name_reconnect) then
if Auto_Hidden_World == "YES" and (not
bot:isInWorld(Rotation_World) or not bot:isInWorld(Custom_World_Break_Other_World)
or not bot:isInWorld(randomWorldBreak()) or not bot:isInWorld(tutorialWorld) or not
string.find(world.name:upper(), "GKSQUEST")) then
for _, hiddenWorld in pairs(Hidden_World_List)
do
local hiddenWorld = hiddenWorld:upper()
if hiddenWorld == world_name_reconnect
and bot:isInWorld(hiddenWorld) then
break
end
end
else
if bot:isInWorld() and
(string.find(world.name:upper(), bot.name:upper()) or
string.find(world.name:upper(), randomWorldBreak()) or
string.find(world.name:upper(), "GKSQUEST")) then
break
else
while bot.status == BotStatus.online and
bot:isInWorld(world_name_reconnect) and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg == 6 and doorScan() > 0 do
bot:warp(world_name_reconnect ..
"|" .. matchDoorID())
sleep(Join_World_Delay)
changingSubserver()
if bot:isInWorld() and
(string.find(world.name:upper(), bot.name:upper()) or
string.find(world.name:upper(), randomWorldBreak()) or
string.find(world.name:upper(), "GKSQUEST")) then
break
end
end
end
end
local maxJoinWorld = 0
while bot:isInWorld(world_name_reconnect) and
world_name_reconnect == Rotation_World and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg == 6 and maxJoinWorld < 5 and
noStopScript == true do
bot:warp(world_name_reconnect .. "|" .. matchDoorID())
sleep(Join_World_Delay)
changingSubserver()
maxJoinWorld = maxJoinWorld + 1
if maxJoinWorld >= 3 then
changingSubserver()
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " has tried to enter the door ID 3 times. Maybe the rotation
door ID is wrong."
)
maxJoinWorld = 0
nextWorldStatus = "otherCondition"
loopStatus()
end
end
function farmWorld()
reconnect(Rotation_World, 1, 23)
local maxJoinWorld = 0
while bot:isInWorld(Rotation_World) and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg == 6 and maxJoinWorld < 5 and
noStopScript == true do
reconnect(Rotation_World, 1, 23)
bot.auto_collect = true
sleep(100)
bot:warp(Rotation_World .. "|" .. Rotation_Door_ID)
sleep(Join_World_Delay)
changingSubserver()
maxJoinWorld = maxJoinWorld + 1
if maxJoinWorld >= 3 then
changingSubserver()
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " has tried to enter the door ID 3 times. Maybe the rotation
door ID is wrong."
)
maxJoinWorld = 0
nextWorldStatus = "otherCondition"
loopStatus()
end
end
reconnect(Rotation_World, 1, 23)
if bot:isInWorld(Rotation_World) and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg ~= 6 then
bot.auto_collect = true
sleep(100)
else
farmWorld()
end
else
reconnect(Rotation_World, 1, 23)
farmWorld()
end
elseif bot:isInWorld(Rotation_World) and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg == 6 then
local maxJoinWorld = 0
while bot:isInWorld(Rotation_World) and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg == 6 and maxJoinWorld < 5 and
noStopScript == true do
reconnect(Rotation_World, 1, 23)
bot.auto_collect = true
sleep(100)
bot:warp(Rotation_World .. "|" .. Rotation_Door_ID)
sleep(Join_World_Delay)
changingSubserver()
maxJoinWorld = maxJoinWorld + 1
if maxJoinWorld >= 3 then
changingSubserver()
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " has tried to enter the door ID 3 times. Maybe the rotation
door ID is wrong."
)
maxJoinWorld = 0
nextWorldStatus = "otherCondition"
loopStatus()
end
end
reconnect(Rotation_World, 1, 23)
if bot:isInWorld(Rotation_World) and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg ~= 6 then
bot.auto_collect = true
sleep(100)
else
farmWorld()
end
end
end
function packWorld()
reconnect(Save_Pack_World, 1, 23)
local maxJoinWorld = 0
while not bot:isInWorld(Save_Pack_World) and maxJoinWorld < 5 and
noStopScript == true do
reconnect(Save_Pack_World, 1, 23)
bot.auto_collect = false
sleep(100)
bot:warp(Save_Pack_World .. "|" .. Save_Pack_Door_ID)
addEvent(Event.variantlist, worldBannedEvent)
listenEvents(10)
changingSubserver()
maxJoinWorld = maxJoinWorld + 1
while maxJoinWorld >= 5 do
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " has tried to enter the world 5 times. \n" ..
"<:Luxurious_Wall_Clock:1190695156333150258>
**|** Cooldown: " .. convertMillisecondsToHours(Hard_Warp_Join_World_Delay)
)
sleep(Hard_Warp_Join_World_Delay)
maxJoinWorld = 0
if not bot:isInWorld(Save_Pack_World) then
bot:disconnect()
sleep(100)
reconnect(Save_Pack_World, 1, 23)
end
end
end
local maxJoinWorld = 0
while bot:isInWorld(Save_Pack_World) and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg == 6 and maxJoinWorld < 5 and
noStopScript == true do
reconnect(Save_Pack_World, 1, 23)
bot.auto_collect = false
sleep(100)
bot:warp(Save_Pack_World .. "|" .. Save_Pack_Door_ID)
sleep(Join_World_Delay)
changingSubserver()
maxJoinWorld = maxJoinWorld + 1
if maxJoinWorld >= 5 then
changingSubserver()
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " has tried to enter the door ID 5 times. Maybe the save pack
door ID is wrong."
)
maxJoinWorld = 0
autoRecon = false
noStopScript = false
removeBotIndex(Remove_Bot, bot.name:upper() .. " has
tried to enter the door ID 5 times. Maybe the save pack door ID is wrong.")
end
end
reconnect(Save_Pack_World, 1, 23)
else
reconnect(Save_Pack_World, 1, 23)
packWorld()
end
elseif bot:isInWorld(Save_Pack_World) and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg == 6 then
local maxJoinWorld = 0
while bot:isInWorld(Save_Pack_World) and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg == 6 and maxJoinWorld < 5 and
noStopScript == true do
reconnect(Save_Pack_World, 1, 23)
bot.auto_collect = false
sleep(100)
bot:warp(Save_Pack_World .. "|" .. Save_Pack_Door_ID)
sleep(Join_World_Delay)
changingSubserver()
maxJoinWorld = maxJoinWorld + 1
if maxJoinWorld >= 5 then
changingSubserver()
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " has tried to enter the door ID 5 times. Maybe the save pack
door ID is wrong."
)
maxJoinWorld = 0
autoRecon = false
noStopScript = false
removeBotIndex(Remove_Bot, bot.name:upper() .. " has tried
to enter the door ID 5 times. Maybe the save pack door ID is wrong.")
end
end
end
end
function seedWorld()
reconnect(Save_Seed_World, findpathSeedX, findpathSeedY)
local maxJoinWorld = 0
while not bot:isInWorld(Save_Seed_World) and maxJoinWorld < 5 and
noStopScript == true do
reconnect(Save_Seed_World, findpathSeedX, findpathSeedY)
bot.auto_collect = false
sleep(100)
bot:warp(Save_Seed_World .. "|" .. Save_Seed_Door_ID)
addEvent(Event.variantlist, worldBannedEvent)
listenEvents(10)
changingSubserver()
maxJoinWorld = maxJoinWorld + 1
while maxJoinWorld >= 5 do
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " has tried to enter the world 5 times. \n" ..
"<:Luxurious_Wall_Clock:1190695156333150258>
**|** Cooldown: " .. convertMillisecondsToHours(Hard_Warp_Join_World_Delay)
)
sleep(Hard_Warp_Join_World_Delay)
maxJoinWorld = 0
if not bot:isInWorld(Save_Seed_World) then
bot:disconnect()
sleep(100)
reconnect(Save_Seed_World, findpathSeedX,
findpathSeedY)
end
end
end
local maxJoinWorld = 0
while bot:isInWorld(Save_Seed_World) and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg == 6 and maxJoinWorld < 5 and
noStopScript == true do
reconnect(Save_Seed_World, findpathSeedX, findpathSeedY)
bot.auto_collect = false
sleep(100)
bot:warp(Save_Seed_World .. "|" .. Save_Seed_Door_ID)
sleep(Join_World_Delay)
changingSubserver()
maxJoinWorld = maxJoinWorld + 1
if maxJoinWorld >= 5 then
changingSubserver()
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " has tried to enter the door ID 5 times. Maybe the save seed
door ID is wrong."
)
maxJoinWorld = 0
autoRecon = false
noStopScript = false
removeBotIndex(Remove_Bot, bot.name:upper() .. " has
tried to enter the door ID 5 times. Maybe the save seed door ID is wrong.")
end
end
function pickaxeWorld()
reconnect(Pickaxe_World, 1, 23)
local maxJoinWorld = 0
while not bot:isInWorld(Pickaxe_World) and maxJoinWorld < 5 and
noStopScript == true do
reconnect(Pickaxe_World, 1, 23)
bot.auto_collect = false
sleep(100)
bot:warp(Pickaxe_World .. "|" .. Pickaxe_Door_ID)
addEvent(Event.variantlist, worldBannedEvent)
listenEvents(10)
changingSubserver()
maxJoinWorld = maxJoinWorld + 1
while maxJoinWorld >= 5 do
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " has tried to enter the world 5 times. \n" ..
"<:Luxurious_Wall_Clock:1190695156333150258>
**|** Cooldown: " .. convertMillisecondsToHours(Hard_Warp_Join_World_Delay)
)
sleep(Hard_Warp_Join_World_Delay)
maxJoinWorld = 0
if not bot:isInWorld(Pickaxe_World) then
bot:disconnect()
sleep(100)
reconnect(Pickaxe_World, 1, 23)
end
end
end
local maxJoinWorld = 0
while bot:isInWorld(Pickaxe_World) and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg == 6 and maxJoinWorld < 5 and
noStopScript == true do
reconnect(Pickaxe_World, 1, 23)
bot.auto_collect = false
sleep(100)
bot:warp(Pickaxe_World .. "|" .. Pickaxe_Door_ID)
sleep(Join_World_Delay)
changingSubserver()
maxJoinWorld = maxJoinWorld + 1
if maxJoinWorld >= 5 then
changingSubserver()
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " has tried to enter the door ID 5 times. Maybe the pickaxe
door ID is wrong."
)
maxJoinWorld = 0
autoRecon = false
noStopScript = false
removeBotIndex(Remove_Bot, bot.name:upper() .. " has
tried to enter the door ID 5 times. Maybe the pickaxe door ID is wrong.")
end
end
reconnect(Pickaxe_World, 1, 23)
else
reconnect(Pickaxe_World, 1, 23)
pickaxeWorld()
end
elseif bot:isInWorld(Pickaxe_World) and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg == 6 then
local maxJoinWorld = 0
while bot:isInWorld(Pickaxe_World) and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg == 6 and maxJoinWorld < 5 and
noStopScript == true do
reconnect(Pickaxe_World, 1, 23)
bot.auto_collect = false
sleep(100)
bot:warp(Pickaxe_World .. "|" .. Pickaxe_Door_ID)
sleep(Join_World_Delay)
changingSubserver()
maxJoinWorld = maxJoinWorld + 1
if maxJoinWorld >= 5 then
changingSubserver()
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " has tried to enter the door ID 5 times. Maybe the pickaxe
door ID is wrong."
)
maxJoinWorld = 0
autoRecon = false
noStopScript = false
removeBotIndex(Remove_Bot, bot.name:upper() .. " has tried
to enter the door ID 5 times. Maybe the pickaxe door ID is wrong.")
end
end
end
end
function equipmentWorld()
reconnect(Equipment_World, 1, 23)
local maxJoinWorld = 0
while not bot:isInWorld(Equipment_World) and maxJoinWorld < 5 and
noStopScript == true do
reconnect(Equipment_World, 1, 23)
bot.auto_collect = false
sleep(100)
bot:warp(Equipment_World .. "|" .. Equipment_Door_ID)
addEvent(Event.variantlist, worldBannedEvent)
listenEvents(10)
changingSubserver()
maxJoinWorld = maxJoinWorld + 1
while maxJoinWorld >= 5 do
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " has tried to enter the world 5 times. \n" ..
"<:Luxurious_Wall_Clock:1190695156333150258>
**|** Cooldown: " .. convertMillisecondsToHours(Hard_Warp_Join_World_Delay)
)
sleep(Hard_Warp_Join_World_Delay)
maxJoinWorld = 0
if not bot:isInWorld(Equipment_World) then
bot:disconnect()
sleep(100)
reconnect(Equipment_World, 1, 23)
end
end
end
local maxJoinWorld = 0
while bot:isInWorld(Equipment_World) and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg == 6 and maxJoinWorld < 5 and
noStopScript == true do
reconnect(Equipment_World, 1, 23)
bot.auto_collect = false
sleep(100)
bot:warp(Equipment_World .. "|" .. Equipment_Door_ID)
sleep(Join_World_Delay)
changingSubserver()
maxJoinWorld = maxJoinWorld + 1
if maxJoinWorld >= 5 then
changingSubserver()
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " has tried to enter the door ID 5 times. Maybe the equipment
door ID is wrong."
)
maxJoinWorld = 0
autoRecon = false
noStopScript = false
removeBotIndex(Remove_Bot, bot.name:upper() .. " has
tried to enter the door ID 5 times. Maybe the equipment door ID is wrong.")
end
end
reconnect(Equipment_World, 1, 23)
else
reconnect(Equipment_World, 1, 23)
equipmentWorld()
end
elseif bot:isInWorld(Equipment_World) and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg == 6 then
local maxJoinWorld = 0
while bot:isInWorld(Equipment_World) and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg == 6 and maxJoinWorld < 5 and
noStopScript == true do
reconnect(Equipment_World, 1, 23)
bot.auto_collect = false
sleep(100)
bot:warp(Equipment_World .. "|" .. Equipment_Door_ID)
sleep(Join_World_Delay)
changingSubserver()
maxJoinWorld = maxJoinWorld + 1
if maxJoinWorld >= 5 then
changingSubserver()
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " has tried to enter the door ID 5 times. Maybe the equipment
door ID is wrong."
)
maxJoinWorld = 0
autoRecon = false
noStopScript = false
removeBotIndex(Remove_Bot, bot.name:upper() .. " has tried
to enter the door ID 5 times. Maybe the equipment door ID is wrong.")
end
end
end
end
function hiddenWorld()
if Auto_Hidden_World == "YES" then
bot.auto_collect = false
sleep(100)
local maxJoinWorld = 0
while not bot:isInWorld(hiddenWorld) and maxJoinWorld < 5
do
reconnect(hiddenWorld, 50, 23)
bot.auto_collect = false
sleep(100)
bot:warp(hiddenWorld)
sleep(Join_World_Delay)
changingSubserver()
maxJoinWorld = maxJoinWorld + 1
while maxJoinWorld >= 5 do
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " has tried to enter the world 5 times. \n" ..
"<:Luxurious_Wall_Clock:11906951563331502
58> **|** Cooldown: " .. convertMillisecondsToHours(Hard_Warp_Join_World_Delay)
)
sleep(Hard_Warp_Join_World_Delay)
maxJoinWorld = 0
if not bot:isInWorld(hiddenWorld) then
bot:disconnect()
sleep(100)
reconnect(hiddenWorld, 50, 23)
end
end
end
lastHiddenWorld = hiddenWorld:upper()
end
if bot:isInWorld(lastHiddenWorld) then
local checkFindpathUp = true
local checkFindpathLeft = true
local checkFindpathRight = true
function breakOtherWorld()
bot.auto_collect = false
sleep(100)
if bot.status == BotStatus.online and bot.auto_collect == false then
local maxJoinWorld = 0
while not bot:isInWorld(Custom_World_Break_Other_World) and
maxJoinWorld < 5 and noStopScript == true do
reconnect(Custom_World_Break_Other_World, 1, 23)
bot.auto_collect = false
sleep(100)
bot:warp(Custom_World_Break_Other_World .. "|" ..
Custom_World_Break_Other_World_Door_ID)
addEvent(Event.variantlist, breakOtherWorldEvent)
listenEvents(10)
changingSubserver()
maxJoinWorld = maxJoinWorld + 1
while maxJoinWorld >= 5 do
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " has tried to enter the world 5 times. \n" ..
"<:Luxurious_Wall_Clock:11906951563331502
58> **|** Cooldown: " .. convertMillisecondsToHours(Hard_Warp_Join_World_Delay)
)
sleep(Hard_Warp_Join_World_Delay)
maxJoinWorld = 0
if not
bot:isInWorld(Custom_World_Break_Other_World) then
bot:disconnect()
sleep(100)
reconnect(Custom_World_Break_Other_World,
1, 23)
end
end
end
local maxJoinWorld = 0
while bot:isInWorld(Custom_World_Break_Other_World) and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg == 6 and maxJoinWorld < 5 and doorScan()
> 0 and noStopScript == true do
reconnect(Custom_World_Break_Other_World, 1, 23)
bot.auto_collect = true
sleep(100)
bot:warp(Custom_World_Break_Other_World .. "|" ..
Custom_World_Break_Other_World_Door_ID)
sleep(Join_World_Delay)
changingSubserver()
maxJoinWorld = maxJoinWorld + 1
if maxJoinWorld >= 5 then
changingSubserver()
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " has tried to enter the door ID 5 times. Maybe the break other
world door ID is wrong."
)
maxJoinWorld = 0
autoRecon = false
noStopScript = false
removeBotIndex(Remove_Bot, bot.name:upper() ..
" has tried to enter the door ID 5 times. Maybe the break other world door ID is
wrong.")
end
end
reconnect(Custom_World_Break_Other_World, 1, 23)
bot.auto_collect = true
sleep(100)
elseif Use_Random_World_For_Break == "YES" then
randomBreakOtherWorldLogFile(bot.name:upper(),
randomWorldBreak())
bot:warp(randomWorldBreak())
sleep(Join_World_Delay)
changingSubserver()
local maxJoinWorld = 0
while not bot:isInWorld(randomWorldBreak()) and
maxJoinWorld < 5 and noStopScript == true do
reconnect(randomWorldBreak(), breakOtherWorldX,
breakOtherWorldY)
bot.auto_collect = false
sleep(100)
bot:warp(randomWorldBreak())
addEvent(Event.variantlist, breakOtherWorldEvent)
listenEvents(10)
changingSubserver()
maxJoinWorld = maxJoinWorld + 1
while maxJoinWorld >= 5 do
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " has tried to enter the world 5 times. \n" ..
"<:Luxurious_Wall_Clock:11906951563331502
58> **|** Cooldown: " .. convertMillisecondsToHours(Hard_Warp_Join_World_Delay)
)
sleep(Hard_Warp_Join_World_Delay)
maxJoinWorld = 0
if not bot:isInWorld(randomWorldBreak()) then
bot:disconnect()
sleep(100)
reconnect(randomWorldBreak(),
breakOtherWorldX, breakOtherWorldY)
end
end
end
if bot:isInWorld("DISNEYLAND") then
cachedWorldBreak = nil
breakOtherWorld()
end
if bot:isInWorld(randomWorldBreak()) and
world:hasAccess(bot.x, bot.y - 1) == 0 and placedItemInOtherWorldScan(204) > 0 then
cachedWorldBreak = nil
breakOtherWorld()
end
if bot:isInWorld(randomWorldBreak()) and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg == 6 then
if placedItemInOtherWorldScan(204) == 0 then
while inventory:getItemCount(204) < 1 and
bot.gem_count >= 200 do
bot:buy("big_lock")
sleep(math.random(Auto_Buy_Delay,
Auto_Buy_Delay + 100))
end
end
if bot:isInWorld(randomWorldBreak()) and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg == 6 and inventory:getItemCount(204) >=
1 then
bot:place(math.floor(world:getLocal().posx /
32), math.floor(world:getLocal().posy / 32) - 1, 204)
sleep(math.random(Place_Delay, Place_Delay +
100))
end
if placedItemInOtherWorldScan(226) == 0 and
Buy_Signal_Jammer == "YES" then
while inventory:getItemCount(226) < 1 and
bot.gem_count >= 2000 do
bot:buy("signal_jammer")
sleep(math.random(Auto_Buy_Delay,
Auto_Buy_Delay + 100))
end
end
if bot:isInWorld(randomWorldBreak()) and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg == 6 and inventory:getItemCount(226) >=
1 then
bot:place(math.floor(world:getLocal().posx /
32) + 1, math.floor(world:getLocal().posy / 32) - 1, 226)
sleep(math.random(Place_Delay, Place_Delay +
100))
if bot:isInWorld(randomWorldBreak()) and not
world:getTile(math.floor(world:getLocal().posx / 32) + 1,
math.floor(world:getLocal().posy / 32) - 1):hasFlag(64) then
bot:hit(math.floor(world:getLocal().posx / 32) + 1,
math.floor(world:getLocal().posy / 32) - 1)
sleep(math.random(Hit_Delay, Hit_Delay +
100))
end
end
end
local maxJoinWorld = 0
while not bot:isInWorld(tutorialWorld) and maxJoinWorld < 5
and noStopScript == true do
reconnect(tutorialWorld, 1, 1)
bot.auto_collect = false
sleep(100)
bot:warp(tutorialWorld)
addEvent(Event.variantlist, worldBannedEvent)
listenEvents(10)
changingSubserver()
maxJoinWorld = maxJoinWorld + 1
while maxJoinWorld >= 5 do
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " has tried to enter the world 5 times. \n" ..
"<:Luxurious_Wall_Clock:11906951563331502
58> **|** Cooldown: " .. convertMillisecondsToHours(Hard_Warp_Join_World_Delay)
)
sleep(Hard_Warp_Join_World_Delay)
maxJoinWorld = 0
if not bot:isInWorld(tutorialWorld) then
bot:disconnect()
sleep(100)
reconnect(tutorialWorld, 1, 23)
end
end
end
reconnect(tutorialWorld, 1, 23)
bot.auto_collect = true
sleep(100)
end
elseif Break_Other_World == "NO" then
return
end
else
reconnect(randomWorldBreak(), breakOtherWorldX, breakOtherWorldY)
breakOtherWorld()
end
end
function whitelistWorld()
reconnect(Whitelist_World, 1, 23)
local maxJoinWorld = 0
while not bot:isInWorld(Whitelist_World) and maxJoinWorld < 5 and
noStopScript == true do
reconnect(Whitelist_World, 1, 23)
bot.auto_collect = false
sleep(100)
bot:warp(Whitelist_World .. "|" .. Whitelist_Door_ID)
addEvent(Event.variantlist, worldBannedEvent)
listenEvents(10)
changingSubserver()
maxJoinWorld = maxJoinWorld + 1
while maxJoinWorld >= 5 do
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " has tried to enter the world 5 times. \n" ..
"<:Luxurious_Wall_Clock:1190695156333150258>
**|** Cooldown: " .. convertMillisecondsToHours(Hard_Warp_Join_World_Delay)
)
sleep(Hard_Warp_Join_World_Delay)
maxJoinWorld = 0
if not bot:isInWorld(Whitelist_World) then
bot:disconnect()
sleep(100)
reconnect(Whitelist_World, 1, 23)
end
end
end
local maxJoinWorld = 0
while bot:isInWorld(Whitelist_World) and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg == 6 and maxJoinWorld < 5 and
noStopScript == true do
reconnect(Whitelist_World, 1, 23)
bot.auto_collect = false
sleep(100)
bot:warp(Whitelist_World .. "|" .. Whitelist_Door_ID)
sleep(Join_World_Delay)
changingSubserver()
maxJoinWorld = maxJoinWorld + 1
if maxJoinWorld >= 5 then
changingSubserver()
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " has tried to enter the door ID 5 times. Maybe the whitelist
door ID is wrong."
)
maxJoinWorld = 0
autoRecon = false
noStopScript = false
removeBotIndex(Remove_Bot, bot.name:upper() .. " has
tried to enter the door ID 5 times. Maybe the whitelist door ID is wrong.")
end
end
reconnect(Whitelist_World, 1, 23)
else
reconnect(Whitelist_World, 1, 23)
whitelistWorld()
end
elseif bot:isInWorld(Whitelist_World) and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg == 6 then
local maxJoinWorld = 0
while bot:isInWorld(Whitelist_World) and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg == 6 and maxJoinWorld < 5 and
noStopScript == true do
reconnect(Whitelist_World, 1, 23)
bot.auto_collect = false
sleep(100)
bot:warp(Whitelist_World .. "|" .. Whitelist_Door_ID)
sleep(Join_World_Delay)
changingSubserver()
maxJoinWorld = maxJoinWorld + 1
if maxJoinWorld >= 5 then
changingSubserver()
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " has tried to enter the door ID 5 times. Maybe the whitelist
door ID is wrong."
)
maxJoinWorld = 0
autoRecon = false
noStopScript = false
removeBotIndex(Remove_Bot, bot.name:upper() .. " has tried
to enter the door ID 5 times. Maybe the whitelist door ID is wrong.")
end
end
end
end
function questWorld()
reconnect(randomWorldQuest(), 1, 23)
if bot:isInWorld("DISNEYLAND") then
cachedWorldQuest = nil
questWorld()
end
if bot:isInWorld(randomWorldQuest()) and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg == 6 and world:hasAccess(bot.x, bot.y)
== 0 then
cachedWorldQuest = nil
questWorld()
end
reconnect(randomWorldQuest(), 1, 23)
if bot:isInWorld(randomWorldQuest()) then
bot.auto_collect = true
sleep(100)
else
questWorld()
end
else
reconnect(randomWorldQuest(), 1, 23)
questWorld()
end
end
end
function cookWorld()
reconnect(Cook_World, X_Cook, Y_Cook)
local maxJoinWorld = 0
while not bot:isInWorld(Cook_World) and maxJoinWorld < 5 and
noStopScript == true do
reconnect(Cook_World, X_Cook, Y_Cook)
bot.auto_collect = false
sleep(100)
bot:warp(Cook_World .. "|" .. Cook_Door_ID)
addEvent(Event.variantlist, worldBannedEvent)
listenEvents(10)
changingSubserver()
maxJoinWorld = maxJoinWorld + 1
while maxJoinWorld >= 5 do
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " has tried to enter the world 5 times. \n" ..
"<:Luxurious_Wall_Clock:1190695156333150258>
**|** Cooldown: " .. convertMillisecondsToHours(Hard_Warp_Join_World_Delay)
)
sleep(Hard_Warp_Join_World_Delay)
maxJoinWorld = 0
if not bot:isInWorld(Cook_World) then
bot:disconnect()
sleep(100)
reconnect(Cook_World, X_Cook, Y_Cook)
end
end
end
local maxJoinWorld = 0
while bot:isInWorld(Cook_World) and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg == 6 and maxJoinWorld < 5 and
noStopScript == true do
reconnect(Cook_World, 1, 23)
bot.auto_collect = false
sleep(100)
bot:warp(Cook_World .. "|" .. Cook_Door_ID)
sleep(Join_World_Delay)
changingSubserver()
maxJoinWorld = maxJoinWorld + 1
if maxJoinWorld >= 5 then
changingSubserver()
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " has tried to enter the door ID 5 times. Maybe the cook door
ID is wrong."
)
maxJoinWorld = 0
autoRecon = false
noStopScript = false
removeBotIndex(Remove_Bot, bot.name:upper() .. " has
tried to enter the door ID 5 times. Maybe the cook door ID is wrong.")
end
end
if takeIngredients then
equipmentWorld()
findpathEquipment(Ingredients_ID, Tile_Cook)
dropEquipment(Ingredients_ID, Tile_Cook)
autoConsume()
hiddenWorld()
cookWorld()
end
else
reconnect(Cook_World, X_Cook, Y_Cook)
takeIngredients()
end
end
function performActionAutoCook()
sleep(1000)
banWaveEstimated()
sleep(33300 - arrozInterval)
sleep(36700 - arrozInterval)
function autoCook()
if bot.status == BotStatus.online then
if Bot_Level_Rotation == true then
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "||
[" .. Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " ..
bot.level .. " \n" ..
"<a:toa:997296837352505415> **|** Bot Information: Starting
Auto Cook"
)
wearingSpecificItem()
cookWorld()
ovenTile = {}
if bot:isInWorld(Cook_World) then
for _, tile in pairs(world:getTiles()) do
if math.abs(tile.x - X_Cook) <= 2 and
math.abs(tile.y - Y_Cook) <= 2 then
if (tile.fg == 4618 or tile.fg == 4498 or
tile.fg == 4620) and world:getTile(tile.x, tile.y):getExtra().ingredient_count == 0
then
table.insert(ovenTile, {x = tile.x,
y = tile.y})
end
end
end
end
Tile_Cook = #ovenTile
dropItemWhitelist(1)
takeIngredients()
webhookShareInfoAllBot()
performActionAutoCook()
end
if canDropItemWhitelist then
dropItemWhitelist(1)
end
if leftoverIngredients then
equipmentWorld()
dropEquipment(Ingredients_ID, 0)
hiddenWorld()
farmWorld()
end
Start_Cooking = false
webhookShareInfoAllBot()
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac ..
"|| [" .. Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " ..
bot.level .. " \n" ..
"<a:toa:997296837352505415> **|** Bot Information:
Finished Auto Cook"
)
main()
end
end
wearingSpecificItem()
cookWorld()
ovenTile = {}
if bot:isInWorld(Cook_World) then
for _, tile in pairs(world:getTiles()) do
if math.abs(tile.x - X_Cook) <= 2
and math.abs(tile.y - Y_Cook) <= 2 then
if (tile.fg == 4618 or
tile.fg == 4498 or tile.fg == 4620) and world:getTile(tile.x,
tile.y):getExtra().ingredient_count == 0 then
table.insert(ovenTile,
{x = tile.x, y = tile.y})
end
end
end
end
Tile_Cook = #ovenTile
dropItemWhitelist(1)
takeIngredients()
webhookShareInfoAllBot()
performActionAutoCook()
end
if canDropItemWhitelist then
dropItemWhitelist(1)
end
if leftoverIngredients then
equipmentWorld()
dropEquipment(Ingredients_ID, 0)
hiddenWorld()
end
Start_Cooking = false
webhookShareInfoAllBot()
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot
Name: " .. bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" ..
bot:getLogin().mac .. "|| [" .. Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot
Status: " .. activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056>
`[" .. statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot
Level: " .. bot.level .. " \n" ..
"<a:toa:997296837352505415> **|** Bot
Information: Finished Auto Cook"
)
main()
end
elseif validConsume == false then
autoCook()
end
end
elseif Only_Cook_Until_Minimum_Level == "YES" and Bot_Level_Rotation ==
false and bot.level < Min_Level then
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "||
[" .. Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " ..
bot.level .. " \n" ..
"<a:toa:997296837352505415> **|** Bot Information: Starting
Auto Cook"
)
wearingSpecificItem()
cookWorld()
ovenTile = {}
if bot:isInWorld(Cook_World) then
for _, tile in pairs(world:getTiles()) do
if math.abs(tile.x - X_Cook) <= 2 and
math.abs(tile.y - Y_Cook) <= 2 then
if (tile.fg == 4618 or tile.fg == 4498 or
tile.fg == 4620) and world:getTile(tile.x, tile.y):getExtra().ingredient_count == 0
then
table.insert(ovenTile, {x = tile.x,
y = tile.y})
end
end
end
end
Tile_Cook = #ovenTile
dropItemWhitelist(1)
takeIngredients()
webhookShareInfoAllBot()
performActionAutoCook()
end
if bot.level >= Min_Level then
local leftoverIngredients = false
local canDropItemWhitelist = false
if canDropItemWhitelist then
dropItemWhitelist(1)
end
if leftoverIngredients then
equipmentWorld()
dropEquipment(Ingredients_ID, 0)
hiddenWorld()
end
Start_Cooking = false
webhookShareInfoAllBot()
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac ..
"|| [" .. Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " ..
bot.level .. " \n" ..
"<a:toa:997296837352505415> **|** Bot Information:
Finished Auto Cook"
)
main()
end
end
elseif bot.status ~= BotStatus.online or (bot.status == BotStatus.online and
bot:getPing() == 0) then
reconnect(Cook_World, X_Cook, Y_Cook)
autoCook()
end
end
---- [ END AUTO COOK ] ----
dropEquipmentBeforeOfffline()
hiddenWorld()
autoRecon = false
bot:disconnect()
sleep(100)
webhookShareInfoAllBot()
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "|| [" ..
Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[Max Level]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " .. bot.level
)
removeBotLogFile(bot.name:upper(), "Max Level")
if Change_Bot == "YES" then
table.remove(Bot_List_Result, botStartNumber)
totalBotList = #Bot_List_Result
botStartNumber = botStartNumber - 1
changeBotStatus()
elseif Change_Bot == "NO" then
noStopScript = false
removeBotIndex(Remove_Bot, "Failed to change the bot because the
feature was disabled.")
end
elseif Change_Bot_On_Max_Level == "NO" then
return
end
end
---- [ END LEVEL CHECK ] ----
function upgradeBackpack()
local remainingBackpackSlots = inventory.slotcount - inventory.itemcount
function upgradeBackpackForBuyPack()
local remainingBackpackSlots = inventory.slotcount - inventory.itemcount
function upgradeBackpackForTakeEquipment(variable)
local remainingBackpackSlots = inventory.slotcount - inventory.itemcount
function upgradeBackpackForRareClothesPack()
local remainingBackpackSlots = inventory.slotcount - inventory.itemcount
function showMoveAnimation()
if Show_Move_Animation == "YES" then
return true
elseif Show_Move_Animation == "NO" then
return false
end
end
---- [ END SHOW ANIMATION ] ----
sleep(50)
bot:sendRaw(pkt)
end
else
return
end
end
sleep(50)
bot:sendRaw(pkt)
end
else
return
end
end
sleep(50)
bot:sendRaw(pkt)
end
else
return
end
end
sleep(50)
bot:sendRaw(pkt)
end
else
return
end
end
---- [ END FINDPATH ANIMATION ] ----
local maxJoinWorld = 0
while not bot:isInWorld(defaultWorldName) and maxJoinWorld
< 5 and noStopScript == true do
bot:warp(defaultWorldName)
sleep(Join_World_Delay)
changingSubserver()
maxJoinWorld = maxJoinWorld + 1
if maxJoinWorld >= 5 then
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " has tried to enter the world 5 times. \n" ..
"<:Luxurious_Wall_Clock:11906951563331502
58> **|** Cooldown: " .. convertMillisecondsToHours(Hard_Warp_Join_World_Delay)
)
sleep(Hard_Warp_Join_World_Delay)
maxJoinWorld = 0
end
end
reconnect(defaultWorldName, variableX, variableY)
sleep(1000)
end
findpath(variableX, variableY)
elseif #bot:getPath(variableX, variableY) > 0 then
if bot.status == BotStatus.online then
onlySendOneFlags = 0
for i = 1, #path do
if bot.status == BotStatus.online and i % Move_Range
== 0 then
posBotX = bot.x
posBotY = bot.y
bot:moveTile(path[i].x, path[i].y)
if posBotY > path[i].y then
upAnimation(variableX, variableY)
elseif posBotY < path[i].y then
downAnimation(variableX, variableY)
elseif posBotX > path[i].x then
leftAnimation(variableX, variableY)
elseif posBotX < path[i].x then
rightAnimation(variableX, variableY)
end
sleep(math.random(Move_Speed, Move_Speed + 10))
elseif bot.status ~= BotStatus.online or (bot.status
== BotStatus.online and bot:getPing() == 0) then
reconnect(defaultWorldName, variableX,
variableY)
end
end
else
reconnect(defaultWorldName, variableX, variableY)
findpath(variableX, variableY)
end
if bot.status == BotStatus.online then
posBotX = bot.x
posBotY = bot.y
bot:moveTile(path[#path].x, path[#path].y)
if posBotY > path[#path].y then
upAnimation(variableX, variableY)
elseif posBotY < path[#path].y then
downAnimation(variableX, variableY)
elseif posBotX > path[#path].x then
leftAnimation(variableX, variableY)
elseif posBotX < path[#path].x then
rightAnimation(variableX, variableY)
end
sleep(math.random(Move_Speed, Move_Speed + 10))
actionRotationAndFindpathAnimation = false
else
reconnect(defaultWorldName, variableX, variableY)
findpath(variableX, variableY)
end
else
reconnect(defaultWorldName, variableX, variableY)
findpath(variableX, variableY)
end
end
end
---- [ END FINDPATH ] ----
function findpathBreakOtherWorld()
if bot.status == BotStatus.online then
local defaultWorldName = world.name:upper()
local markerTilesCache = {}
function markerScan(itemID)
if markerTilesCache[itemID] and nextDropWorld == "NO" then
return markerTilesCache[itemID]
end
local markerTiles = {}
for _, tile in pairs(world:getTiles()) do
if bot.status == BotStatus.online then
if (tile.fg == itemID and #bot:getPath(tile.x, tile.y) > 0) or
(tile.bg == itemID and #bot:getPath(tile.x, tile.y) > 0) then
local markerTile = {x = tile.x, y = tile.y}
table.insert(markerTiles, markerTile)
end
elseif bot.status ~= BotStatus.online or (bot.status ==
BotStatus.online and bot:getPing() == 0) then
defaultWorldName = world.name:upper()
defaultBotX = bot.x
defaultBotY = bot.y
reconnect(defaultWorldName, defaultBotX, defaultBotY)
function dropPack()
bot:getLog():append("Action: dropPack")
dropPackStatus = true
webhookShareInfoAllBot()
bot.auto_collect = false
sleep(100)
findpath(nextMarkerTile.x, nextMarkerTile.y)
while bot.status == BotStatus.online and not
bot:isInTile(nextMarkerTile.x, nextMarkerTile.y) do
sleep(25000)
reconnect(Save_Pack_World, 1, 23)
findpath(nextMarkerTile.x, nextMarkerTile.y)
end
dropItem(5030)
while inventory:getItemCount(5030) > 0 do
reconnect(Save_Pack_World, 1, 23)
table.remove(markerTiles, Start_Drop)
Start_Drop = #markerTiles
bot:moveUp(1)
sleep(100)
dropItem(5030)
end
if inventory:getItemCount(5030) == 0 then
bot:moveRight(1)
sleep(100)
end
nextDropWorld = "YES"
table.remove(Save_Pack_World_List_Result, 1)
totalSavePackWorldList = #Save_Pack_World_List_Result
if totalSavePackWorldList == 0 then
removeBotIndex(Remove_Bot, "Index bot " .. bot.index .. "
does not have a save pack world list.")
end
Save_Pack_World = Save_Pack_World_List_Result[1][1]:upper()
Save_Pack_Door_ID = Save_Pack_World_List_Result[1][2]:upper()
if Save_Pack_Door_ID == "-" then
Save_Pack_Door_ID = ""
end
Drop_Pack_Marker = tonumber(Save_Pack_World_List_Result[1][3])
packWorld()
dropPack()
end
else
reconnect(Save_Pack_World, 1, 23)
dropPack()
end
end
function scanFloatTotalPack()
dropPackCount = ""
dropPackCountTable = {}
for _, packlist in pairs(Pack_ID) do
dropPackCount = dropPackCount .. " \n" .. getItemName(packlist) .. ": "
.. objectGrowScan(packlist)
table.insert(dropPackCountTable, " \n" .. getItemName(packlist) .. ": "
.. objectGrowScan(packlist))
sleep(100)
end
webhookShareInfoDropped(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " .. bot.name:upper() ..
" \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "|| [" ..
Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " .. bot.level .. " \
n" ..
"<a:toa:997296837352505415> **|** Bot Information: Dropping Pack \n\
n" ..
function dropWhitelist()
bot:getLog():append("Action: dropWhitelist")
dropWhitelistStatus = true
webhookShareInfoAllBot()
bot.auto_collect = false
sleep(100)
findpath(nextMarkerTile.x, nextMarkerTile.y)
while bot.status == BotStatus.online and not
bot:isInTile(nextMarkerTile.x, nextMarkerTile.y) do
sleep(25000)
reconnect(Whitelist_World, 1, 23)
findpath(nextMarkerTile.x, nextMarkerTile.y)
end
nextDropWorld = "YES"
table.remove(Whitelist_World_List_Result, 1)
totalWhitelistWorldList = #Whitelist_World_List_Result
if totalWhitelistWorldList == 0 then
removeBotIndex(Remove_Bot, "Index bot " .. bot.index .. "
does not have a whitelist world list.")
end
Whitelist_World = Whitelist_World_List_Result[1][1]:upper()
Whitelist_Door_ID = Whitelist_World_List_Result[1][2]:upper()
if Whitelist_Door_ID == "-" then
Whitelist_Door_ID = ""
end
Drop_Whitelist_Marker = tonumber(Whitelist_World_List_Result[1]
[3])
whitelistWorld()
dropWhitelist()
end
else
reconnect(Whitelist_World, 1, 23)
dropWhitelist()
end
end
function scanFloatTotalWhitelist()
bot:getLog():append("Action: scanFloatTotalWhitelist")
dropItemWhitelistCount = ""
for _, whitelist in pairs(Item_Whitelist_ID) do
dropItemWhitelistCount = dropItemWhitelistCount .. " \n" ..
getItemName(whitelist) .. ": " .. objectGrowScan(whitelist)
sleep(100)
end
webhookShareInfoDropped(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " .. bot.name:upper() ..
" \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "|| [" ..
Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " .. bot.level .. " \
n" ..
"<a:toa:997296837352505415> **|** Bot Information: Dropping Item
Whitelist \n\n" ..
function dropSeed()
bot:getLog():append("Action: dropSeed")
dropSeedBlockStatus = true
webhookShareInfoAllBot()
bot.auto_collect = false
sleep(100)
findpath(nextMarkerTile.x, nextMarkerTile.y)
while bot.status == BotStatus.online and not
bot:isInTile(nextMarkerTile.x, nextMarkerTile.y) do
sleep(25000)
reconnect(Save_Seed_World, findpathSeedX, findpathSeedY)
findpath(nextMarkerTile.x, nextMarkerTile.y)
end
nextDropWorld = "YES"
table.remove(Save_Seed_World_List_Result, 1)
totalSaveSeedWorldList = #Save_Seed_World_List_Result
if totalSaveSeedWorldList == 0 then
removeBotIndex(Remove_Bot, "Index bot " .. bot.index .. "
does not have a save seed world list.")
end
Save_Seed_World = Save_Seed_World_List_Result[1][1]:upper()
Save_Seed_Door_ID = Save_Seed_World_List_Result[1][2]:upper()
if Save_Seed_Door_ID == "-" then
Save_Seed_Door_ID = ""
end
Drop_Seed_Marker = tonumber(Save_Seed_World_List_Result[1][3])
seedWorld()
dropSeed()
end
else
reconnect(Save_Seed_World, findpathSeedX, findpathSeedY)
dropSeed()
end
end
function dropBlock()
bot:getLog():append("Action: dropBlock")
dropSeedBlockStatus = true
webhookShareInfoAllBot()
bot.auto_collect = false
sleep(100)
findpath(nextMarkerTile.x + 1, nextMarkerTile.y)
while bot.status == BotStatus.online and not
bot:isInTile(nextMarkerTile.x + 1, nextMarkerTile.y) do
sleep(25000)
reconnect(Save_Seed_World, findpathSeedX, findpathSeedY)
findpath(nextMarkerTile.x + 1, nextMarkerTile.y)
end
nextDropWorld = "YES"
table.remove(Save_Seed_World_List_Result, 1)
totalSaveSeedWorldList = #Save_Seed_World_List_Result
if totalSaveSeedWorldList == 0 then
removeBotIndex(Remove_Bot, "Index bot " .. bot.index .. "
does not have a save seed world list.")
end
Save_Seed_World = Save_Seed_World_List_Result[1][1]:upper()
Save_Seed_Door_ID = Save_Seed_World_List_Result[1][2]:upper()
if Save_Seed_Door_ID == "-" then
Save_Seed_Door_ID = ""
end
Drop_Seed_Marker = tonumber(Save_Seed_World_List_Result[1][3])
seedWorld()
dropSeed()
end
else
reconnect(Save_Seed_World, findpathSeedX, findpathSeedY)
dropBlock()
end
end
findpath(nextMarkerTile.x, nextMarkerTile.y)
while bot.status == BotStatus.online and not
bot:isInTile(nextMarkerTile.x, nextMarkerTile.y) do
sleep(25000)
reconnect(Equipment_World, 1, 23)
findpath(nextMarkerTile.x, nextMarkerTile.y)
end
equipmentWorld()
dropEquipment(variable, equipmentDropCount)
end
else
reconnect(Equipment_World, 1, 23)
dropEquipment(variable, equipmentDropCount)
end
end
function scanFloatTotalEquipment(variable)
dropEquipmentCount = ""
for _, packlist in pairs(variable) do
dropEquipmentCount = dropEquipmentCount .. " \n" ..
getItemName(packlist) .. ": " .. objectGrowScan(packlist)
sleep(100)
end
webhookShareInfoDropped(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " .. bot.name:upper() ..
" \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "|| [" ..
Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "]\n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " .. bot.level .. " \
n" ..
"<a:toa:997296837352505415> **|** Bot Information: Dropping Equipment \
n\n" ..
function takeItem(itemID)
for _, obj in pairs(world:getObjects()) do
if obj.id == itemID then
if math.abs(bot.x - math.floor(obj.x / 32)) <= 4 and
math.abs(bot.y - math.floor(obj.y / 32)) <= 4 then
performActionTakeItem(obj.x, obj.y, obj.oid)
break
end
end
end
end
---- [ END TAKE ITEM ] ----
if packExceed then
break
end
end
reconnect(Save_Pack_World, 1, 23)
dropExceedPack()
elseif Auto_Buy_Pack == "NO" then
return
end
else
reconnect(Save_Pack_World, 1, 23)
buyPack()
end
end
function dropExceedPack()
if Auto_Buy_Pack == "YES" then
local canDropPack = false
for _, pack in pairs(Pack_ID) do
if inventory:getItemCount(pack) < Max_Pack_To_Drop then
return
elseif inventory:getItemCount(pack) >= Max_Pack_To_Drop then
canDropPack = true
break
end
end
if canDropPack then
defaultWorldName = world.name:upper()
defaultBotX = bot.x
defaultBotY = bot.y
packWorld()
dropPack()
hiddenWorld()
if defaultWorldName == Rotation_World then
reconnect(Rotation_World, defaultBotX, defaultBotY)
farmWorld()
elseif ((defaultWorldName == Custom_World_Break_Other_World) or
(defaultWorldName == randomWorldBreak())) then
reconnect(Custom_World_Break_Other_World, defaultBotX,
defaultBotY)
breakOtherWorld()
end
end
end
end
function dropExceedPackGoOffline()
if Auto_Buy_Pack == "YES" then
local canDropPack = false
for _, pack in pairs(Pack_ID) do
if inventory:getItemCount(pack) > 0 then
canDropPack = true
break
end
end
if canDropPack then
packWorld()
dropPack()
hiddenWorld()
end
end
end
---- [ END BUY PACK ] ----
if canDropItemWhitelist then
whitelistWorld()
dropWhitelist()
hiddenWorld()
if not bot:isInWorld(Cook_World) and Start_Cooking == true then
return
else
farmWorld()
end
end
end
end
---- [ END ITEM WHITELIST ] ----
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "|| [" ..
Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " .. bot.level ..
" \n" ..
"<a:toa:997296837352505415> **|** Bot Information: Finished
Skipping Tutorial"
)
end
end
---- [ END SKIP TUTORIAL ] ----
takeItem(Pickaxe_ID)
reconnect(Pickaxe_World, 1, 23)
if inventory:getItemCount(Pickaxe_ID) == 1 then
reconnect(Pickaxe_World, 1, 23)
bot:wear(Pickaxe_ID)
sleep(math.random(Wear_Delay, Wear_Delay + 100))
elseif inventory:getItemCount(Pickaxe_ID) == 0 then
findpathPickaxe()
end
reconnect(Pickaxe_World, 1, 23)
else
reconnect(Pickaxe_World, 1, 23)
findpathPickaxe()
end
end
function dropPickaxe()
if bot.status == BotStatus.online then
while inventory:getItemCount(Pickaxe_ID) > 1 do
bot:setDirection(false)
sleep(100)
bot:drop(Pickaxe_ID, inventory:getItemCount(Pickaxe_ID) - 1)
sleep(math.random(Drop_Delay, Drop_Delay + 100))
reconnect(Pickaxe_World, 1, 23)
end
reconnect(Pickaxe_World, 1, 23)
if inventory:getItemCount(Pickaxe_ID) == 1 then
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " .. bot.name:upper() ..
" success to take the " .. getItemName(Pickaxe_ID) .. " \n\n" ..
function takePickaxe()
reconnect(Pickaxe_World, 1, 23)
if inventory:getItemCount(Pickaxe_ID) == 1 and
inventory:getItem(Pickaxe_ID).isActive then
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** The " ..
getItemName(Pickaxe_ID) .. " is already in use by " .. bot.name:upper() .. "."
)
return
end
hiddenWorld()
end
if inventory:getItemCount(Pickaxe_ID) == 0 then
reconnect(Pickaxe_World, 1, 23)
pickaxeWorld()
takingPickaxeStatus = true
webhookShareInfoAllBot()
sendWebhookAmountTakePickaxe = 0
findpathPickaxe()
takingPickaxeStatus = false
hiddenWorld()
end
elseif Take_Pickaxe == "NO" then
return
end
else
reconnect(Pickaxe_World, 1, 23)
takePickaxe()
end
end
---- [ END TAKE PICKAXE ] ----
takeItem(Seed_ID)
takeItem(112)
elseif #bot:getPath(tileRounding(obj.x / 32),
tileRounding(obj.y / 32)) == 0 and bot:isInTile(tileRounding(obj.x / 32),
tileRounding(obj.y / 32)) then
findpathSeedX = tileRounding(obj.x / 32)
findpathSeedY = tileRounding(obj.y / 32)
takeItem(Seed_ID)
takeItem(112)
end
elseif bot.status ~= BotStatus.online or (bot.status ==
BotStatus.online and bot:getPing() == 0) then
reconnect(Save_Seed_World, findpathSeedX, findpathSeedY)
end
if objectSafeScan(Seed_ID) == 0 and
inventory:getItemCount(Seed_ID) < 50 then
reconnect(Save_Seed_World, findpathSeedX, findpathSeedY)
webhookShareInfoAllBot()
break
elseif objectSafeScan(Seed_ID) > 0 and
inventory:getItemCount(Seed_ID) >= 50 then
reconnect(Save_Seed_World, findpathSeedX, findpathSeedY)
webhookShareInfoAllBot()
break
end
end
reconnect(Save_Seed_World, findpathSeedX, findpathSeedY)
else
reconnect(Save_Seed_World, findpathSeedX, findpathSeedY)
findpathSeed()
end
end
function takeSeed()
if bot.status == BotStatus.online then
if Auto_Plant == "YES" then
reconnect(Save_Seed_World, findpathSeedX, findpathSeedY)
seedWorld()
reconnect(Save_Seed_World, findpathSeedX, findpathSeedY)
if objectSafeScan(Seed_ID) == 0 then
lastCheck()
end
findpathSeed()
hiddenWorld()
farmWorld()
elseif Auto_Plant == "NO" then
lastCheck()
end
else
reconnect(Save_Seed_World, findpathSeedX, findpathSeedY)
takeSeed()
end
end
---- [ END TAKE SEED ] ----
function hasRareClothesPack()
if bot.status == BotStatus.online then
if Auto_Buy_Rare_Clothes_Pack == "YES" then
local shouldGoToNext = false
if checkWearPickaxe then
if inventory:getItem(Pickaxe_ID).isActive then
return
elseif inventory:getItemCount(Pickaxe_ID) > 0 and not
inventory:getItem(Pickaxe_ID).isActive then
while inventory:getItemCount(Pickaxe_ID) > 0 and not
inventory:getItem(Pickaxe_ID).isActive do
bot:wear(Pickaxe_ID)
sleep(math.random(Wear_Delay, Wear_Delay +
100))
end
end
end
elseif Auto_Buy_Rare_Clothes_Pack == "NO" then
return
end
else
reconnect(Rotation_World, 1, 23)
hasRareClothesPack()
end
end
---- [ END WEARING RARE CLOTHES ] ----
actionRotationAndFindpathAnimation = false
modEntered()
autoConsume()
randomChat()
levelCheck()
banWaveEstimated()
proxyPlayTime()
botPlayTime()
findpath(tileRounding(obj.x / 32),
tileRounding(obj.y / 32))
webhookShareInfoAllBot()
if inventory:getItemCount(Block_ID) >=
Max_Block_To_Retrieve and bot.level >= Min_Level then
webhookShareInfoAllBot()
hasRareClothesPack()
pnb()
end
elseif #bot:getPath(tileRounding(obj.x / 32),
tileRounding(obj.y / 32)) == 0 and bot:isInTile(tileRounding(obj.x / 32),
tileRounding(obj.y / 32)) then
findpathBlockX = tileRounding(obj.x / 32)
findpathBlockY = tileRounding(obj.y / 32)
modEntered()
autoConsume()
randomChat()
levelCheck()
banWaveEstimated()
proxyPlayTime()
botPlayTime()
webhookShareInfoAllBot()
if inventory:getItemCount(Block_ID) >=
Max_Block_To_Retrieve and bot.level >= Min_Level then
webhookShareInfoAllBot()
hasRareClothesPack()
pnb()
end
end
elseif bot.status ~= BotStatus.online or (bot.status ==
BotStatus.online and bot:getPing() == 0) then
reconnect(Rotation_World, findpathBlockX,
findpathBlockY)
end
end
if objectSafeScan(Block_ID) == 0 then
if inventory:getItemCount(Block_ID) < Max_Block_To_Retrieve
then
webhookShareInfoAllBot()
harvest1()
elseif inventory:getItemCount(Block_ID) >=
Max_Block_To_Retrieve and bot.level >= Min_Level then
webhookShareInfoAllBot()
hasRareClothesPack()
pnb()
end
end
elseif Auto_Take_Floating_Block == "NO" then
return
end
else
reconnect(Rotation_World, findpathBlockX, findpathBlockY)
findpathBlock()
end
end
---- [ END TAKE FLOATING BLOCK ] ----
if retry then
checkTileMatureRoots1()
end
return count
end
function checkTileMatureRoots2()
local retry = false
local count = 0
if retry then
checkTileMatureRoots2()
end
return count
end
function punchMatureRootsHelping1()
if readyMatureRootsScan() > 0 then
for _, tile in pairs(world:getTiles()) do
if bot.status == BotStatus.online then
if tile.y >= bot.y then
if tile.fg == Mature_Roots_ID and
world:hasAccess(tile.x, tile.y) ~= 0 then
if #bot:getPath(tile.x, tile.y - 1) > 0 then
tileHarvestPlantX = tile.x
tileHarvestPlantY = tile.y
if #bot:getPath(tile.x, tile.y - 1) == 1
then
actionRotationAndFindpathAnimation
= true
else
actionRotationAndFindpathAnimation
= false
end
findpath(tile.x, tile.y - 1)
webhookShareInfoAllBot()
break
elseif #bot:getPath(tile.x, tile.y - 1) == 0
and bot:isInTile(tile.x, tile.y - 1) then
tileHarvestPlantX = tile.x
tileHarvestPlantY = tile.y
findpath(tile.x, tile.y - 1)
function punchMatureRootsHelping2()
if readyMatureRootsScan() > 0 then
for _, tile in pairs(world:getTiles()) do
if bot.status == BotStatus.online then
if tile.fg == Mature_Roots_ID and world:hasAccess(tile.x,
tile.y) ~= 0 then
if #bot:getPath(tile.x, tile.y - 1) > 0 then
tileHarvestPlantX = tile.x
tileHarvestPlantY = tile.y
findpath(tile.x, tile.y - 1)
webhookShareInfoAllBot()
break
elseif #bot:getPath(tile.x, tile.y - 1) == 0 and
bot:isInTile(tile.x, tile.y - 1) then
tileHarvestPlantX = tile.x
tileHarvestPlantY = tile.y
findpath(tile.x, tile.y - 1)
webhookShareInfoAllBot()
break
end
end
elseif bot.status ~= BotStatus.online or (bot.status ==
BotStatus.online and bot:getPing() == 0) then
reconnect(Rotation_World, tileHarvestPlantX,
tileHarvestPlantY)
end
end
end
end
function punchMatureRoots1()
reconnect(Rotation_World, tileHarvestPlantX, tileHarvestPlantY)
bot.auto_collect = false
sleep(100)
if #bot:getPath(tile.x, tile.y - 1) == 1
then
actionRotationAndFindpathAnimation
= true
else
actionRotationAndFindpathAnimation
= false
end
modEntered()
autoConsume()
randomChat()
levelCheck()
banWaveEstimated()
proxyPlayTime()
botPlayTime()
findpath(tile.x, tile.y - 1)
webhookShareInfoAllBot()
elseif #bot:getPath(tile.x, tile.y - 1) == 0
and bot:isInTile(tile.x, tile.y) then
tileHarvestPlantX = tile.x
tileHarvestPlantY = tile.y
modEntered()
autoConsume()
randomChat()
levelCheck()
banWaveEstimated()
proxyPlayTime()
botPlayTime()
webhookShareInfoAllBot()
end
end
if checkTileMatureRoots1() == 0 then
if tile.x == 99 and bot.x >= 50 then
if tile.y > 0 and tile.y < 52 then
if #bot:getPath(99, tile.y + 2) > 0
then
findpath(99, tile.y + 2)
punchMatureRoots2()
elseif #bot:getPath(99, tile.y + 2)
== 0 then
if bot:isInTile(99, tile.y +
2) then
punchMatureRoots2()
elseif not bot:isInTile(99,
tile.y + 2) then
punchMatureRootsHelping2()
punchMatureRoots1()
end
end
elseif tile.y > 51 then
punchMatureRootsHelping2()
punchMatureRoots1()
end
elseif tile.x == 99 and bot.x <= 49 then
if tile.y > 0 and tile.y < 52 then
if #bot:getPath(0, tile.y + 2) > 0
then
findpath(0, tile.y + 2)
elseif #bot:getPath(0, tile.y + 2)
== 0 then
if not bot:isInTile(0, tile.y
+ 2) then
punchMatureRootsHelping2()
punchMatureRoots1()
end
end
elseif tile.y > 51 then
punchMatureRootsHelping2()
punchMatureRoots1()
end
end
end
end
elseif bot.status ~= BotStatus.online or (bot.status ==
BotStatus.online and bot:getPing() == 0) then
reconnect(Rotation_World, tileHarvestPlantX,
tileHarvestPlantY)
end
end
end
modEntered()
autoConsume()
randomChat()
levelCheck()
banWaveEstimated()
proxyPlayTime()
botPlayTime()
findpath(tile.x, tile.y - 1)
webhookShareInfoAllBot()
elseif #bot:getPath(tile.x, tile.y) == 0 and
bot:isInTile(tile.x, tile.y) then
tileHarvestPlantX = tile.x
tileHarvestPlantY = tile.y
modEntered()
autoConsume()
randomChat()
levelCheck()
banWaveEstimated()
proxyPlayTime()
botPlayTime()
webhookShareInfoAllBot()
end
end
if checkTileMatureRoots2() == 0 then
if tile.x == 0 and bot.x <= 49 then
if tile.y > 0 and tile.y < 52 then
if #bot:getPath(0, tile.y + 2) > 0
then
findpath(0, tile.y + 2)
punchMatureRoots1()
elseif #bot:getPath(0, tile.y + 2)
== 0 then
if bot:isInTile(0, tile.y +
2) then
punchMatureRoots1()
elseif not bot:isInTile(0,
tile.y + 2) then
punchMatureRootsHelping2()
punchMatureRoots1()
end
end
elseif tile.y > 51 then
punchMatureRootsHelping2()
punchMatureRoots1()
end
elseif tile.x == 0 and bot.x >= 50 then
if tile.y > 0 and tile.y < 52 then
if #bot:getPath(99, tile.y + 2) > 0
then
findpath(99, tile.y + 2)
elseif #bot:getPath(99, tile.y + 2)
== 0 then
if not bot:isInTile(99,
tile.y + 2) then
punchMatureRootsHelping2()
punchMatureRoots1()
end
end
elseif tile.y > 51 then
punchMatureRootsHelping2()
punchMatureRoots1()
end
end
end
end
elseif bot.status ~= BotStatus.online or (bot.status ==
BotStatus.online and bot:getPing() == 0) then
reconnect(Rotation_World, tileHarvestPlantX,
tileHarvestPlantY)
end
end
end
if retry then
checkTileHarvest1()
end
return count
end
function checkTileHarvest2()
local retry = false
local count = 0
for _, tile in pairs(world:getTiles()) do
if bot.status == BotStatus.online and bot:isInWorld(Rotation_World) and
tile.y == bot.y then
if tile.fg == Seed_ID and tile.x < bot.x and tile:canHarvest()
and world:hasAccess(tile.x, tile.y) ~= 0 then
if #bot:getPath(tile.x, tile.y) > 0 then
count = count + 1
break
elseif #bot:getPath(tile.x, tile.y) == 0 and
bot:isInTile(tile.x, tile.y) then
count = count + 1
break
end
end
elseif bot.status ~= BotStatus.online or (bot.status ==
BotStatus.online and bot:getPing() == 0) then
retry = true
reconnect(Rotation_World, tileHarvestPlantX, tileHarvestPlantY)
break
end
end
if retry then
checkTileHarvest2()
end
return count
end
function harvestHelping1()
bot:getLog():append("Action: harvestHelping1")
if readyTreeScan() > 0 then
for _, tile in pairs(world:getTiles()) do
if bot.status == BotStatus.online then
if tile.y >= bot.y then
if tile.fg == Seed_ID and tile:canHarvest() and
world:hasAccess(tile.x, tile.y) ~= 0 then
if #bot:getPath(tile.x, tile.y) > 0 then
tileHarvestPlantX = tile.x
tileHarvestPlantY = tile.y
findpath(tile.x, tile.y)
webhookShareInfoAllBot()
break
elseif #bot:getPath(tile.x, tile.y) == 0 and
bot:isInTile(tile.x, tile.y) then
tileHarvestPlantX = tile.x
tileHarvestPlantY = tile.y
findpath(tile.x, tile.y)
webhookShareInfoAllBot()
break
end
end
end
elseif bot.status ~= BotStatus.online or (bot.status ==
BotStatus.online and bot:getPing() == 0) then
reconnect(Rotation_World, tileHarvestPlantX,
tileHarvestPlantY)
end
end
end
if readyTreeScan() == 0 then
if bot.level < Min_Level then
lastCheck()
elseif bot.level >= Min_Level then
if inventory:getItemCount(Block_ID) > 0 then
pnbLast()
else
lastCheck2()
end
end
end
end
function harvestHelping2()
bot:getLog():append("Action: harvestHelping2")
if readyTreeScan() > 0 then
for _, tile in pairs(world:getTiles()) do
if bot.status == BotStatus.online then
if tile.fg == Seed_ID and tile:canHarvest() and
world:hasAccess(tile.x, tile.y) ~= 0 then
if #bot:getPath(tile.x, tile.y) > 0 then
tileHarvestPlantX = tile.x
tileHarvestPlantY = tile.y
findpath(tile.x, tile.y)
webhookShareInfoAllBot()
break
elseif #bot:getPath(tile.x, tile.y) == 0 and
bot:isInTile(tile.x, tile.y) then
tileHarvestPlantX = tile.x
tileHarvestPlantY = tile.y
findpath(tile.x, tile.y)
webhookShareInfoAllBot()
break
end
end
elseif bot.status ~= BotStatus.online or (bot.status ==
BotStatus.online and bot:getPing() == 0) then
reconnect(Rotation_World, tileHarvestPlantX,
tileHarvestPlantY)
end
end
end
if readyTreeScan() == 0 then
if bot.level < Min_Level then
lastCheck()
elseif bot.level >= Min_Level then
if inventory:getItemCount(Block_ID) > 0 then
pnbLast()
else
lastCheck2()
end
end
end
end
function harvest1()
bot:getLog():append("Action: harvest1")
reconnect(Rotation_World, tileHarvestPlantX, tileHarvestPlantY)
leveling()
autoConsume()
randomSkinColor()
trashItem()
dropItemWhitelist(Max_Item_Whitelist_To_Drop)
killingGhost()
antiToxic()
antiFire()
wearingSpecificItem()
bot.auto_collect = true
sleep(100)
modEntered()
autoConsume()
randomChat()
levelCheck()
banWaveEstimated()
proxyPlayTime()
botPlayTime()
findpath(tile.x, tile.y)
webhookShareInfoAllBot()
elseif #bot:getPath(tile.x, tile.y) == 0 and
bot:isInTile(tile.x, tile.y) then
tileHarvestPlantX = tile.x
tileHarvestPlantY = tile.y
modEntered()
autoConsume()
randomChat()
levelCheck()
banWaveEstimated()
proxyPlayTime()
botPlayTime()
webhookShareInfoAllBot()
end
end
if inventory:getItemCount(Block_ID) >=
Max_Block_To_Retrieve and bot.level >= Min_Level then
hasRareClothesPack()
pnb()
elseif Auto_Buy_Pack == "YES" and bot.gem_count >=
10000 and bot.level < Min_Level then
buyPack()
else
if checkTileHarvest1() == 0 then
if tile.x == 99 and bot.x >= 50 then
if tile.y > 0 and tile.y < 52 then
if #bot:getPath(99, tile.y +
2) > 0 then
findpath(99, tile.y + 2)
harvest2()
elseif #bot:getPath(99,
tile.y + 2) == 0 then
if bot:isInTile(99,
tile.y + 2) then
harvest2()
elseif not
bot:isInTile(99, tile.y + 2) then
harvestHelping2()
harvest1()
end
end
elseif tile.y > 51 then
harvestHelping2()
harvest1()
end
elseif tile.x == 99 and bot.x <= 49 then
if tile.y > 0 and tile.y < 52 then
if #bot:getPath(0, tile.y +
2) > 0 then
findpath(0, tile.y + 2)
elseif #bot:getPath(0, tile.y
+ 2) == 0 then
if not bot:isInTile(0,
tile.y + 2) then
harvestHelping2()
harvest1()
end
end
elseif tile.y > 51 then
harvestHelping2()
harvest1()
end
end
end
end
end
elseif bot.status ~= BotStatus.online or (bot.status ==
BotStatus.online and bot:getPing() == 0) then
reconnect(Rotation_World, tileHarvestPlantX,
tileHarvestPlantY)
end
end
end
function harvest2()
bot:getLog():append("Action: harvest2")
if readyTreeScan() > 0 then
local tiles = world:getTiles()
for i = #tiles, 1, -1 do
local tile = tiles[i]
if bot.status == BotStatus.online then
if tile.y == bot.y then
if tile.fg == Seed_ID and tile:canHarvest() and
world:hasAccess(tile.x, tile.y) ~= 0 then
if #bot:getPath(tile.x, tile.y) > 0 then
tileHarvestPlantX = tile.x
tileHarvestPlantY = tile.y
modEntered()
autoConsume()
randomChat()
levelCheck()
banWaveEstimated()
proxyPlayTime()
botPlayTime()
findpath(tile.x, tile.y)
while not bot:isInTile(tile.x, tile.y)
and world:hasAccess(tile.x, tile.y) ~= 0 do
sleep(25000)
reconnect(Rotation_World,
tileHarvestPlantX, tileHarvestPlantY)
findpath(tile.x, tile.y)
end
webhookShareInfoAllBot()
elseif #bot:getPath(tile.x, tile.y) == 0 and
bot:isInTile(tile.x, tile.y) then
tileHarvestPlantX = tile.x
tileHarvestPlantY = tile.y
modEntered()
autoConsume()
randomChat()
levelCheck()
banWaveEstimated()
proxyPlayTime()
botPlayTime()
webhookShareInfoAllBot()
end
end
if inventory:getItemCount(Block_ID) >=
Max_Block_To_Retrieve and bot.level >= Min_Level then
hasRareClothesPack()
pnb()
elseif Auto_Buy_Pack == "YES" and bot.gem_count >=
10000 and bot.level < Min_Level then
buyPack()
else
if checkTileHarvest2() == 0 then
if tile.x == 0 and bot.x <= 49 then
if tile.y > 0 and tile.y < 52 then
if #bot:getPath(0, tile.y +
2) > 0 then
findpath(0, tile.y + 2)
harvest1()
elseif #bot:getPath(0, tile.y
+ 2) == 0 then
if bot:isInTile(0,
tile.y + 2) then
harvest1()
elseif not
bot:isInTile(0, tile.y + 2) then
harvestHelping2()
harvest1()
end
end
elseif tile.y > 51 then
harvestHelping2()
harvest1()
end
elseif tile.x == 0 and bot.x >= 50 then
if tile.y > 0 and tile.y < 52 then
if #bot:getPath(99, tile.y +
2) > 0 then
findpath(99, tile.y + 2)
elseif #bot:getPath(99,
tile.y + 2) == 0 then
if not bot:isInTile(99,
tile.y + 2) then
harvestHelping2()
harvest1()
end
end
elseif tile.y > 51 then
harvestHelping2()
harvest1()
end
end
end
end
end
elseif bot.status ~= BotStatus.online or (bot.status ==
BotStatus.online and bot:getPing() == 0) then
reconnect(Rotation_World, tileHarvestPlantX,
tileHarvestPlantY)
end
end
end
useEmbed2 = true
checkDropPackCount2()
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " .. bot.name:upper() ..
" \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "|| [" ..
Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " .. bot.level .. " \
n" ..
"<:Purple_Gem:1190695162549108876> **|** Gems Amount: " ..
bot.gem_count .. " \n\n" ..
function checkTilePlant1()
local retry = false
local count = 0
if retry then
checkTilePlant1()
end
return count
end
function checkTilePlant2()
local retry = false
local count = 0
if retry then
checkTilePlant2()
end
return count
end
function plantHelping1()
bot:getLog():append("Action: plantHelping1")
if inventory:getItemCount(Seed_ID) > 0 and emptyTileScan() > 0 then
for _, tile in pairs(world:getTiles()) do
if bot.status == BotStatus.online then
if tile.y >= bot.y then
if tile.fg == 0 and world:getTile(tile.x, tile.y +
1).fg ~= 0 and world:getTile(tile.x, tile.y + 1).fg % 2 == 0 and
world:getTile(tile.x, tile.y + 1).fg ~= Block_ID and world:hasAccess(tile.x,
tile.y) ~= 0 then
if #bot:getPath(tile.x, tile.y) > 0 then
tileHarvestPlantX = tile.x
tileHarvestPlantY = tile.y
findpath(tile.x, tile.y)
webhookShareInfoAllBot()
break
elseif #bot:getPath(tile.x, tile.y) == 0 and
bot:isInTile(tile.x, tile.y) then
tileHarvestPlantX = tile.x
tileHarvestPlantY = tile.y
findpath(tile.x, tile.y)
webhookShareInfoAllBot()
break
end
end
end
elseif bot.status ~= BotStatus.online or (bot.status ==
BotStatus.online and bot:getPing() == 0) then
reconnect(Rotation_World, tileHarvestPlantX,
tileHarvestPlantY)
end
end
end
end
function plantHelping2()
bot:getLog():append("Action: plantHelping2")
if inventory:getItemCount(Seed_ID) > 0 and emptyTileScan() > 0 then
for _, tile in pairs(world:getTiles()) do
if bot.status == BotStatus.online then
if tile.fg == 0 and world:getTile(tile.x, tile.y + 1).fg ~=
0 and world:getTile(tile.x, tile.y + 1).fg % 2 == 0 and world:getTile(tile.x,
tile.y + 1).fg ~= Block_ID then
if #bot:getPath(tile.x, tile.y) > 0 then
tileHarvestPlantX = tile.x
tileHarvestPlantY = tile.y
findpath(tile.x, tile.y)
webhookShareInfoAllBot()
break
elseif #bot:getPath(tile.x, tile.y) == 0 and
bot:isInTile(tile.x, tile.y) then
tileHarvestPlantX = tile.x
tileHarvestPlantY = tile.y
findpath(tile.x, tile.y)
webhookShareInfoAllBot()
break
end
end
elseif bot.status ~= BotStatus.online or (bot.status ==
BotStatus.online and bot:getPing() == 0) then
reconnect(Rotation_World, tileHarvestPlantX,
tileHarvestPlantY)
end
end
end
end
function plant1()
bot:getLog():append("Action: plant1")
reconnect(Rotation_World, tileHarvestPlantX, tileHarvestPlantY)
autoConsume()
randomSkinColor()
trashItem()
dropItemWhitelist(Max_Item_Whitelist_To_Drop)
killingGhost()
antiToxic()
antiFire()
bot.auto_collect = true
sleep(100)
modEntered()
autoConsume()
randomChat()
levelCheck()
banWaveEstimated()
proxyPlayTime()
botPlayTime()
findpath(tile.x, tile.y)
webhookShareInfoAllBot()
elseif #bot:getPath(tile.x, tile.y) == 0 and
bot:isInTile(tile.x, tile.y) then
tileHarvestPlantX = tile.x
tileHarvestPlantY = tile.y
modEntered()
autoConsume()
randomChat()
levelCheck()
banWaveEstimated()
proxyPlayTime()
botPlayTime()
webhookShareInfoAllBot()
end
if emptyTileBelowScan() == 0 then
break
end
end
if inventory:getItemCount(Seed_ID) == 0 then
break
elseif inventory:getItemCount(Seed_ID) > 0 then
if checkTilePlant1() == 0 then
if tile.x == 99 and bot.x >= 50 then
if tile.y > 0 and tile.y < 52 then
if #bot:getPath(99, tile.y +
2) > 0 then
findpath(99, tile.y + 2)
plant2()
elseif #bot:getPath(99,
tile.y + 2) == 0 then
if bot:isInTile(99,
tile.y + 2) then
plant2()
elseif not
bot:isInTile(99, tile.y + 2) then
plantHelping2()
plant1()
end
end
elseif tile.y > 51 then
plantHelping2()
plant1()
end
elseif tile.x == 99 and bot.x <= 49 then
if tile.y > 0 and tile.y < 52 then
if #bot:getPath(0, tile.y +
2) > 0 then
findpath(0, tile.y + 2)
elseif #bot:getPath(0, tile.y
+ 2) == 0 then
if not bot:isInTile(0,
tile.y + 2) then
plantHelping2()
plant1()
end
end
elseif tile.y > 51 then
plantHelping2()
plant1()
end
end
end
end
end
elseif bot.status ~= BotStatus.online or (bot.status ==
BotStatus.online and bot:getPing() == 0) then
reconnect(Rotation_World, tileHarvestPlantX,
tileHarvestPlantY)
end
end
end
function plant2()
bot:getLog():append("Action: plant2")
if inventory:getItemCount(Seed_ID) > 0 and emptyTileScan() > 0 then
local tiles = world:getTiles()
for i = #tiles, 1, -1 do
local tile = tiles[i]
if bot.status == BotStatus.online then
if tile.y == bot.y then
if tile.fg == 0 and world:getTile(tile.x, tile.y +
1).fg ~= 0 and world:getTile(tile.x, tile.y + 1).fg % 2 == 0 and
world:getTile(tile.x, tile.y + 1).fg ~= Block_ID then
if #bot:getPath(tile.x, tile.y) > 0 then
tileHarvestPlantX = tile.x
tileHarvestPlantY = tile.y
modEntered()
autoConsume()
randomChat()
levelCheck()
banWaveEstimated()
proxyPlayTime()
botPlayTime()
findpath(tile.x, tile.y)
webhookShareInfoAllBot()
elseif #bot:getPath(tile.x, tile.y) == 0 and
bot:isInTile(tile.x, tile.y) then
tileHarvestPlantX = tile.x
tileHarvestPlantY = tile.y
modEntered()
autoConsume()
randomChat()
levelCheck()
banWaveEstimated()
proxyPlayTime()
botPlayTime()
if bot:getPing() < High_Ping then
bot:place(tile.x, tile.y, Seed_ID)
sleep(math.random(Plant_Delay,
Plant_Delay + 100))
elseif bot:getPing() >= High_Ping then
bot:place(tile.x, tile.y, Seed_ID)
sleep(math.random(bot:getPing() +
50, bot:getPing() + 100))
end
webhookShareInfoAllBot()
end
if emptyTileBelowScan() == 0 then
break
end
end
if inventory:getItemCount(Seed_ID) == 0 then
break
elseif inventory:getItemCount(Seed_ID) > 0 then
if checkTilePlant2() == 0 then
if tile.x == 0 and bot.x <= 49 then
if tile.y > 0 and tile.y < 52 then
if #bot:getPath(0, tile.y +
2) > 0 then
findpath(0, tile.y + 2)
plant1()
elseif #bot:getPath(0, tile.y
+ 2) == 0 then
if bot:isInTile(0,
tile.y + 2) then
plant1()
elseif not
bot:isInTile(0, tile.y + 2) then
plantHelping2()
plant1()
end
end
elseif tile.y > 51 then
plantHelping2()
plant1()
end
elseif tile.x == 0 and bot.x >= 50 then
if tile.y > 0 and tile.y < 52 then
if #bot:getPath(99, tile.y +
2) > 0 then
findpath(99, tile.y + 2)
elseif #bot:getPath(99,
tile.y + 2) == 0 then
if not bot:isInTile(99,
tile.y + 2) then
plantHelping2()
plant1()
end
end
elseif tile.y > 51 then
plantHelping2()
plant1()
end
end
end
end
end
elseif bot.status ~= BotStatus.online or (bot.status ==
BotStatus.online and bot:getPing() == 0) then
reconnect(Rotation_World, tileHarvestPlantX,
tileHarvestPlantY)
end
end
end
unstableX = message:match("tilex|(%d+)")
unstableY = message:match("tiley|(%d+)")
retrieveItem = "action|dialog_return\ndialog_name|
itemsucker_block\ntilex|" .. unstableX .. "|\ntiley|" .. unstableY .. "|\
nbuttonClicked|retrieveitem\n\nchk_enablesucking|1"
bot:sendPacket(2, retrieveItem)
elseif message:match("Gaia") and noStopScript == true then
gaiaX = k.v2:match("tilex|(%d+)")
gaiaY = k.v2:match("tiley|(%d+)")
retrieveItem = "action|dialog_return\ndialog_name|
itemsucker_seed\ntilex|" .. gaiaX .. "|\ntiley|" .. gaiaY .. "|\nbuttonClicked|
retrieveitem\n\nchk_enablesucking|1"
bot:sendPacket(2, retrieveItem)
end
dropExceedPack()
randomSkinColor()
bot:setDirection(true)
sleep(100)
modEntered()
leveling()
autoConsume()
levelCheck()
banWaveEstimated()
proxyPlayTime()
botPlayTime()
if bot:isInWorld(Rotation_World) and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg == 0 and Auto_Plant == "YES" then
bot:place(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32), Seed_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
end
webhookShareInfoAllBot()
modEntered()
autoConsume()
randomChat()
levelCheck()
banWaveEstimated()
proxyPlayTime()
botPlayTime()
if checkValidPosition then
while bot:isInWorld(Rotation_World) and not bot:isInTile(X_Break,
Y_Break) do
sleep(25000)
reconnect(Rotation_World, X_Break, Y_Break)
findpath(X_Break, Y_Break)
end
end
if checkValidPosition then
while Use_Custom_World_For_Break == "YES" and
bot:isInWorld(Custom_World_Break_Other_World) and not bot:isInTile(X_Break,
Y_Break) do
sleep(25000)
reconnect(Custom_World_Break_Other_World, X_Break, Y_Break)
findpath(X_Break, Y_Break)
end
webhookShareInfoAllBot()
wrenchUnstableX = tile.x
wrenchUnstableY = tile.y
break
end
elseif bot.status ~= BotStatus.online or (bot.status
== BotStatus.online and bot:getPing() == 0) then
defaultBotX = bot.x
defaultBotY = bot.y
bot:setBubble(Bubble.brb)
sleep(500)
bot:wrench(wrenchUnstableX, wrenchUnstableY)
addEvent(Event.variantlist, retrieveItems)
listenEvents(5)
bot:setBubble(Bubble.none)
end
wrenchGaiaX = tile.x
wrenchGaiaY = tile.y
break
end
elseif bot.status ~= BotStatus.online or (bot.status
== BotStatus.online and bot:getPing() == 0) then
defaultBotX = bot.x
defaultBotY = bot.y
bot:setBubble(Bubble.brb)
sleep(500)
bot:wrench(wrenchGaiaX, wrenchGaiaY)
addEvent(Event.variantlist, retrieveItems)
listenEvents(5)
bot:setBubble(Bubble.none)
end
end
lastPNBBlockTileCheck()
webhookPlant()
plant1()
elseif Auto_Plant == "NO" then
webhookAutoPlantNo()
if inventory:getItemCount(Seed_ID) > 0 then
reconnect(Rotation_World, 1, 23)
bot.auto_collect = false
sleep(100)
seedWorld()
dropSeed()
takeItem(Block_ID)
hiddenWorld()
farmWorld()
reconnect(Rotation_World, 1, 23)
end
findpathBlock()
harvest1()
end
end
function pnbLast()
bot:getLog():append("Action: pnbLast")
if inventory:getItemCount(Block_ID) > 0 then
if tutorialWorld == "nil" and Break_Other_World == "YES" and
Use_Tutorial_World_For_Break == "YES" and not string.find(tutorialWorld,
bot.name:upper()) then
bot:sendPacket(2, "action|wrench\n|netid|" ..
world:getLocal().netid)
sleep(500)
bot:sendPacket(2, "action|dialog_return\ndialog_name|popup\
nnetID|" .. world:getLocal().netid .. "|\nbuttonClicked|my_worlds")
addEvent(Event.variantlist, tutorialWorldEvent)
listenEvents(2)
end
randomSkinColor()
bot:setDirection(true)
sleep(100)
if bot:isInWorld(Rotation_World) then
bot.auto_collect = true
sleep(100)
end
if bot:isInWorld(Rotation_World) and
world:getTile(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32)).fg == 0 and Auto_Plant == "YES" then
bot:place(math.floor(world:getLocal().posx / 32),
math.floor(world:getLocal().posy / 32), Seed_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
end
webhookShareInfoAllBot()
modEntered()
autoConsume()
randomChat()
levelCheck()
banWaveEstimated()
proxyPlayTime()
botPlayTime()
if checkValidPosition then
while bot:isInWorld(Rotation_World) and not
bot:isInTile(X_Break, Y_Break) do
sleep(25000)
reconnect(Rotation_World, X_Break, Y_Break)
findpath(X_Break, Y_Break)
end
end
webhookShareInfoAllBot()
modEntered()
autoConsume()
randomChat()
levelCheck()
banWaveEstimated()
proxyPlayTime()
botPlayTime()
if checkValidPosition then
while Use_Custom_World_For_Break == "YES" and
bot:isInWorld(Custom_World_Break_Other_World) and not bot:isInTile(X_Break,
Y_Break) do
sleep(25000)
reconnect(Custom_World_Break_Other_World, X_Break,
Y_Break)
findpath(X_Break, Y_Break)
end
webhookShareInfoAllBot()
bot:setBubble(Bubble.brb)
sleep(500)
bot:wrench(wrenchUnstableX, wrenchUnstableY)
addEvent(Event.variantlist, retrieveItems)
listenEvents(5)
bot:setBubble(Bubble.none)
end
wrenchGaiaX = tile.x
wrenchGaiaY = tile.y
break
end
elseif bot.status ~= BotStatus.online or (bot.status
== BotStatus.online and bot:getPing() == 0) then
defaultBotX = bot.x
defaultBotY = bot.y
bot:setBubble(Bubble.brb)
sleep(500)
bot:wrench(wrenchGaiaX, wrenchGaiaY)
addEvent(Event.variantlist, retrieveItems)
listenEvents(5)
bot:setBubble(Bubble.none)
end
end
lastPNBBlockTileCheck()
if Auto_Plant == "YES" then
if not bot:isInWorld(Rotation_World) then
farmWorld()
end
elseif Auto_Plant == "NO" then
webhookAutoPlantNo()
if inventory:getItemCount(Seed_ID) > 0 then
reconnect(Rotation_World, 1, 23)
bot.auto_collect = false
sleep(100)
seedWorld()
dropSeed()
takeItem(Block_ID)
hiddenWorld()
farmWorld()
end
end
lastCheck1()
end
function lastPNBBlockTileCheck()
if Break_Other_World == "YES" then
if Use_Custom_World_For_Break == "YES" then
reconnect(Custom_World_Break_Other_World, X_Break, Y_Break)
elseif Use_Random_World_For_Break == "YES" then
reconnect(randomWorldBreak(), breakOtherWorldX, breakOtherWorldY)
elseif Use_Tutorial_World_For_Break == "YES" then
reconnect(tutorialWorld, X_Break, Y_Break)
end
elseif Break_Other_World == "NO" then
reconnect(Rotation_World, X_Break, Y_Break)
end
if bot:isInWorld(Rotation_World) then
for _, tile in pairs(world:getTiles()) do
if bot.status == BotStatus.online then
if (tile.fg == Block_ID or tile.bg == Block_ID) then
if tile.y == 0 and world:hasAccess(tile.x, tile.y) ~=
0 then
if Break_Other_World == "YES" then
if Use_Custom_World_For_Break == "YES"
then
findpath(tile.x, tile.y + 1)
end
destroyDefault(tile.x, tile.y)
elseif #bot:getPath(tile.x, tile.y + 1) == 0
and bot:isInTile(tile.x, tile.y + 1) then
destroyDefault(tile.x, tile.y)
end
elseif tile.y == 1 and world:hasAccess(tile.x,
tile.y) ~= 0 then
if Break_Other_World == "YES" then
if Use_Custom_World_For_Break == "YES"
then
findpath(tile.x, tile.y - 1)
end
destroyDefault(tile.x, tile.y)
elseif #bot:getPath(tile.x, tile.y - 1) == 0
and bot:isInTile(tile.x, tile.y - 1) then
destroyDefault(tile.x, tile.y)
end
else
if world:hasAccess(tile.x, tile.y) ~= 0 then
if Break_Other_World == "YES" then
if Use_Custom_World_For_Break ==
"YES" then
findpath(tile.x, tile.y - 2)
end
destroyDefault(tile.x, tile.y)
elseif #bot:getPath(tile.x, tile.y - 2)
== 0 and bot:isInTile(tile.x, tile.y - 2) then
destroyDefault(tile.x, tile.y)
end
end
end
end
elseif bot.status ~= BotStatus.online or (bot.status ==
BotStatus.online and bot:getPing() == 0) then
if Break_Other_World == "YES" then
if Use_Custom_World_For_Break == "YES" then
reconnect(Custom_World_Break_Other_World,
X_Break, Y_Break)
elseif Use_Random_World_For_Break == "YES" then
reconnect(randomWorldBreak(), breakOtherWorldX,
breakOtherWorldY)
elseif Use_Tutorial_World_For_Break == "YES" then
reconnect(tutorialWorld, X_Break, Y_Break)
end
elseif Break_Other_World == "NO" then
reconnect(Rotation_World, X_Break, Y_Break)
end
end
end
end
end
function destroy(x, y)
while bot.status == BotStatus.online and (world:getTile(x, y).fg ~= 0 or
world:getTile(x, y).bg ~= 0) and (bot:isInTile(X_Break, Y_Break) or
bot:isInTile(breakOtherWorldX, breakOtherWorldY)) do
if Break_Other_World == "YES" then
if Use_Custom_World_For_Break == "YES" then
reconnect(Custom_World_Break_Other_World, X_Break, Y_Break)
elseif Use_Random_World_For_Break == "YES" then
reconnect(randomWorldBreak(), breakOtherWorldX,
breakOtherWorldY)
elseif Use_Tutorial_World_For_Break == "YES" then
reconnect(tutorialWorld, X_Break, Y_Break)
end
elseif Break_Other_World == "NO" then
reconnect(Rotation_World, X_Break, Y_Break)
end
breakerHelper()
function destroyDefault(x, y)
while bot.status == BotStatus.online and (world:getTile(x, y).fg ~= 0 or
world:getTile(x, y).bg ~= 0) do
if bot:isInWorld(Rotation_World) then
reconnect(Rotation_World, X_Break, Y_Break)
else
defaultWorldName = world.name:upper()
defaultBotX = bot.x
defaultBotY = bot.y
if bot:isInWorld(Rotation_World) then
reconnect(Rotation_World, X_Break, Y_Break)
else
defaultWorldName = world.name:upper()
defaultBotX = bot.x
defaultBotY = bot.y
if bot:isInWorld(Rotation_World) then
reconnect(Rotation_World, X_Break, Y_Break)
else
defaultWorldName = world.name:upper()
defaultBotY = bot.y
defaultBotX = bot.x
local permutations = {}
for i = 1, 1 do
local shuffled = {}
local temp_numbers = {table.unpack(numbers)}
while #temp_numbers > 0 do
local index = math.random(#temp_numbers)
table.insert(shuffled, table.remove(temp_numbers, index))
end
permutations[i] = shuffled
end
return permutations
end
function breaker()
if PNB_Range == 5 then
Range_Break = randomRangeBreak(-2, 2)
elseif PNB_Range == 4 then
Range_Break = randomRangeBreak(-2, 1)
elseif PNB_Range == 3 then
Range_Break = randomRangeBreak(-1, 1)
elseif PNB_Range == 2 then
Range_Break = randomRangeBreak(-1, 0)
elseif PNB_Range == 1 then
Range_Break = randomRangeBreak(0, 0)
end
if PNB_Range == 5 then
if bot:getPing() < High_Ping then
bot:place(X_Break - 1, Y_Break + Range_Break[1][1],
Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
bot:place(X_Break - 1, Y_Break + Range_Break[1][2],
Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
bot:place(X_Break - 1, Y_Break + Range_Break[1][3],
Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
bot:place(X_Break - 1, Y_Break + Range_Break[1][4],
Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
bot:place(X_Break - 1, Y_Break + Range_Break[1][5],
Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
elseif bot:getPing() >= High_Ping then
bot:place(X_Break - 1, Y_Break + Range_Break[1][1],
Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
bot:place(X_Break - 1, Y_Break + Range_Break[1][2],
Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
bot:place(X_Break - 1, Y_Break + Range_Break[1][3],
Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
bot:place(X_Break - 1, Y_Break + Range_Break[1][4],
Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
bot:place(X_Break - 1, Y_Break + Range_Break[1][5],
Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
end
destroy(X_Break - 1, Y_Break + Range_Break[1][1])
destroy(X_Break - 1, Y_Break + Range_Break[1][2])
destroy(X_Break - 1, Y_Break + Range_Break[1][3])
destroy(X_Break - 1, Y_Break + Range_Break[1][4])
destroy(X_Break - 1, Y_Break + Range_Break[1][5])
elseif PNB_Range == 4 then
if bot:getPing() < High_Ping then
bot:place(X_Break - 1, Y_Break + Range_Break[1][1],
Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
bot:place(X_Break - 1, Y_Break + Range_Break[1][2],
Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
bot:place(X_Break - 1, Y_Break + Range_Break[1][3],
Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
bot:place(X_Break - 1, Y_Break + Range_Break[1][4],
Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
elseif bot:getPing() >= High_Ping then
bot:place(X_Break - 1, Y_Break + Range_Break[1][1],
Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
bot:place(X_Break - 1, Y_Break + Range_Break[1][2],
Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
bot:place(X_Break - 1, Y_Break + Range_Break[1][3],
Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
bot:place(X_Break - 1, Y_Break + Range_Break[1][4],
Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
end
destroy(X_Break - 1, Y_Break + Range_Break[1][1])
destroy(X_Break - 1, Y_Break + Range_Break[1][2])
destroy(X_Break - 1, Y_Break + Range_Break[1][3])
destroy(X_Break - 1, Y_Break + Range_Break[1][4])
elseif PNB_Range == 3 then
if bot:getPing() < High_Ping then
bot:place(X_Break - 1, Y_Break + Range_Break[1][1],
Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
bot:place(X_Break - 1, Y_Break + Range_Break[1][2],
Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
bot:place(X_Break - 1, Y_Break + Range_Break[1][3],
Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
elseif bot:getPing() >= High_Ping then
bot:place(X_Break - 1, Y_Break + Range_Break[1][1],
Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
bot:place(X_Break - 1, Y_Break + Range_Break[1][2],
Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
bot:place(X_Break - 1, Y_Break + Range_Break[1][3],
Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
end
destroy(X_Break - 1, Y_Break + Range_Break[1][1])
destroy(X_Break - 1, Y_Break + Range_Break[1][2])
destroy(X_Break - 1, Y_Break + Range_Break[1][3])
elseif PNB_Range == 2 then
if bot:getPing() < High_Ping then
bot:place(X_Break - 1, Y_Break + Range_Break[1][1],
Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
bot:place(X_Break - 1, Y_Break + Range_Break[1][2],
Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
elseif bot:getPing() >= High_Ping then
bot:place(X_Break - 1, Y_Break + Range_Break[1][1],
Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
bot:place(X_Break - 1, Y_Break + Range_Break[1][2],
Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
end
destroy(X_Break - 1, Y_Break + Range_Break[1][1])
destroy(X_Break - 1, Y_Break + Range_Break[1][2])
elseif PNB_Range == 1 then
if bot:getPing() < High_Ping then
bot:place(X_Break - 1, Y_Break + Range_Break[1][1],
Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
elseif bot:getPing() >= High_Ping then
bot:place(X_Break - 1, Y_Break + Range_Break[1][1],
Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
end
destroy(X_Break - 1, Y_Break + Range_Break[1][1])
else
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** Enter PNB_Range with the
numbers 1 to 5, according to how many tile you want to break."
)
end
elseif math.floor(world:getLocal().posx / 32) == breakOtherWorldX and
math.floor(world:getLocal().posy / 32) == breakOtherWorldY then
if Break_Other_World == "YES" then
if Use_Custom_World_For_Break == "YES" then
reconnect(Custom_World_Break_Other_World, X_Break, Y_Break)
elseif Use_Random_World_For_Break == "YES" then
reconnect(randomWorldBreak(), breakOtherWorldX,
breakOtherWorldY)
elseif Use_Tutorial_World_For_Break == "YES" then
reconnect(tutorialWorld, X_Break, Y_Break)
end
elseif Break_Other_World == "NO" then
reconnect(Rotation_World, X_Break, Y_Break)
end
if PNB_Range == 5 then
if bot:getPing() < High_Ping then
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][1], Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][2], Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][3], Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][4], Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][5], Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
elseif bot:getPing() >= High_Ping then
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][1], Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][2], Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][3], Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][4], Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][5], Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
end
destroy(breakOtherWorldX - 1, breakOtherWorldY + Range_Break[1]
[1])
destroy(breakOtherWorldX - 1, breakOtherWorldY + Range_Break[1]
[2])
destroy(breakOtherWorldX - 1, breakOtherWorldY + Range_Break[1]
[3])
destroy(breakOtherWorldX - 1, breakOtherWorldY + Range_Break[1]
[4])
destroy(breakOtherWorldX - 1, breakOtherWorldY + Range_Break[1]
[5])
elseif PNB_Range == 4 then
if bot:getPing() < High_Ping then
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][1], Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][2], Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][3], Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][4], Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
elseif bot:getPing() >= High_Ping then
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][1], Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][2], Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][3], Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][4], Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
end
destroy(breakOtherWorldX - 1, breakOtherWorldY + Range_Break[1]
[1])
destroy(breakOtherWorldX - 1, breakOtherWorldY + Range_Break[1]
[2])
destroy(breakOtherWorldX - 1, breakOtherWorldY + Range_Break[1]
[3])
destroy(breakOtherWorldX - 1, breakOtherWorldY + Range_Break[1]
[4])
elseif PNB_Range == 3 then
if bot:getPing() < High_Ping then
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][1], Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][2], Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][3], Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
elseif bot:getPing() >= High_Ping then
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][1], Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][2], Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][3], Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
end
destroy(breakOtherWorldX - 1, breakOtherWorldY + Range_Break[1]
[1])
destroy(breakOtherWorldX - 1, breakOtherWorldY + Range_Break[1]
[2])
destroy(breakOtherWorldX - 1, breakOtherWorldY + Range_Break[1]
[3])
elseif PNB_Range == 2 then
if bot:getPing() < High_Ping then
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][1], Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][2], Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
elseif bot:getPing() >= High_Ping then
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][1], Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][2], Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
end
destroy(breakOtherWorldX - 1, breakOtherWorldY + Range_Break[1]
[1])
destroy(breakOtherWorldX - 1, breakOtherWorldY + Range_Break[1]
[2])
elseif PNB_Range == 1 then
if bot:getPing() < High_Ping then
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][1], Block_ID)
sleep(math.random(Place_Delay, Place_Delay + 100))
elseif bot:getPing() >= High_Ping then
bot:place(breakOtherWorldX - 1, breakOtherWorldY +
Range_Break[1][1], Block_ID)
sleep(math.random(bot:getPing() + 50, bot:getPing() + 100))
end
destroy(breakOtherWorldX - 1, breakOtherWorldY + Range_Break[1]
[1])
else
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** Enter PNB_Range with the
numbers 1 to 5, according to how many tile you want to break."
)
end
end
end
function breakerHelper()
if Break_Other_World == "YES" then
if (world:hasAccess(bot.x + 1, bot.y) == 0 or tileGrowScan(fireID) > 0)
and Use_Custom_World_For_Break == "YES" and
bot:isInWorld(Custom_World_Break_Other_World) then
dropExceedPackGoOffline()
autoRecon = false
noStopScript = false
bot:disconnect()
sleep(100)
webhookShareInfoAllBot()
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " .. bot.name:upper() ..
" is offline as it does not have access to PNB."
)
removeBotIndex(Remove_Bot, bot.name:upper() .. " is offline as it
does not have access to PNB.")
elseif (world:hasAccess(bot.x + 1, bot.y) == 0 or tileGrowScan(fireID)
> 0) and Use_Random_World_For_Break == "YES" and bot:isInWorld(randomWorldBreak())
then
cachedWorldBreak = nil
pnb()
elseif (world:hasAccess(bot.x + 1, bot.y) == 0 or tileGrowScan(fireID)
> 0) and Use_Tutorial_World_For_Break == "YES" and bot:isInWorld(tutorialWorld)
then
dropExceedPackGoOffline()
dropEquipmentBeforeOfffline()
hiddenWorld()
autoRecon = false
noStopScript = false
bot:disconnect()
sleep(100)
webhookShareInfoAllBot()
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " .. bot.name:upper() ..
" is offline as it does not have access to PNB."
)
removeBotIndex(Remove_Bot, bot.name:upper() .. " is offline as it
does not have access to PNB.")
end
elseif Break_Other_World == "NO" then
if bot:isInWorld(Rotation_World) then
if world:hasAccess(bot.x + 1, bot.y) == 0 then
dropExceedPackGoOffline()
"**[" ..
getItemName(Pickaxe_ID):upper() .. " INFORMATION ]** \n" ..
"<:Globe:1190695520210006036> **|** " ..
getItemName(Pickaxe_ID) .. " World: `" .. world.name:upper() .. "` \n" ..
":package: **|** Total " ..
getItemName(Pickaxe_ID) .. " Dropped: \n" ..
getItemName(Pickaxe_ID) .. ": " ..
objectGrowScan(Pickaxe_ID)
)
end
end
dropEquipmentBeforeOfffline()
hiddenWorld()
autoRecon = false
noStopScript = false
bot:disconnect()
sleep(100)
webhookShareInfoAllBot()
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** " ..
bot.name:upper() .. " is offline as it does not have access to PNB."
)
removeBotIndex(Remove_Bot, bot.name:upper() .. " is offline
as it does not have access to PNB.")
elseif tileGrowScan(fireID) > 0 then
antiFire()
end
end
end
end
---- [ END PNB ] ----
function nextWorldLoop()
if nextWorldStatus == true and noStopScript == true then
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "|| [" ..
Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " .. bot.level ..
" \n" ..
"<a:toa:997296837352505415> **|** Bot Information: Next World \n\
n" ..
useEmbed2 = true
checkDropPackCount2()
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "||
[" .. Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " ..
bot.level .. " \n" ..
"<:Purple_Gem:1190695162549108876> **|** Gems Amount: " ..
bot.gem_count .. " \n\n" ..
useEmbed2 = true
checkDropPackCount2()
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "||
[" .. Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " ..
bot.level .. " \n" ..
"<:Purple_Gem:1190695162549108876> **|** Gems Amount: " ..
bot.gem_count .. " \n\n" ..
function nextWorldNoLoop()
if nextWorldStatus == true and noStopScript == true then
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "|| [" ..
Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " .. bot.level ..
" \n" ..
"<a:toa:997296837352505415> **|** Bot Information: Next World \n\
n" ..
useEmbed2 = true
checkDropPackCount2()
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "||
[" .. Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " ..
bot.level .. " \n" ..
"<:Purple_Gem:1190695162549108876> **|** Gems Amount: " ..
bot.gem_count .. " \n\n" ..
dropExceedPackGoOffline()
dropEquipmentBeforeOfffline()
hiddenWorld()
autoRecon = false
noStopScript = false
bot:disconnect()
sleep(100)
webhookShareInfoAllBot()
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "||
[" .. Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " ..
bot.level .. " \n" ..
"<a:toa:997296837352505415> **|** Bot Information: Rotation
Complete, Bot Offline!"
)
removeBotIndex(Remove_Bot, "Bot Information: Rotation Complete,
Bot Offline!")
end
end
end
---- [ END LOOPING WORLD ] ----
timeEnd()
loopStatus()
else
reconnect(Rotation_World, 1, 23)
lastCheck()
end
end
function lastCheck1()
if bot.status == BotStatus.online then
if emptyTileScan() == 0 then
lastCheck()
else
if Auto_Plant == "YES" then
while emptyTileScan() > 0 do
reconnect(Rotation_World, 1, 23)
if inventory:getItemCount(Seed_ID) == 0 then
takeSeed()
end
plant1()
end
elseif Auto_Plant == "NO" then
lastCheck()
end
end
else
reconnect(Rotation_World, 1, 23)
lastCheck1()
end
end
function lastCheck2()
if bot.status == BotStatus.online then
if bot:isInWorld(Rotation_World) and readyTreeScan() == 0 and
objectSafeScan(Block_ID) == 0 then
if emptyTileScan() == 0 then
if bot.level < Min_Level then
lastCheck()
elseif bot.level >= Min_Level then
if inventory:getItemCount(Block_ID) > 0 then
pnbLast()
else
lastCheck1()
end
end
elseif emptyTileScan() > 0 then
lastCheck1()
end
else
while bot:isInWorld(Rotation_World) and (readyTreeScan() > 0 or
objectSafeScan(Block_ID) > 0) do
reconnect(Rotation_World, 1, 23)
if inventory:getItemCount(Seed_ID) > Max_Seed_To_Drop then
bot.auto_collect = false
sleep(100)
seedWorld()
dropSeed()
takeItem(Block_ID)
hiddenWorld()
farmWorld()
end
findpathBlock()
harvest1()
end
end
else
reconnect(Rotation_World, 1, 23)
lastCheck2()
end
end
---- [ END CHECK RUNNING ] ----
bot:connect()
sleep(Reconnect_Delay)
maxReconnect()
webhookShareInfoBot(
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "|| [" ..
Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " .. bot.level ..
" \n" ..
"<a:toa:997296837352505415> **|** Bot Trying to Reconnect! (" ..
connectCount .. "/" .. maxReconnectCount .. ")"
)
dropEquipmentBeforeOfffline()
hiddenWorld()
autoRecon = false
bot:disconnect()
sleep(100)
webhookShareInfoAllBot()
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " ..
bot.name:upper() .. " \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "||
[" .. Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[Max Level]` \
n" ..
"<:Level:1190699579230916650> **|** Bot Level: " ..
bot.level
)
removeBotLogFile(bot.name:upper(), "Max Level")
if Change_Bot == "YES" then
table.remove(Bot_List_Result, botStartNumber)
totalBotList = #Bot_List_Result
botStartNumber = botStartNumber - 1
changeBotStatus()
elseif Change_Bot == "NO" then
noStopScript = false
removeBotIndex(Remove_Bot, "Failed to change the bot
because the feature was disabled.")
end
end
end
randomWorldBreak()
randomWorldQuest()
proxyTime = os.time()
botTime = os.time()
proxyTimeShow = os.time() - proxyTime
botTimeShow = os.time() - botTime
useEmbed2 = true
checkDropPackCount2()
webhookShareInfoBot(
"**[ BOT INFORMATION ]** \n" ..
"<:GT_Bot:1190695123336560781> **|** Bot Name: " .. bot.name:upper() ..
" \n" ..
":1234: **|** Bot MAC: ||" .. bot:getLogin().mac .. "|| [" ..
Bot_Format .. "] \n" ..
"<:Status:1190695183440945182> **|** Bot Status: " ..
activeAndNonActiveStatus() .. " [" .. bot:getPing() .. "] \n" ..
"<:Right_Arrow_V2:1190695167078957056> `[" ..
statusBotDescription() .. "]` \n" ..
"<:Level:1190699579230916650> **|** Bot Level: " .. bot.level .. " \
n" ..
"<:Purple_Gem:1190695162549108876> **|** Gems Amount: " ..
bot.gem_count .. " \n\n" ..
--questSequenceBackup = false
--startTutorialQuest()
main()
end
---- [ END ADD BOT FOR FIRST TIME ] ----
webhookShareInfoAllBot()
banWaveEstimated()
leveling()
takePickaxe()
farmWorld()
trashItem()
killingGhost()
if Auto_Kill_Ghost_Only == "YES" and ((Spread_Rotation_World_List == "NO" and
bot.index == indexUnrunningScript) or Spread_Rotation_World_List == "YES") then
loopStatus()
end
antiToxic()
antiFire()
if Auto_Fossil == "YES" and fossilRockScan() > 0 then
sendWebhookAmountAutoFossil = 0
takeFossil()
end
timeStart()
if checkValidRunning then
local isNotValidGrowID = false
if Change_Proxy == "YES" then
local isValidChangeProxy = (Change_Proxy_On_Proxy_Playtime ==
"YES" and 1 or 0)
if isValidChangeProxy > 1 then
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** Please choose one
of the change proxy options!"
)
removeBotIndex(Remove_Bot, "Please choose one of the change
proxy options!")
elseif isValidChangeProxy < 1 then
webhookShareInfoBot(
"<a:toa:997296837352505415> **|** Please choose one
of the change proxy options!"
)
removeBotIndex(Remove_Bot, "Please choose one of the change
proxy options!")
end
end
if isNotValidGrowID then
webhookShareInfoBot(
'Bot list format is wrong! Please follow the format as
below: \n\n' ..
'Bot_List = { "BOT|PASSWORD" }'
)
removeBotIndex(Remove_Bot, "Bot list format is wrong!")
end
checkValidRunningValid = true
if checkValidRunningValid then
webhookShareInfoAds(":pushpin: **|** Buy other scripts only at
Grow King Scripts. \nReport bugs [click here!](<https://discord.gg/tTQ6s9pyVx>)")
bot:getLog():append("..............................................................
. \n[GROW KING SCRIPTS] Script Started! \n\nBuy other scripts only at Grow King
Scripts. \nReport bugs [click here!](<https://discord.gg/tTQ6s9pyVx>) \
n...............................................................")
sleep(100)
addBotFirst()
end
end
end
---- [ END VALID GROWID CHECK ] ----
bot.auto_tutorial.enabled = false
bot.auto_trash = false
bot.move_range = Move_Range
bot.move_interval = Move_Speed_1
bot.legit_mode = showPunchAnimation()
bot.ignore_gems = ignoreGemsStatus()
sleep(1000)
checkValidRunning()
]]
getBots()[index]:runScript(ScriptHelping1)
sleep(500)
getBots()[index]:runScript(ScriptHelping2)
sleep(500)
getBots()[index]:runScript(Script)
if Use_Start_Script_Cooldown_Per_Bot == "YES" and getBots()[index].status ~=
BotStatus.online then
sleep(Start_Script_Cooldown_Per_Bot)
else
sleep(200)
end
end