Skip to main content

๐Ÿ‘ฎ 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 selanjutnya
  • terminate[] untuk stop eksekusi command
  • goto[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

danger

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.

info

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

img.png
membuat webhook lewat discord

setelah itu copas webhooknya dan taruh di website. Contoh:

img.png

# 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]

dipakai kalau kirim embed, opsi yang tersedia

  • timestamp=true untuk menampilkan waktu di embed
  • timestamp=false jangan tampilkan waktu di embed
  • text="footer text" untuk text di footer
  • text="" footer tanpa text
  • icon="url" footer dengan icon, pastikan url bersifat direct link
  • icon="" 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

img.png


# 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

  • @t akan menghasilkan tile
  • @p akan menghasilkan player
  • @d akan menghasilkan drop

karena entity selector, jadi bisa saja entity nya tidak ketemu. Jadi kalau tidak ketemu hasil dari variable nya akan berupa null

danger

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

info

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 1
  • chat "spam!" adalah baris ke 2
  • goto 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 lewat foreach 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 lewat loop end maka tidak akan bisa di akses alias hasilnya null

# 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

info

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โ€‹

img.png
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