Skip to main content

๐Ÿšฉ Script Event Hook

event hook ada untuk menjalankan script kamu, dengan event hook yang beragam kamu bisa gunakan untuk logic saat menjalankan script

Agar lebih mengerti, disarankan untuk coba - coba sendiri ya!

# noneโ€‹

tidak ada event hook, alahasil script tidak akan dijalankan secara otomatis. Kecuali di panggil nama kodenya dengan command function penjelasan ada di bagian command


# OnLoadโ€‹

dipanggil saat script berhasil di load (alias setiap tekan tombol reload atau server selesai restart)

danger

setiap command di dalam OnLoad ini pasti akan di execute lebih dulu daripada hook yang lain, kecuali kalau ada OnTick karena itu berdasarkan waktu maka OnTick tidak peduli kalau sedang menjalankan OnLoad

# variable khususโ€‹

  • isInit : Boolean -> akan true kalau OnLoad nya ini di panggil setelah server hydra restart

# contoh kodeโ€‹

di log kamu akan muncul pesan kalau script di load

print "{script.name} loaded"

on load juga cocok untuk reset variable di script, command dibawah akan reset variable di bot

var clear true

akan menjalankan print kalau OnLoad dipanggil saat setelah server hydra restart

execute if-true [{event.isInit}="true"] print "server restart"

# previewโ€‹

tidak perlu preview


# OnChatโ€‹

dipanggil saat ada player yang chat di dalam world dan chat tersebut diawali dengan !h

# variable khususโ€‹

  • sender : Object of player -> player yang mengirim chat
  • message : String -> pesan chat
  • args : Array of String -> pesan chat yang dipisah dengan spasi

# contoh kodeโ€‹

akan sapa user

chat "Halo {sender.name}"

# argumentโ€‹

chat message memiliki sistem argument juga, argument ini parse dengan cara yang lumayan unik (bukan spasi saja). Contohnya:

RudeusKami1: !h arg0 arg1 "arg number 2" arg3

akan kena parse menjadi

  • arg0 -> {sender.args.0}
  • arg1 -> {sender.args.1}
  • arg number 2 -> {sender.args.2}
  • arg3 -> {sender.args.3}

nah jadi setiap arg itu ditentukan dengan spasinya, kecuali kalau di kurung dengan "" dan juga ingat ya, karena array maka dimulai dari 0

# previewโ€‹

img.png
bot menjalankan chat

# OnTickโ€‹

dipanggil setiap detik. Kamu dapat setel detiknya dengan merubah nama kode saat membuat menjadi x_seconds, contoh 5_seconds kode akan di eksekusi setiap 5 detik

# variableโ€‹

  • tidak ada

# contoh kodeโ€‹

chat "5 detik berlalu"

# previewโ€‹

img.png
bot menjalankan chat

# OnPlayerJoinWorldโ€‹

dipanggil kalau ada player yang join world

# variable khususโ€‹

  • player : Object of player -> player yang join world

# contoh kodeโ€‹

chat "Halo {event.player.name}"

# previewโ€‹

img.png
bot chat saat player join world

# OnPlayerExitWorldโ€‹

dipanggil kalau ada player yang keluar dari world

# variable khususโ€‹

  • player : Object of player -> player yang keluar dari world

# contoh kodeโ€‹

chat "/msg {event.player.name} good bye"

# previewโ€‹

img.png
bot mengirim message ke player yang keluar world

# OnDisconnectโ€‹

dipanggil saat bot ter disconnect oleh user atau server Growtopia

# variable khususโ€‹

  • errorConnecting : Boolean -> untuk cek apakah kena disconnect karena errcon
  • byGrowtopia : Boolean -> untuk cek apakah bot kena disconnect oleh server Growtopia

# contoh kodeโ€‹

notifikasi bot disconnect

execute if-true [{event.byGrowtopia}="true"] notification raw "bot {bot.name} disconnected!"

# previewโ€‹

event hook biasa, tidak perlu preview


# OnInventoryUpdateโ€‹

dipanggil saat ada item yang ditambahkan ke inventory bot atau dikeluarkan

# variable khususโ€‹

  • adding : Boolean -> apakah item nya di tambahkan atau di keluarkan
  • item : Object of item -> item yang ditambahkan ke inventory

# contoh kodeโ€‹

bot akan chat item yang di tambahkan

chat "added {event.adding} {event.item.name} x{event.item.amount}"

# previewโ€‹

img.png
bot chat saat inventory ter update (ada item masuk)

# OnJobUpdateโ€‹

dipanggil saat ada job yang ditambahkan atau selesai untuk

# variable khususโ€‹

  • job : Object of job -> job yang ter update, antara di schedule atau di cancel

# contoh kodeโ€‹

bot akan chat kalau job ter update

chat "job update {event.job.name} cancelled {event.job.cancelled} reason: {event.job.cancelReason}"

# previewโ€‹

img.png
bot chat saat job di update, untuk preview ini job collect yang di cancel

# OnConsoleMessageโ€‹

dipanggil kalau ada pesan dari Growtopia, misalnya broadcast atau hal lain. Semua pesan akan masuk kecuali world chat karena ngespam

# variable khususโ€‹

  • message : String -> pesan console
  • messageType : String -> tipe pesan console nya

# tipe pesan consoleโ€‹

  • tipe SYSTEM tidak ada variable khusus, ini kalau dapat pesan dari sistem Growtopia
  • tipe SYSTEM_LOG tidak ada variable khusus, ini kalu dapat pesan dari sistem Growtopia juga tapi seringan saat login
  • tipe SERVER_NOTIFICATION tidak ada variable khusus, ini kalau dapat pesan event dari Growtopia
  • tipe TALK_BUBBLE tidak ada variable khusus, ini kalau dapat pesan chat dari Growtopia misalnya kalau kena Ghost Shark

# filtered messageโ€‹

untuk mencegah lag, pesan console saat collect item (ex: Collected 1 Dirt Seed) tidak akan di anggap sebagai OnConsoleMessage

# contoh kodeโ€‹

print ke console kalau kena sub server (bisa 2 tipe karena dari Growtopia nya)

execute if-true [{event.messageType}="SYSTEM_LOG",{event.message}~"sub server"] print "[LOG] {event.message}"
execute if-true [{event.messageType}="SYSTEM",{event.message}~"sub server"] print "[SYSTEM] {event.message}"

print ke console kalau kena ghost shark

execute if-true [{event.messageType}="TALK_BUBBLE",{event.message}~"CHOMP"] print "[Ghost Shark] {event.message}"
execute if-true [{event.messageType}="TALK_BUBBLE",{event.message}~"GHOST"] print "[Ghost Shark] {event.message}"
execute if-true [{event.messageType}="TALK_BUBBLE",{event.message}~"GHOOOOST"] print "[Ghost Shark] {event.message}"

# previewโ€‹

img.png
pesan broadcast dikirim ke log bot kamu

# OnCallโ€‹

script yang ini lumayan kompleks dan kalau bukan advanced user, aku engga yakin kamu bakalan butuh event ini. Jadi kalau bukan advanced user bisa di skip.

dipanggil jika ada script yang pakai command call, berbeda dengan command function menggunakan call bisa memanggil fungsi dari script lain yang bisa beda bot juga. Dengan ini, kamu bisa menjalankan kode dari script lain dengan mudah. Contoh penggunaan: mau panggil kode tertentu yang kalau di copas ke setiap script tidak efisien.

# variable khususโ€‹

  • data : Object -> variable yang bisa kamu berikan saat menjalankan OnCall

# contoh kodeโ€‹

anggap kedua kode ini beda script

# script 1โ€‹

di hook OnChat

call [custom="data aku"]

# script 2โ€‹

di hook OnCall

print "Script called with data {event.data.custom}"

# OnBotBannedโ€‹

dipanggil saat ada bot yang kena ban sistem / auto ban

# variable khususโ€‹

  • duration : Integer -> waktu ban dalam hari

# contoh kodeโ€‹

di log kamu akan muncul pesan "{nama bot} banned selama {jumlah hari} hari"

print "{bot.name} banned selama {event.duration} hari"

# OnServerNotificationโ€‹

dipanggil saat ada notifikasi masuk dari server Growtopia, alias notifikasi popup kalau ada event, dll

# variable khususโ€‹

  • message : String -> pesan notifikasi

# contoh kodeโ€‹

di log akan muncul pesan notifikasinya

print "{event.message}"

jika ingin notifikasi khusus, bisa pake operator ~ di logic untuk cek apakah message berisi text tertentu

condition [{event.message}~"toxic"] continue[] terminate[]
print "ada toxic waste!"

# OnWorldJoinโ€‹

dipanggil saat bot join world

# variable khususโ€‹

tidak ada

# contoh kodeโ€‹

bot akan chat Halo setelah join world

chat "Halo"

bot akan chat Hai setelah join ke world ANAKFFMAJU

execute if-true [{bot.world.name}="ANAKFFMAJU"] chat "Hai"

# OnPlayerLeveledUpโ€‹

dipanggil saat bot level up

# variable khususโ€‹

  • lastLevel -> level sebelumnya
  • newLevel -> level sekarang

# contoh kodeโ€‹

notifikasi akan dikirim lewat url webhook nya setiap bot level up

notification raw "{bot.name} level up! {event.lastLevel} -> {event.newLevel}"