Why use BindableEvent?
BindableEvent decouples local systems: one script can Fire a signal and listeners can respond. It does not cross from client to server; use a remote for that.
Try it in Roblox Studio
Put this Script in ServerScriptService and read Studio Output. It creates and uses the event in one script so the event order is easy to see.
Syntax
event.Event:Connect(function(value) ... end)
event:Fire(value)Examples
BindableEvent
Notify a same-side listener about a score change.
local event = Instance.new("BindableEvent")
event.Name = "ScoreChanged"
event.Parent = script
event.Event:Connect(function(newScore)
print("New score:", newScore)
end)
event:Fire(10)- Event:Connect registers a listener before the signal is sent.
- Fire passes 10 to listeners on the same side of the client/server boundary.
- The example prints the score but does not store it; a real score system must own its authoritative state.
Best practices
- Use BindableEvent for notification, not a return value.
- Use RemoteEvent for communication across the network.
Runtime & versions
Luau host; Roblox engine examples require Roblox Studio. Feature availability depends on the language and runtime version used by your project; consult the official reference below.
Luau documentation