firesignal
Immediately invoke all Luau connections attached to an RBXScriptSignal.
function firesignal(signal: RBXScriptSignal, ...: any?)Synopsis
How it works
Fires all connected callbacks on an
RBXScriptSignal as if the engine triggered it. Iterates the signal’s internal linked listLinked listA data structure where each element (node) contains a pointer to the next element. The Luau GC uses a linked list (global_State->allgc) to track all allocated objects for mark-and-sweep collection. of connections and invokes each callback with the provided arguments. This is a client-only operation — the server never sees the event fire.Use case
Useful for triggering
.Changed, .ChildAdded, or custom BindableEvent signals on the client to simulate state changes. Be aware that some game scripts check the call stackCall stackThe chain of CallInfo frames representing nested function calls. Each frame records the closure, base register, top, and saved program counter. Walking the call stack reveals the full execution trace. or arguments for validity.Usage
Manually fire a ChildAdded signal
local part = Instance.new("Part")
part.ChildAdded:Connect(function(arg)
print("Received:", typeof(arg))
end)
firesignal(part.ChildAdded) "cc">-- Output: Received: nil
firesignal(part.ChildAdded, workspace) "cc">-- Output: Received: InstanceParameters
signal RBXScriptSignal The signal whose connected functions should be fired.
... any optionalArguments to pass to each connected callback.
Synchronous firing
Unlike normal signal firing, firesignal invokes connections synchronously regardless of the workspace SignalBehaviour setting.