Skip to content

Signal utilities

A alternative of BindableEvent.

.Signal

Create new Signal.

lua
(
	Identifier: string
)
lua
local Signal1 = Warp.Signal("Signal1")

.fromSignalArray

Create new Signal.

lua
(
    { string }
)
lua
local Signals = Warp.fromSignalArray({"Signal1", "Signal2"})
Signals.Signal1:Connect(function(...) end)
Signals.Signal2:Connect(function(...) end)

:Connect

lua
(
	callback: (...any) -> ()
)
lua
Signal1:Connect(function(...)
	print(...)
end)

:Once

This function likely :Connect but it disconnect the signal once it fired.

lua
(
	callback: (...any) -> ()
)
lua
Signal1:Once(function(...)
	print(...)
end)

:Disconnect

Disconnect the signal connection.

lua
(
	key: string
)
lua
local connection = Signal1:Connect(function(...) end) -- store the key

Signal1:Disconnect(connection)

WARNING

This requires key to disconnect a signal connection.

:DisconnectAll

Disconnect All signal connections.

lua
Signal1:DisconnectAll()

:Fire

Fire the signal (Immediate)

lua
(
	...: any
)
lua
Signal1:Fire("Hello World!")

:DeferFire

Fire the signal (Deferred)

lua
(
	...: any
)
lua
Signal1:Fire("Hello World!")

WARNING

This uses pcall, which means it never error (safe-mode, sacrificed debugging), But gains performance here (upto 5x faster).

:FireTo

Fire to other signal, this uses :Fire.

lua
(
    signal: string,
	...: any
)
lua
Signals.Signal1:FireTo("Signal2", "Hello World!")

WARNING

This requires key.

:Invoke yield

lua
(
    key: string,
	...: any
) -> (...any)
lua
local connection = Signal1:Conenct(function(...) return "hey!" end)
local Request = Signal1:Invoke(connection, "Hello World!")

:InvokeTo yield

this use :Invoke.

lua
(
    signal: string,
    key: string,
	...: any
) -> (...any)
lua
local connection2 = Signals.Signal2:Conenct(function(...) return "hey!" end)
local Request = Signals.Signal1:Invoke("Signal2", connection2, "Hello World!")

WARNING

This requires key.

:Wait yield

Wait the signal get triggered.

lua
Signal1:Wait() -- return number (time)

WARNING

This function is yielded

:Destroy

Disconnect all connection of signal and remove the signal from Signals

lua
Signal1:Destroy()