World Executor · Roblox VM

Signals

Fire signals programmatically, inspect their connections, and replicate them across the network boundary.

Overview

Roblox events are RBXScriptSignal objects with a list of connections behind them. This library reads that list, fires signals without the thing that normally fires them, and — where the engine allows it — pushes a signal back across the network boundary.

Firing and inspecting
local remote = game:GetService("ReplicatedStorage"):WaitForChild("Reward")

-- Run whatever the game connected, locally, with your arguments.
firesignal(remote.OnClientEvent, 9999)

-- Or look at the handlers first.
for _, connection in ipairs(getconnections(remote.OnClientEvent)) do
    print(connection.Function, connection.State)
    connection:Disable()     -- and turn one off
end

The connection objects are proxies: each carries the handler function, its state, and methods to disable, enable or fire it individually. Pair connection.Function with debug.getupvalues to read the state a handler closed over.

Firing & replicating

Connection introspection

Signal metadata

These describe a signal rather than acting on it — what arguments it expects, and whether the engine will let it replicate.

ConnectionProxy