Event & RBXScriptSignal
Penjelasan
Hampir semua interaksi di Roblox bersifat event-driven lewat objek `RBXScriptSignal`, yang punya method `:Connect(fungsi)` untuk mendaftarkan fungsi yang dipanggil tiap kali event terjadi — misalnya `Touched` saat dua Part bersentuhan, atau `PlayerAdded` saat pemain baru bergabung ke server. Pola ini serupa dengan event listener di banyak lingkungan pemrograman lain. Koneksi event mengembalikan objek `RBXScriptConnection` yang bisa disimpan dan diputus dengan `:Disconnect()` kalau listener sudah tidak diperlukan lagi — penting untuk menghindari memory leak, terutama pada objek yang sering dibuat dan dihancurkan berulang.
Contoh Konsep
local bagian = workspace:FindFirstChild("PlatformMerah")
local koneksi
koneksi = bagian.Touched:Connect(function(objekLain)
local karakter = objekLain.Parent
local humanoid = karakter:FindFirstChild("Humanoid")
if humanoid then
print(karakter.Name .. " menyentuh platform")
humanoid.Health = 0
end
end)
-- Memutus koneksi saat tidak dibutuhkan lagi
-- koneksi:Disconnect()
game.Players.PlayerAdded:Connect(function(pemain)
print(pemain.Name .. " bergabung ke server")
end)
Praktikum
Buat sebuah Part bernama "Perangkap", lalu sambungkan event Touched-nya untuk mencetak nama karakter yang menyentuhnya ke console.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Event `Touched` bisa terpicu berkali-kali dengan cepat saat dua objek terus bersentuhan — tambahkan flag debounce (variabel boolean) kalau ingin aksi hanya berjalan sekali per sentuhan.