๐ฎ Script Command
berikut adalah semua list command yang ada, beserta penjelasan singkatnya. Untuk cek selengkapnya klik text yang bercetak merah
- bot untuk mengatur bot di server
- chat untuk kirim chat sebagai bot
- go untuk kirim bot ke world
- function untuk menjalankan kode lain dalam 1 script
- condition untuk logic dalam scripting
- job command untuk manipulasi job
- job wait untuk menunggu sampai job selesai
- job schedule untuk menjalankan job lewat script
- call untuk trigger OnCall ke setiap script
- collect untuk collect item lewat scripting
- disconnect untuk disconnect bot
- reconnect untuk reconnect bot
- enter untuk masuk ke door
- inventory untuk manipulasi inventory bot
- move untuk menggerakkan bot
- tile untuk manipulasi block sekitar bot atau menggunakan consumable
- respawn untuk respawn bot
- wait untuk 'pause' eksekusi script selama x detik
- print untuk menampilkan sesuai ke console
- pathfinding untuk suruh bot jalan ke lokasi tertentu
- notification untuk kirim notifikasi webhook
- execute untuk menjalankan command sesuai logika atau bot
- terminate untuk stop eksekusi script saat ini
- buy untuk membeli sesuatu di growtopia store
- var untuk manipulasi variable
- var clear untuk hapus semua variable
- goto untuk manipulasi eksekusi script
- foreach untuk looping variable yang bertipe array / list
- setting untuk ganti setting bot
- dialog untuk interaksi dengan dialog Growtopia
- farming untuk kontrol fitur farming v website
# botโ
command untuk mengatur bot di server saat ini, dibawah adalah list command yang tersedia beserta contohnya
# reset-deviceโ
command untuk reset device bot, fungsinya sama dengan yang bisa kamu lakukan lewat website
bot rest-device
# set-proxyโ
command untuk ganti proxy bot, ini engga ganti proxy bot yang di bot list ya. yang berubah bersifat sementara dan akan ke-update saat ngecek lewat bot controller
# syntax
bot set-proxy <ip> <port> <username> <password> <rotating mode>
# contoh
bot set-proxy "127.0.0.1" "1080" "hydra" "hydra" false
setelah ganti proxy, bot akan otomatis disconnect. jadi jalankan command reconnect
setelahnya
# set-default-proxyโ
karena set-proxy akan override default, kamu bisa setel bot agar ganti ke IP default (sesuai website) dengan command ini
bot set-default-proxy
sama seperti set-proxy, bot akan disconnect. jadi jalankan command reconnect
setelahnya
# reset-uptimeโ
command untuk reset uptime bot, cocok kalau digunakan dengan script yang ngecek berapa jam lamanya bot sudah online
bot reset-uptime
contoh penggunaan dengan OnTick agar bot pause farming setelah 1 jam online
condition [{bot.uptime_hour}>=1] continue[] terminate[]
bot reset-uptime
farming pause
# birth-certificateโ
command untuk change name bot dengan Birth Certificate, diharuskan bot memiliki Birth Certificate di inventory! script fullnya bisa kamu temukan disini. jika berhasil change name, data di website akan otomatis berubah
bot birth-certificate "nama baru"
setelah command dijalankan, ada variable returnValue
yang bisa kamu akses untuk cek apakah berhasil atau tidak
bot birth-certificate "nama baru"
execute if-true [{var.returnValue}="true"] print "berhasil change name"
execute if-true [{var.returnValue}="false"] print "gagal change name"
# chatโ
suruh bot untuk kirim chat
# syntaxโ
chat <message: string>
# contohโ
bot akan chat 'Halo'
chat "Halo"
# goโ
suruh bot untuk pindah world, ada beberapa tipe dengan sifat yang berbeda untuk kamu pilih
# syntaxโ
go <world: string> (wait|await|now)
# contohโ
go "ANAKFFMAJU"
bot akan ke world ANAKFFMAJU
dengan catatan
- tidak reconnect jika offline, tapi akan di skip dan lanjut ke baris berikutnya kalau offline
- tidak akan pause eksekusi script saat dijalankan
- tidak akan batalkan jalannya script kalau gagal join
- berisi auto rejoin kalau gagal, jika tidak suka gunakan
go <world> now
tapi delay & gagal joinnya harus di handle sendiri
go "ANAKFFMAJU" wait
print "done"
bot akan ke world ANAKFFMAJU
dengan catatan
- akan reconnect jika offline
- akan pause jalannya script & cancel jika gagal join
go "ANAKFFMAJU" await
print "done"
bot akan ke world ANAKFFMAJU
dengan catatan
- akan reconnect jika offline
- akan pause jalannya script tapi tidak cancel jika gagal join
await juga memberikan status berupa true/false
di variable {var.returnValue}
untuk indikasi apakah berhasil join world atau tidak
go "ANAKFFMAJU" await
execute if-true [{var.returnValue}="true"] print "berhasil join ANAKFFMAJU"
execute if-true [{var.returnValue}="false"] print "gagal join ANAKFFMAJU"
go "ANAKFFMAJU" now
print "langsung jalan"
bot akan ke world ANAKFFMAJU
dengan catatan
- tidak reconnect jika offline, tapi akan di skip dan lanjut ke baris berikutnya kalau offline
- tidak akan pause eksekusi script, user diharapkan melakukan delay sendiri
# using idโ
penggunaan id sama seperti di Growtopia, tinggal berikan |
contoh: WORLD|ID
# join failureโ
maksud dari gagal join itu
- kena sub server
- world nuked
- id door salah dan setiap kegagalan akan 'sleep' bot beberapa detik untuk mencoba ulang, maksimal 5 kali
# functionโ
command untuk manipulasi function, warning lebih ke user advance, kurang berguna kalau sedang belajar
# function callโ
command function bisa menjalankan function lain di dalam satu script, kamu juga bisa mengirim data ke dalam script tersebut
function lain[data="my data"]
function dengan nama lain
akan dijalankan dalam 1 script dan data bisa di akses dengan {lain.data}
formatnya menggunakan nama function di awalan
# function disableโ
command ini bisa disable function agar tidak dapat dijalankan oleh command function
lain & dari hook nya sendiri
function disable <nama: string>
function test
hook OnChat
chat "Halo"
function disable "test"
maka functionnya hanya akan jalan sekali saja setiap kamu kirim chat sampai script di reload
hanya bisa disable function di dalam 1 script
# function enableโ
command ini bisa enable function agar dapat dijalankan lagi kalau sebelumnya di disable dengan function disable
function enable <nama: string>
function test
hook OnChat
chat "Halo"
function disable "test"
wait 30
function enable "test"
maka functionnya hanya akan jalan setiap 30 detik, jadi kalau kamu kirim !h test
bot akan chat Halo
dan kalau !h test
lagi setelah 30 detik, bot baru bisa chat lagi.
hanya bisa enable function di dalam 1 script
# function createโ
dengan kombinasi enable & disable, kamu bisa membuat function di dalam script tanpa perlu ke website, ini berguna kalau mau menjalankan script hanya pada logic tertentu
function create <nama: string> <hook: string> <bots: array>
... command dalam function
function end
function test
hook OnLoad
function create "myFunction" "OnChat" []
chat "halo {event.sender.name}"
function disable "myFunction"
function end
maka akan ada script OnChat
valid dalam script yang bisa dijalankan oleh semua bot yang di load oleh script saat ini, dan hanya akan bekerja sekali saja karena ada function disable
function test2
hook OnLoad
function create "myFunction" "OnChat" ["RudeusKami1","RudeusKami2"]
chat "halo {event.sender.name}"
function disable "myFunction"
function end
maka akan ada script OnChat
valid dalam script yang hanya bisa dijalankan oleh bot RudeusKami1
& RudeusKami2
, dan hanya akan bekerja sekali saja karena ada function disable
function hanya valid di dalam 1 script tempat function nya dibuat & function akan selalu ada walaupun eksekusi nya sudah selesai
# function removeโ
ada kalanya kamu ingin hapus function & bukan disable saja, command ini akan membantu
function remove <nama: string>
function test
hook OnChat
chat "good bye"
function remove "test"
maka functionnya akan dihapus sampai script di reload
hanya bisa remove function dalam 1 script
# conditionโ
cek kondisi variable apakah benar atau salah sebelum lanjut ke command selanjutnya
# syntaxโ
condition <gabungan kondisi: list> <jika benar: function> <jika salah: function> [any true] [terminate]
# conditionโ
list kondisi yang tersedia
var1=var2 -> cek apakah var1 sama dengan var2
var1!=var2 -> cek apakah var1 tidak sama dengan var2
var1~var2 -> cek apakah ada kemiripan di var1 dengan var2 (khusus text)
var1!~var2 -> cek apakah tidak ada kemiripan di var1 dengan var2 (khusus text)
var1>var2 -> cek apakah var1 lebih besar dari var2 (khusus angka)
var1<var2 -> cek apakah var1 lebih kecil dari var2 (khusus angka)
var1>=var2 -> cek apakah var1 lebih atau sama dengan var2 (khusus angka)
var1<=var2 -> cek apakah var1 kurang atau sama dengan var2 (khusus angka)
# contoh kondisiโ
diberikan variable berupa var1
yang isinya 1 dan var2
yang isinya 1 maka
var1=var2 -> bernilai benar karena 1 = 1
# functionโ
2 variable setelah list kondisi adalah function yang akan dipanggil tergantung dari kondisi. Jika tidak ingin memangggil fungsi apapun kamu bisa gunakan
continue[]
untuk lanjut ke baris selanjutnyaterminate[]
untuk stop eksekusi commandgoto[line=angka]
untuk loncat ke suatu baris, sama seperti goto
# any trueโ
ini opsional, bisa kamu isi dengan true
atau false
, default false
- jika
true
maka condition akan menghasilkan true jika salah satu kondisi bernilai true - jika
false
maka condition akan menghasilkan true jika semua kondisi bernilai true
# terminateโ
ini opsional, hanya digunakan kalau memanggil fungsi lain dalam script, bisa kamu isi dengan true
atau false
, default false
- jika
true
maka condition tidak akan lanjut ke baris lain setelah memanggil fungsi - jika
false
maka condition akan lanjut ke baris lain setelah memanggil fungsi
# contohโ
bot akan chat benar
kalau variable1 sama dengan Oke
condition [{variable1}=Oke] continue[] terminate[]
chat "benar"
bot akan chat benar
variable1 sama dengan Oke
dan salah
kalau tidak
1| condition [{variable1}=Oke] goto[line=2] goto[line=4]
2| chat "benar"
3| terminate
4| chat "salah"
5| terminate
bot akan chat benar
kalau variable1 sama dengan Oke
dan variable2
sama dengan variable1
condition [{variable1}=Oke,{variable2}={variable1}] continue[] terminate[]
chat "benar"
# contoh multi functionโ
anggap di 1 script ada 2 kode yang bernama satu
dan dua
setelah itu anggap variable1
bernilai 1
command di kode satu
condition [{variable1}=0] continue[] dua[] false true
chat "benar"
command di kode dua
chat "salah"
jadi karena {variable1}
adalah 1 dan kita butuh 0 maka hasilnya false. Jadi command di kode dua
akan dipanggil (chat "salah"
) dan karena argument terminate kita berikan true maka
eksekusi akan selesai saat menjalankan kode di dua
# jobโ
command manipulasi job, untuk menjalankan job lewat scripting cek jobs scripting usage
# syntaxโ
job (cancel|clear|wait|clear global) <string: name> [string: reason]
# contohโ
akan cancel job gaut
job cancel "gaut"
akan cancel job gaut dengan alasan karena buyer ga bayar
yang akan tertera di log
job cancel "gaut" "karena buyer ga bayar"
akan cancel semua job di bot yang menjalankan command ini
job clear
akan cancel semua job di seluruh bot dalam 1 server
job clear global
# job waitโ
akan pause eksekusi script sampai jobnya selesai, command ini bisa wait job yang sudah di jalankan sebelumnya atau yang baru saja dijalankan
job wait hanya akan pause di eksekusi script yang sedang berjalan, jadi kalau kamu reload script maka eksekusinya akan ke cancel.
# syntaxโ
job wait <string: name>
# return valueโ
saat job selesai dan lanjut eksekusi nya, kamu bisa gunakan variable {var.returnValue}
yang berupa job untuk akses data job yang selesai di jalankan
# contohโ
akan menunggu job multitools sampai selesai, contoh saja ya karena opsi multitools bukan begitu
job schedule [name="multitools"]
job wait "multitools"
chat "multitools selesai!"
ambil alasan ke cancel job
job schedule [name="multitools"]
job wait "multitools"
print "job multitools selesai karena {var.returnValue.cancelReason}"
# callโ
akan menjalankan setiap script yang nge hook OnCall
# syntaxโ
call <variable: list> (this)
# variableโ
berupa list dengan format nama="value"
, dan variablenya bisa di akses di dalam OnCall dengan {event.data.nama}
(hasilnya value
)
jika kamu ingin menjalankan OnCall tanpa variable, silahkan kosongkan (call []
)
# contohโ
di kode dengan hook OnChat
call [message="{event.message}"] -> call dengan variable custom bernama 'message'
dan ada kode dengan hook OnCall
chat "{event.data.message}" -> akan ke eksekusi dan bot akan chat pesan dari `OnChat` tadi
akan ada keadaan dimana kamu hanya ingin menjalankan OnCall
di bot yang menggunakan command nya, ini bisa dilakukan dengan menambahkan this
di akhir command
call [] this
# collectโ
suruh bot untuk collect item sekali ini bukan menjalankan job auto collect
# syntaxโ
collect <range: number> <collect: string>
# contohโ
akan collect Grass dan Grass Seed dalam range 3 block
collect "3" "Grass,Grass Seed"
akan collect semua item dalam range 3 block
collect "3" ""
# disconnectโ
disconnect bot yang menjalankan script atau bot lain
# syntaxโ
disconnct spesifik bot
disconnect [bot: string]
disconnect semua bot di server
disconnect all
# contohโ
disconnect -> disconnect bot yang menjalankan script
disconnect "RudeusKami1" -> disconnect bot RudeusKami1
disconnect all -> disconnect semua bot di server
# reconnectโ
reconnect bot yang menjalankan script atau bot lain
# syntaxโ
reconnect spesifik bot
reconnect [bot: string]
reconnect semua bot di server
reconnect all
# contohโ
reconnect -> reconnect bot yang menjalankan script
reconnect "RudeusKami1" -> reconnect bot RudeusKami1
reconnect all -> reconnect semua bot di server
# enterโ
suruh bot untuk enter door atau password door
# syntaxโ
enter [door: entity] [password]
# contohโ
enter -> enter door tempat bot saat ini
enter @t[range=0] "password" -> enter door dan berikan password di tempat bot saat ini (hanya bekerja kalau memang Password Door)
# inventoryโ
jalankan command inventory untuk drop / trash sesuatu
# syntaxโ
inventory (drop|trash|wear|unwear) <item: string> <jumlah: number> [drop dikiri: boolean]
# contohโ
inventory drop "Grass" 0 -> akan drop semua Grass di kanan
inventory drop "Grass" 0 true -> akan drop semua Grass di kiri
inventory trash "Grass" 0 -> akan trash semua Grass
inventory drop "Grass" 100 -> akan trash 100 Grass
inventory wear "Pickaxe" -> akan pakai Pickaxe jika belum dipakai
inventory unwear "Pickaxe" -> akan lepas Pickaxe jika sedang dipakai
# moveโ
suruh bot untuk gerak ke lokasi tertentu, hanya akan gerak kalau lokasi terjangkau oleh bot
# syntaxโ
move (up|down|left|right|to) [location (X:Y) : string]
# contohโ
move up -> gerak ke atas
move down -> gerak ke bawah
move left -> gerak ke kiri
move right -> gerak ke kanan
move to "2:2" -> akan gerak ke lokasi X: 2, Y: 2
# tileโ
lakukan sesuatu dengan tile yang ditujukan
# basic syntaxโ
syntax basic yang memerlukan nama item untuk bekerja
tile <tile: entity> (use|punch|place|break|consume) [item]
contoh penggunaan
# enter door
tile @t[location="10:10"] use
# pukul tile
tile @t[location="10:10"] punch
# break tile (akan memastikan semua hal sudah di break di lokasi nya)
tile @t[location="10:10"] break
# place dirt (akan memastikan Dirt sudah di place apa belum di lokasi nya)
tile @t[location="10:10"] place "Dirt"
# consume item (sekali, tidak di cek kalau sudah di consume apa tidak)
tile @t[index="12"] consume "Small Seed Pack"
# splice seed (prioritas di item pertama, jadi akan place item ke 2 kalau item pertama sudah ada)
tile @t[index="12"] splice "Dirt Seed" "Cave Background Seed"
# syntax editโ
tile <tile: entity> edit [attribute]
edit ini tergantung dari apa yang sudah aku implementasikan, jadi setiap contohnya akan aku list disini. Untuk attribute maksudnya opsi yang bisa kamu pilih
setiap contoh dibawah akan make index=12 artinya ambil tile di bot saat ini
# untuk edit text di tile yang bertipe Sign atau Pathmarker
tile @t[index=12] edit [text="Hello World"]
# untuk edit tile yang bertipe Door
tile @t[index=12] edit [label="a password",destination="oke",id="123"]
# untuk edit tile yang bertipe Password Door
tile @t[index=12] edit [label="a password",destination="oke",password="123"]
# untuk edit lock agar bisa di ignore empty air atau set ke public (keduanya boolean)
tile @t[index=12] edit [public="true",ignore="true"]
# syntax toggleโ
untuk mati hidupkan tile (yang bisa dipukul, contoh; Signal Jammer)
tile <tile: entity> toggle (on|off)
contoh penggunaan
# hidupkan signal jammer
tile @t[foreground="Signal Jammer"] toggle on
# matikan signal jammer
tile @t[foreground="Signal Jammer"] toggle off
# syntax accessโ
untuk berikan / hapus akses player di lock
tile <tile: entity> access (add|remove) <player>
contoh penggunaan
# akan berikan akses ke player dengan nama myAdmin
tile @t[foreground="Small Lock"] access add "myAdmin"
# akan hapus akses dari player dengan nama myAdmin
tile @t[foreground="Small Lock"] access remove "myAdmin"
# vendingโ
gunakan vending lewat bot, hanya akan menggunakan vending kalau ada di tempat bot berada
# syntaxโ
vending (addstock|pullstock|withdraw)
# contohโ
vending addstock -> add stock ke vending (kalau ada di inventory)
vending pullstock -> ambil stock vending (kalau ada)
vending withdraw -> ambil hasil vending (kalau ada)
# waitโ
tambahkan delay sebelum ke baris selanjutnya
# syntaxโ
wait <detik: number>
# contohโ
chat akan dijalankan setelah 5 detik berlalu
wait 5
chat "sudah 5 detik"
# printโ
print atau kirim pesan ke bot log kamu di website
WARNING: Print berarti aku bisa liat juga lewat admin console. Kalau kamu ketahuan memberikan kata - kata tidak layak, akan ada sanksi.
# syntaxโ
print <pesan>
# contohโ
print "halo"
# pathfindingโ
pathfinding fitur berguna untuk membuat bot jalan ke lokasi yang kamu inginkan. Perlu diingat, saat pathfinding bot tidak akan meng-eksekusi baris selanjutnya sebelum pathfinding selesai
# syntaxโ
pathfinding (<target: entity>) [fast: boolean]
pathfinding back [before: boolean] [fast: boolean]
# fastโ
jika true maka bot akan jalan dengan cepat, aman ya. Sudah aku test 100 kali dan hasilnya tidak ada auto ban
# contohโ
jalan ke tile di lokasi X: 2, Y: 2
pathfinding @t[location="2:2"]
jalan ke player RudeusKami1
pathfinding @p[range=100,name="RudeusKami1"]
jalan ke drop Grass terdekat
pathfinding @d[range=100,name="Grass"]
jalan ke door dengan nama Door aku
pathfinding @t[range=100,foreground="Door",name="Door aku"]
jalan ke sign dengan nama Sign aku
pathfinding @t[range=100,foreground="Sign",name="Sign aku"]
ke sign dengan nama Sign aku
mode cepat
pathfinding @t[range=100,foreground="Sign",name="Sign aku"] true
jalan kembali lokasi sebelumnya
pathfinding back
jalan kembali ke lokasi sebelumnya dengam mode cepat
pathfinding back true
# notificationโ
akan mengirim notifikasi ke webhook discord yang kamu setel di scripting.
banyak yang bingung sama command ini, kenyataannya simple sekali dipake. Cuman kurang dicoba sendiri aja, jadi kalau bingung bisa ganti - ganti command example dibawah untuk mencari apa yang kamu inginkan
# syntaxโ
notification embed <title: string> <description: string> <fields: list> <footer: list> <color: string> [custom webhook url: string]
notification raw <message: string> [custom webhook url: string]
# membuat webhookโ
sebelum menggunakan command ini, kamu harus punya webhook dulu. Silahkan ke discord dan pilih salah satu channel untuk dikirimi webhook
![]() |
---|
membuat webhook lewat discord |
setelah itu copas webhooknya dan taruh di website. Contoh:
# fieldโ
dipakau kalau kirim embed, formatnya
title=description
ini opsional jadi kalau gamau isi field, ketik[]
saja. Untuk field juga bisa banyak, contoh[field1=desc,field2=desc,field3=desc]
# footerโ
dipakai kalau kirim embed, opsi yang tersedia
timestamp=true
untuk menampilkan waktu di embedtimestamp=false
jangan tampilkan waktu di embedtext="footer text"
untuk text di footertext=""
footer tanpa texticon="url"
footer dengan icon, pastikan url bersifat direct linkicon=""
footer tanpa icon semua opsinya opsional jadi kalau[]
aja boleh. Ini akan buat embed yang tanpa footer
# colorโ
color yang dipakai itu hex code, silahkan cari di google "Color Picker" dan pastikan kode yang kamu copas diawali dengan #
(contoh #44c3e3
)
# rawโ
tipe raw ada kalau mau kirim pesan tanpa embed, misalnya notifikasi text biasa saja. Tipe raw juga penting dipakai kalau mau tag role, soalnya kalau di embed gabisa ngetag.
role id bisa di dapatkan lewat discord, berikut adalah format agar bisa ke tag
<@&roleid>
jadi kalau role idnya 774878654018224146
maka
<@&774878654018224146>
tipe raw juga bisa dipakai untuk text formatting dan lain - lain, silahkan search sendiri di google ya!
# custom webhook urlโ
kamu bisa memberikan url webhook custom kalau misalnya mau kirim ke webhook lain yang bukan dari input saat edit script, contoh url:
"706525963441274940/ghXSI5PM6tbnNRlvg2u-ROzySIUAz1v_wcKQHnu"
# contohโ
notification embed "ini title" "ini deskripsi" ["ini field 1"="ini deskripsi field1"] [timestamp="true",text="ini footer",icon="https://i.imgur.com/cSoTyie.png"] "#44c3e3"
notification raw "ini chat biasa yang support tag! <@&774878654018224146>"
# queueโ
discord sebenarnya membatasi berapa pesan yang bisa di kirim dalam 1 webhook, jadi ada kasus dimana tidak semua pesan terkirim kalau notifikasinya terlalu banyak barengan. Fitur queue ini, akan menyelesaikan masalah tersebut.
pesan akan di queue
alias di 'antri' agar tidak spam servernya discord, alhasil pesan akan selalu terkirim. Namun tidak secara instan, karena hanya akan
kirim 1 pesan per 2 detik
notification queue raw "akan dikirim dalam 2 detik"
jadi hanya perlu tambah notification queue
dari notification
untuk membuat pesan dikirim secara berurutan
# editingโ
pesan yang sudah dikirim bisa kamu edit agar tidak spam notifikasi, misalnya kalau mau buat status per server. Sebelum bisa edit, webhook nya diharuskan sudah mengirim satu pesan terlebih dahulu & ID pesan nya bisa kamu copas dengan klik kanan dan klik Copy ID, setelah itu gunakan command
notification edit "id" [command]
sisa command nya sama dengan syntax diatas, contoh:
# pesan nya jadi raw
notification edit "1" raw "menjadi raw"
# pesan nya jadi embed
notification edit "1" embed "ini title" "ini deskripsi" ["ini field 1"="ini deskripsi field1"] [timestamp="true",text="ini footer",icon="https://i.imgur.com/cSoTyie.png"] "#44c3e3"
# hasil notificationโ
hasil dari command notification diatas
# executeโ
jalankan command sesuai dengan nama bot / kondisi. Ini bisa dibilang sama dengan condition
tapi lebih mudah digunakan
# syntaxโ
execute (as|if-false|if-true|any-true|any-false|once) [condition] <command: literal>
# conditionโ
condition disini sama kayak condition ya tapi hanya digunakan kalau kamu menggunakan selain as
, contoh nya
execute if-true [{bot.world.name}="EXIT"] go "HELLO"
command ini hanya akan menjalankan go HELLO
kalau bot berada di EXIT
selain if-true ada juga
- if-false, kalau semua kondisinya salah
- any-true, kalau salah satu kondisinya benar
- any-false, kalau salah satu kondisinya salah
# asโ
command hanya akan di jalankan kalau bot yang sedang menjalankan script bernama sama dengan yang diberikan, contohnya
hanya RudeusKami1
yang akan kirim chat Hello World
execute as "RudeusKami1" chat "Hello World"
untuk double bot tinggal berikan koma: di script dibawah hanya RudeusKami1 dan RudeusKami2 yang akan kirim chat Hello World
execute as "RudeusKami1,RudeusKami2" chat "Hello World"
selain dengan koma kamu juga bisa berikan variable bertipe list
var "bots" store list ["bot1","bot2"]
execute as "{var.bots}" print "dari bot 1 dan 2"
# onceโ
hanya akan eksekusi command sekali dalam 1 kode tersebut, jadi kalau eksekusi selesai commandnya akan tetep jalan selanjutnya. Ini cocok kalau kamu ada command goto
dan pengen satu command jalan sekali saja, contoh:
execute once print "sekali"
goto 1
# terminateโ
batalkan eksekusi script saat ini
# syntaxโ
terminate [all|other]
# contohโ
akan langsung batalkan eksekusi script
terminate
akan batalkan kalau yang menjalankan script bot RudeusKami1
execute as "RudeusKami1" terminate
akan batalkan semua eksekusi script di 1 server
terminate all
akan batalkan semua eksekusi script di 1 server kecuali script yang menjalankan command ini
terminate other
# buyโ
beli item di store lewat script, akan pause eksekusi script sampai pembelian selesai
# syntaxโ
buy <item_id: string> [jumlah: integer]
# contohโ
akan beli 1 small seed pack
buy "5seed"
akan beli 5 small seed pack
buy "5seed" 5
akan beli backpack upgrade sesuai harga di store
buy "upgrade_backpack"
# varโ
command untuk manipulasi variable, di commmand ini kamu bisa
- menyimpan variable custom
- melakukan operasi matematika dasar
- mengambil informasi entity
setiap command var
di awali dengan nama variable yang ingin di manipulasi, nama variable ini nantinya bisa di akses dengan var<titik>nama
lewat script, contoh
{var.variableCustomAku}
# syntax untuk menyimpan variableโ
var <string: nama> store (text|list|object|entity) <value>
# syntax untuk menghapus variableโ
var <string: nama> delete
# syntax untuk operasi matematikaโ
var <string: nama> (add|sub|mul|div|mod|min|max) <value>
# syntax untuk format angkaโ
var <string: nama> format
# syntax untuk manipulasi textโ
var <string: nama> append <value>
# syntax untuk replace textโ
var <string: nama> replace (text|number) <string: value1> [string: value2]
# storeโ
untuk opsi store ini diperlukan untuk menyimpan variable dalam eksekusi script saat ini atau ke dalam bot
- store text, akan store variable nya berupa text. Karena scripting tidak ada tipe data seperti bahasa pemprograman, jadi semuanya berbasis text
- store list, akan store variable nya berupa list / array
- store object, akan store variable nya berupa object. Agar tidak ke convert sebagai text, variable yang termasuk object bisa cek di script variable
- store entity, akan store entity hasil pencarian lewat entity selector
jika kamu store entity, variable hasilnya akan tergantung dengan entity apa yang kamu ambil
karena entity selector, jadi bisa saja entity nya tidak ketemu. Jadi kalau tidak ketemu hasil dari variable nya akan berupa null
setiap variable yang di simpan, kalau namanya sudah ada yang menggunakan maka variable yang dulu akan dihapus dan ditambah ulang alias diganti
# mathโ
setiap operasi matematika yang dilakukan, variable nya harus berupa angka begitu juga dengan variable kedua yang diberikan
- add, operasi penambahan (addition)
- akan menambahkan data ke list kalau target variable berupa list
- sub, operasi pengurangan (subtract)
- akan menghapus data dari list kalau target variable berupa list
- mul, operasi perkalian (multiply)
- div, operasi pembagian (divide)
- mod, operasi untuk mengambil jumlah hasil bagi (modulus)
- min, operasi untuk ambil yang paling terkecil dari 2 variable diberikan
- max, operasi untuk ambil yang paling besar dari 2 variable diberikan
setiap operasi matematika ini akan menyimpan hasilnya ke variable yang kamu berikan di awal command.
contoh penggunaan
var "test" store text 1
var "test" add 1
print "{var.test}" # 1 + 1 = 2
contoh penggunaan ke list, perlu diingat hanya bisa kalau list berisi data bertipe text / angka
var "test" store list ["Satu","Dua","Tiga"]
var "test" add "Empat"
print "{var.test.values}" # Satu,Dua,Tiga,Empat
var "test" sub "Empat"
print "{var.test.values}" # Satu,Dua,Tiga
# uppercaseโ
untuk buat semua text dalam variable kapital
var "test" store text "wow aku ga kapital"
var "test" uppercase
print "{var.test}" # WOW AKU GA KAPITAL
# formatโ
format akan merubah variablenya nya dari angka menjadi string. Oleh karena itu, setelah command ini, penggunaan operasi matematika tidak bisa dilakukan lagi
contoh sederhana:
var "angka" store text 1000
var "angka" format
print "{var.angka}" # 1,000
# appendโ
command untuk manipulasi text dalam script, append
akan menambahkan angka / huruf baru ke akhiran text
contoh sederhana:
var "text" store text "Hello"
var "text" append " World"
print "{var.text}" # Hello World
# replaceโ
command untuk ganti text / angka menjadi text lain, ada 2 tipe untuk command ini
- numberโ
akan ganti semua angka dalam text menjadi yang kamu inginkan
var "test" store text "SAYA123"
var "test" replace number ""
print "{var.test}" # SAYA
kalau kamu berikan ""
maka artinya hapus
- textโ
akan ganti semua text yang kamu inginkan ke input yang kamu berikan
var "test" store text "Hello World"
var "test" replace text "Hello" "World"
print "{var.test}" # World World
jika kamu tidak memberikan input untuk target ganti textnya, maka setiap text di variable akan digantikan
var "test" store text "Hello123"
var "test" replace text ""
print "{var.test}" # 123
# splitโ
memisahkan text di variable dengan pembatas yang diberikan, setelahnya variable akan menjadi array
var "test" store text "Satu,Dua,Tiga"
var "test" split "," 0
print "{var.test.0}" # Satu
print "{var.test.1}" # Dua
print "{var.test.2}" # Tiga
0 adalah jumlah maksimal pemisahkan, dan karena 0 maka tidak ada batas. Tapi kalau kamu setel 1
var "test" store text "Satu,Dua,Tiga"
var "test" split "," 1
print "{var.test.0}" # Satu
print "{var.test.2}" # Dua,Tiga
# storing local variableโ
variable yang bukan di store ke bot hanya akan ada saat script ini dijalankan
print "{var.test}"
var "test" store text "ini akan hilang"
print "{var.test}"
print pertama akan menghasilkan null
dan print ke dua akan menghasilkan ini akan hilang
, dan jika di jalankan ulang hasil akan tetap sama
# storing bot variableโ
variable ini akan di masukkan ke dalam memory bot yang sedang menjalankan scriptnya, dan hanya akan hilang kalau server restart atau dihapus. Setiap variable yang ingin disimpan di bot harus diawali dengan bot.
print "{var.bot.test}"
var "bot.test" store text "ini tidak akan hilang"
print "{var.bot.test}"
print pertama akan menghasilkan null
dan print ke dua akan menghasilkan ini tidak akan hilang
, dan jika di jalankan ulang kedua print akan menghasilkan ini tidak akan hilang
variable yang di simpan di bot bisa di akses lewat script lain
# contoh storing entityโ
kedua contoh mencari entity berupa Tile jadi variablenya Tile
menyimpan entity dan akses lokasinya, disini mencari tile Door
var "test" store entity @t[foreground="Door"]
print "lokasi {var.test.location.x}"
menyimpan entity, akses lokasinya, dan tambah satu di x and y nya
var "test" store entity @t[foreground="White Door"]
var "x" store text "{var.test.location.x}"
var "y" store text "{var.test.location.y}"
var "x" add 1
var "y" add 1
print "{var.x}:{var.y}"
jika entity nya di lokasi 1:1 maka hasil printnya akan jadi 2:2, memang commandnya panjang tapi ya karena bukan bahasa pemprograman mau gamau harus gini
# contoh storing objectโ
menyimpan object agar tidak menjadi string, jadi masih bisa di akses dengan .
Untuk list objectnya bisa lihat script variable dan apa saja yang return object
job schedule [name=collect]
var "job" store object "{bot.job.collect}"
print "{var.job.name}" # collect
diatas, script akan menjalankan collect dan store job nya yang berupa object job ke variable job
setelah itu bisa di akses sesuai tipe object nya
# contoh storing listโ
menyimpan list, variablenya nanti akan berupa list / array untuk setiap list ini akan pasti jadi String, jadi gabisa simpen object
var "list" store list ["SATU","DUA","TIGA"]
print "{var.list.0}" # SATU
print "{var.list.1}" # DUA
print "{var.list.2}" # TIGA
# var clearโ
command untuk menghapus semua variable, cocok digukanakan di setiap OnLoad
agar script kamu "mulai ulang"
# syntaxโ
var clear <bot: boolean>
# contohโ
akan menghapus semua local variable
var clear false
akan menghapus semua variable di bot
var clear true
# gotoโ
command super useful untuk pindahkan eksekusi script ke baris yang berbeda, jadi kamu bisa skip atau balik eksekusi scriptnya. Untuk setiap baris sudah tertera di editor script ya, di angka sebelah command itu
# syntaxโ
loncat ke baris tersebut
goto <integer: baris>
loncat ke loncatan sebelumnya
goto back
loncat ke akhir baris
goto end
# contoh 1โ
di script ini ada 3 baris
wait 3
chat "spam!"
goto 1
jadi
wait 3
adalah baris ke 1chat "spam!"
adalah baris ke 2goto 1
adalah baris ke 3
karena goto 1
eksekusi script akan jalan lagi ke baris satu yaitu command wait 3
dan begitu seterusnya
# contoh 2โ
selain balik ke sebelumnya, kamu juga bisa loncat ke selanjutnya dengan adanya command execute
kamu bisa membuat kondisi dimana script akan menjalankan baris sesuai dengan logika
execute as "bot1" goto 3
execute as "bot2" goto 5
chat "ini bot1"
terminate
chat "ini bot 2"
terminate
agak bingung? silahkan di copas ke editor supaya kelihatan barisnya. Jadi 2 command diatas akan kirim eksekusi script sesuai dengan nama botnya, setelah itu karena ada terminate
maka eksekusi akan ke cancel dan 'tertutup'
# foreachโ
command ini memungkinkan kamu untuk kalkulasi data dalam suatu list, command tidak ditujukan untuk digunakan dalam 'gameplay' karena eksekusinya akan instant. Jadi tidak disarankan digabung dengan pathfinding
atau apapun yang
berhubungan dengan interaksi bot ke world
# syntaxโ
foreach <string: variable> then
... commands
foreach end
syntax diatas harus diikuti dengan benar, kalau tidak foreach ga akan work. Jadi ... commands
itu bisa kamu isi dengan command lain yang ingin di jalankan di setiap loop
# variableโ
setiap looping, ada variable khusus yang berubah - rubah yang dapat kamu akses
{var.value}
(Object) value dari loop saat ini, hasil object nya sesuai dengan apa yang ada di array{var.i}
(Integer) index dari loop saat ini, dimulai dari 0 kedua command diatas, kalau sudah lewatforeach end
maka tidak bisa di akses lagi
# contohโ
print semua item di inventory
foreach "{bot.inventory.items}" then
print "{var.value.name}"
foreach end
jumlah total semua gems di bot
var "total" store text 0
foreach "{bots.all}" then
var total add "{bots.{var.value}.inventory.gems}"
foreach end
var "total" format
print "total gems semua bot: {var.total}"
loop sebanyak 5 kali
var "list" store list [1,2,3,4,5]
foreach "{var.list}" then
print "loop"
foreach end
# loopโ
berfungsi sama seperti foreach tapi bisa dipakai untuk menjalankan command 'gameplay', jadi command seperti pathfinding
bisa digunakan disini. Hanya saja tidak cocok
untuk kalkulasi karena eksekusinya akan dilambatkan agar bisa digabung dengan command 'gameplay'
# syntaxโ
loop <list>
... commands
loop end
syntax diatas harus diikuti dengan benar, kalau tidak foreach ga akan work. Jadi ... commands
itu bisa kamu isi dengan command lain yang ingin di jalankan di setiap loop
# variableโ
setiap looping, ada variable khusus yang berubah - rubah yang dapat kamu akses
{var.loop.value}
(Object) value dari loop saat ini, hasil object nya sesuai dengan apa yang ada di list{var.loop.index}
(Integer) index dari loop saat ini, dimulai dari 0 kedua variable diatas, kalau sudah lewatloop end
maka tidak akan bisa di akses alias hasilnyanull
# contohโ
bot akan ke WORLD1 dan setelah itu ke WORLD2
loop "WORLD1,WORLD2"
go "{var.loop.value}" wait
print "world entered"
loop end
bot akan ke WORLD1 dan setelah itu ke WORLD2, kali ini dengan menggunakan variable yang sudah ada
var "bot.world" store list ["WORLD1","WORLD2"]
loop "{var.bot.world}"
go "{var.loop.value}" wait
print "world entered"
loop end
# helper commandโ
dibawah adalah command pembantu yang khusus digunakan di dalam loop
loop continueโ
command ini akan membuat ekskekusi loop lanjut ke item selanjutnya di list atau selesai kalau sudah yang terakhir, jadi di script diatas hanya angka 1 yang tidak akan di print
loop "1,2,3,4"
execute if-true [{var.loop.value}=1] loop continue
print "{var.loop.value}"
loop end
loop breakโ
command ini akan membuat eksekusi loop batal dan lanjut setelah loop end
jadi angka 1 dan 2 saja yang akan di print
loop "1,2,3,4"
execute if-true [{var.loop.value}=3] loop break
print "{var.loop.value}"
loop end
# settingโ
untuk ganti setting bot
setting ini akan hilang kalau server Hydra restart. Jadi disarankan untuk buat script baru berisi OnLoad
saja dan set ke semua bot
# syntaxโ
setting <key: string> <value: string>
# settingโ
setiap setting value nya harus sesuai dengan apa yang dibutuhkan, berikut adalah list setting beserta informasi lanjut
# auto_reconnect (boolean, default: true)โ
haruskan auto reconnect bot saat disconnect?
ini bisa kamu disable kalau misalnya takut bisa kena errcon. Tapi harusnya aman karena sudah ada delay
# reconnect_delay (int, default: 5)โ
delay dalam detik untuk bot reconnect saat ter disconnect oleh Growtopia
5 detik sudah default, aku tidak sarankan untuk dirubah
# error_connecting_threshold (int, default: 0)โ
jumlah berapa kali bot gagal connect ke server Growtopia untuk di mark sebagai error connecting (0 artinya disabled)
aku sarankan biarin 0 supaya bot terus coba reconnect, tapi kalau kamu pengen ngeliat status ERROR_CONNECTING di web, silahkan setel ke 3
# error_connecting_delay (int, default: 1800)โ
delay dalam detik untuk bot reconnect kembali saat errcon
rata - rata errcon itu 1/2 jam, ini akan reconnect kembali dalam 30 menit
# delay_after_join (int, default: 10)โ
delay dalam detik untuk bot jalan kembali saat selesai join world
berlaku untuk semua joining! aku sarankan biarin di 10 detik
# script_command_prefix (string, default !h
)โ
prefix / awalan command saat penggunaan OnChat
ini bisa kamu ganti sesuai selera, note default nya itu ada spasi kosong supaya !h command
dan bukan !hcommand
# growtopia_log (boolean, default: true)โ
apakah bot perlu kirim log Growtopia ke website?
kalau false notifikasi sub server / system lag tidak akan dikirim, jadi perlu buat script manual kalau ingin notifikasinya
# pathfinder_speed (integer, default: 3)โ
kecepatan move per block
default 3 ini sudah dalam batas aman tapi juga lebih cepat dari jalan biasa
# quit_when_disconnected (boolean, default: false)โ
perlukah bot ke world EXIT kalau di disconnect?
misalnya kalau kamu pengen bot ga langsung join world saat reconnect, silahkan gunakan ini
# contohโ
# ganti prefix dari !h command jadi .command
setting script_command_prefix "."
# variableโ
setting dari list diatas bisa diakses juga lewat variable bot.setting
# dialogโ
command untuk interaksi dengan dialog atau UI nya Growtopia, cara penggunaan command ini tidak bisa aku dokumentasikan karena perlu tools external untuk tau ID dari setiap UI nya. Karena tools nya tidak tersedia jadi silahkan buka ticket kalau perlu bot interaksi ke dialog, akan aku berikan script nya secepat mungkin.
# contohโ
silahkan cek dialog example
# skinโ
rubah warna skin bot, jika ada warna lain silahkan open ticket agar bisa aku cek. Untuk perubahan skin ini tidak seperti Growtopia jadi kamu perlu jalankan commandnya terus, misalnya lewat OnLoad agar perubahan nya tetap ke apply.
# syntaxโ
skin <id skin: integer>
# id skinโ
![]() |
---|
id setiap color |
# contohโ
# coklat
skin 0
# purple (kalau supporter)
skin 12
# world databaseโ
akses database world local di server kamu, perlu diingat kalau servernya expired data world kamu akan hilang! jadi aku sarankan command ini digunakan di server monthly
# data management syntaxโ
world db (save|delete) [world: string]
# scan world syntaxโ
world db (scan-ready|is-ready) <minimum tree: integer> [world: string / list]
# statistic syntaxโ
world db total (ready-tree|unready-tree|drop|block) <item: string> <worlds: list>
contohโ
save world saat ini ke local database
world db save
delete world ANAKFFMAJU dari local database
world db delete "ANAKFFMAJU"
cek apakah world ANAKFFMAJU ada 1200 tree yang ready
world db is-ready 1200 "ANAKFFMAJU"
execute if-true [{var.returnValue}="true"] print "ready :)"
execute if-true [{var.returnValue}="false"] print "gak ready :("
cek jumlah world yang ada 1200 ready dalam list, hasil dari returnValue
nya berupa array of world data
world db scan-ready 1200 ["WORLD1","WORLD2","WORLD3"]
print "{var.returnValue.length} ready!"
cek total semua dropped Pepper Tree Seed
world db total drop "Pepper Tree Seed" ["WORLD1","WORLD2","WORLD3"]
var "result" store text "{var.returnValue}"
var "result" format
print "{var.result}" # di format dari 1000 misalnya jadi 1,000
# farmingโ
command ini digunakan untuk meng-kontrol fitur farming via website
# syntaxโ
farming (pause|resume|update-world|replace-proxy)
# pauseโ
untuk pause job farming v web lewat script, misalnya kalau bot sudah level 40
# false artinya tidak disconnect bot
execute if-true [{bot.level}>=40] farming pause false
# tanpa false artinya disconnect bot
execute if-true [{bot.level}>=40] farming pause
# resumeโ
farming yang di pause lewat command diatas atau website, dapat di resume dengan command ini
farming resume
# update-worldโ
untuk sinkronisasi data world lewat script, tanpa perlu menjalankan farming v web. dengan syarat kalau jobnya ada world & sudah pernah kamu start & saat ini sedang paused
farming update-world
contoh update world dengan list
setting "delay_after_join" 3
var "worlds" store list ["WORLD1","WORLD2","WORLD3","DST.."]
loop "{var.worlds}"
go "{var.loop.value}" await
farming update-world
loop end
# replace proxyโ
dapat digunakan jika ada fitur proxy backup di enable, karena akan cari proxy yang kosong maka ada kemungkinan dapat IP sebelumnya. jadi ada opsi untuk setel agar proxynya di mark sebagai error connecting, alias tidak dapat digunakan untuk x jam sesuai dengan yang kamu setel di website
farming replace-proxy (true/false)
contoh replace proxy dan mark sebagai error connecting kalau bot temporary ban, disini menggunakan OnTick
execute if-true [{bot.gameStatus}="TEMPORARY_BAN"] bot replace-proxy true
execute if-true [{var.returnValue}="true"] reconnect
command akan menghasilkan true
di returnValue
nya jika berhasil replace