Skip to main content

🪰 Farm Rotation

info

aku sarankan gunakan versi website saja jika kamu tidak perlu yang terlalu advanced!

disini meggunakan world farming dan akan move seed setelah itu buy lock dengan tambahan fitur agar script bisa fleksible di jalankan, total ada 3 script berbeda dengan sistem

  1. script utama
  2. script yang menjalankan
  3. script yang menghentikan

# OnCall (script 1) - primary​

jika kamu ada 20 bot, maka "{bots.all.0}" sampai "{bots.all.19}" . Karena script ini full OnLoad maka kalau ada gagal diharuskan untuk reload script nya ulang

# ini delay bot setiap join world
setting "delay_after_join" 5
# ini delay reconnect saat kena dc
setting "reconnect_delay" 10
# kalau gagal reconnect 3 kali, bot akan diem dan tampilan di web jadi ERROR_CONNECTING
setting "error_connecting_threshold" 3
setting "error_connecting_delay" 0
execute any-true [{event.data.id}!="rotation",{event.data.caller}!={bot.name}] terminate
condition [{var.bot.working}="false",{var.bot.working}="null"] continue[] terminate[] true
var "bot.working" store text "true"
var "storageLocation" store text "Door"
var "storageSeed" store text "MYWORLD|ID;MAKSIMAL SEED;LOKASI DROP"
var "farmingItem" store text "Pepper Tree"
var "storageLock" store text "LOKASI DROP"
var "storageLockWorld" store text "MYWORLD|ID"
execute as "{script.bots.0}" var "bot.world" store list ["MYWORLD|ID"]
execute as "{script.bots.1}" var "bot.world" store list ["MYWORLD|ID"]
execute if-true [{var.bot.world}="null"] var "bot.working" store text "false"
execute if-true [{var.bot.world}="null"] terminate
loop "{var.bot.world}"
go "{var.loop.value}" await
execute if-true [{var.returnValue.isSuccess}="false"] var "bot.working" store text "false"
execute if-true [{var.returnValue.isSuccess}="false"] loop continue
# farming
job schedule [name="world_farming",start_world="{var.loop.value}",item="{var.farmingItem}",storage_location="{var.storageLocation}",type="FARMING"]
job wait "world_farming"
var "bot.cancelReason" store text "{var.returnValue.cancelReason}"
execute if-true [{var.bot.cancelReason}="bot disconnected"] var "bot.working" store text "false"
execute if-true [{var.bot.cancelReason}="bot disconnected"] terminate
execute if-true [{var.bot.cancelReason}="bot pindah world"] var "bot.working" store text "false"
execute if-true [{var.bot.cancelReason}="bot pindah world"] terminate
# move item
job schedule [name="move_item",start_world="{var.loop.value}",worlds="SOURCE;{var.farmingItem} Seed;{var.loop.value},TARGET;{var.farmingItem} Seed;{var.storageSeed}"]
job wait "move_item"
var "bot.cancelReason" store text "{var.returnValue.cancelReason}"
execute if-true [{var.bot.cancelReason}="bot disconnected"] var "bot.working" store text "false"
execute if-true [{var.bot.cancelReason}="bot disconnected"] terminate
execute if-true [{var.bot.cancelReason}="bot pindah world"] var "bot.working" store text "false"
execute if-true [{var.bot.cancelReason}="bot pindah world"] terminate
# buy lock, amount="0" akan buy sampai gems habis
job schedule [name="buy_lock",start_world="{var.storageLockWorld}",pack="true",amount="0",storage_location="{var.storageLock}"]
job wait "buy_lock"
var "bot.cancelReason" store text "{var.returnValue.cancelReason}"
execute if-true [{var.bot.cancelReason}="bot disconnected"] var "bot.working" store text "false"
execute if-true [{var.bot.cancelReason}="bot disconnected"] terminate
execute if-true [{var.bot.cancelReason}="bot pindah world"] var "bot.working" store text "false"
execute if-true [{var.bot.cancelReason}="bot pindah world"] terminate
go "EXIT"
# end, ada wait untuk kasi jeda sedikit
print "selesai farming, move seed, dan buy lock dari world {var.loop.value}"
wait 60
loop end

kalau kamu mau jalankan ulang setelah selesai farming di semua world, tambahkan command ini di akhir

var clear true
goto 1

# OnLoad (script 2) - starting​

pastikan buat script baru dan add bot yang sama seperti di script pertama

untuk menjalankan script diatas, bisa kamu lakukan dengan 2 cara

OnLoad​

jika menggunakan OnLoad maka semua bot yang di add ke script akan menjalankan rotasi nya

reconnect
wait 15
var clear true
call [id="rotation"]

caranya dengan reload script nya agar OnLoad ini dijalankan

OnCall​

jika menggunakan OnCall akan memungkinkan untuk menjalankan rotasi nya di bot tertentu

condition [{event.data.id}="start"] continue[] terminate[]
reconnect
wait 15
var clear true
call [id="rotation"]

caranya dengan select bot lewat controller dan pilih execute script, setelah itu ketik call [id="start"]

# OnLoad (script 3) - stopping​

pastikan buat script baru dan add bot yang sama seperti di script pertama

untuk membatalkan script kamu bisa disconnect saja bot yang sedang berjalan tapi kalau ingin benar - benar stop bisa lakukan dengan reload script 1 dan 3

OnLoad​

jika menggunakan OnLoad maka semua bot yang di add ke script akan membatalkan script rotasi nya

var clear true
disconnect all

caranya dengan reload script nya agar OnLoad ini dijalankan

OnCall​

jika menggunakan OnCall akan memungkinkan untuk membatalkan script rotasi nya di bot tertentu

condition [{event.data.id}="stop"] continue[] terminate[]
var clear true
disconnect all

caranya dengan select bot lewat controller dan pilih execute script, setelah itu ketik call [id="stop"]

# adds - on​

setelah script diatas, bisa kamu tambahkan juga beberapa add - on untuk fungsi tambahan!

# auto scan world​

script diatas belum auto scan world, silahkan tambahkan script

world db is-ready 1200 "{var.loop.value}"
execute if-true [{var.returnValue.isSuccess}="false"] loop continue

setelah command

loop "{var.bot.world}"

ini akan otomatis scan world yang ada 1200 tree ready, kalau mau ganti misalnya world db is-ready 1000 "{var.loop.value}" untuk 1000 tree saja

# max uptime​

untuk mencegah banned, kamu bisa tambahkan script ini di OnTick 3600_seconds agar bot jalan ulang. Script ini akan disconnect botnya dlu dan tunggu 10 menit sebelum dijalankan kembali, kamu bisa ganti 6 nya menjadi berapa jam yang kamu inginkan

condition [{bot.uptime_hour}>="6",{bot.status}="Online"] continue[] terminate[]
var clear true
disconnect
wait 600
reconnect
wait 15
call [id="rotation"]

# multi server​

jika kamu punya lebih dari 1 server, agar gausah buat script per server bisa kamu akalin dengan execute if-true [{bot.server}="nama server"] contoh:

execute if-true [{bot.server}="hydras1"] execute as "{bots.all.0}" var "bot.world" store list ["WORLD1|ID","WORLD2|ID"]

# take pickaxe​

kalau kamu pengen botnya otomatis take Pickaxe saat di start, bisa tambah script ini dengan hook OnLoad. pastikan juga scriptnya dipisah agar ga tabrakan dengan OnLoad yang memulai farm rotation

condition [{bot.inventory.Pickaxe.amount}=0] continue[] terminate[]
job schedule [name="collect",search="Pickaxe;1;true;true",start_world="WORLDSTORAGE|ID"]
job wait "collect"
var clear true
call [id="rotation"]

# force purchase​

kalau misalnya kepepet, kamu bisa add script dengan hook OnWorldJoin supaya bisa langsung suruh bot ke world & mulai buy lock

note: pastikan worldnya tidak sedang kamu gunakan di script farming, supaya botnya ga otomatis purchase disana

condition [{bot.world.name}="WORLSTORAGEKAMU"] continue[] terminate[]
job schedule [name="buy_lock",start_world="WORLD|ID",pack="true",storage="Grass"]
job wait "buy_lock"
disconnect

setelah purchase, bisa di jalankan ulang farmingnya lewat script ke 3 diatas

# auto offline​

ban wave biasanya ada jam tertentu, dan kemungkinan kena banned bisa kamu minimalisir dengan disconnect di jam tersebut. begini contoh scriptnya

OnTick -> 30_seconds - untuk offline (misalnya off di jam 2 siang)

var "stop" store text "false"
execute if-true [{time.wib}~"14:"] var "stop" store text "true"
condition [{var.stop}="true"] continue[] terminate[]
disconnect

OnTick -> 30_seconds - untuk balik online (misalnya on di jam 5 sore)

var "lanjut" store text "false"
execute if-true [{bot.status}=Offline,{time.wib}~"17:"] var "lanjut" store text "true"
condition [{var.lanjut}="true"] continue[] terminate[]
var clear true
reconnect
wait 30
call [id="rotation"]

bisa dipakai juga untuk farming via website ! tinggal ganti

var clear true
reconnect
wait 30
call [id="rotation"]

jadi

reconnect

# disconnect kalau banned​

kalau kamu pengen semua bot disconnect saat salah satu bot kena banned, bisa tambahkan script ini dengan hook OnBotBanned

note: ini ga akan nge disconnect bot di beda server

disconnect all