Study
Luau

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.

Editor Latihan

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.