Signals

Instead of using Roblox BindableEvent instances, I use my own signal module.

You can create a signal like this:

local mySignal = Signals.New()

And then you can fire it like this:

mySignal:Fire(...)

And of course connect like this:

local conn = mySignal:Connect(Callback)

-- Disconnect
conn:Disconnect()

Very simple and much nicer to use than BindableEvents.