Show raw api
{
"functions": [
{
"name": "new",
"desc": "Constructs a new Signal",
"params": [],
"returns": [
{
"desc": "",
"lua_type": "Signal"
}
],
"function_type": "static",
"source": {
"line": 79,
"path": "src/Packages/_Index/miagobble_signal@1.0.1/signal/init.luau"
}
},
{
"name": "Wrap",
"desc": "Constructs a new Signal that wraps around an RBXScriptSignal.\n\n\nFor example:\n\n```lua\nlocal SignalInstance = Signal.Wrap(workspace.ChildAdded)\nSignalInstance:Connect(function(part) print(part.Name .. \" added\") end)\nInstance.new(\"Part\").Parent = workspace\n```",
"params": [
{
"name": "rbxScriptSignal",
"desc": "Existing RBXScriptSignal to wrap",
"lua_type": "RBXScriptSignal"
}
],
"returns": [
{
"desc": "",
"lua_type": "Signal"
}
],
"function_type": "static",
"source": {
"line": 104,
"path": "src/Packages/_Index/miagobble_signal@1.0.1/signal/init.luau"
}
},
{
"name": "Is",
"desc": "Checks if the given object is a Signal.",
"params": [
{
"name": "obj",
"desc": "Object to check",
"lua_type": "any"
}
],
"returns": [
{
"desc": "`true` if the object is a Signal.",
"lua_type": "boolean"
}
],
"function_type": "static",
"source": {
"line": 125,
"path": "src/Packages/_Index/miagobble_signal@1.0.1/signal/init.luau"
}
},
{
"name": "Connect",
"desc": "Connects a function to the signal, which will be called anytime the signal is fired.\n```lua\nSignalInstance:Connect(function(msg, num)\n\tprint(msg, num)\nend)\n\nSignalInstance:Fire(\"Hello\", 25)\n```",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "Signal<T...>"
},
{
"name": "fn",
"desc": "",
"lua_type": "ConnectionFn"
}
],
"returns": [
{
"desc": "",
"lua_type": "SignalConnection"
}
],
"function_type": "static",
"source": {
"line": 143,
"path": "src/Packages/_Index/miagobble_signal@1.0.1/signal/init.luau"
}
},
{
"name": "ConnectOnce",
"desc": "",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "Signal<T...>"
},
{
"name": "fn",
"desc": "",
"lua_type": "ConnectionFn"
}
],
"returns": [
{
"desc": "",
"lua_type": "SignalConnection"
}
],
"function_type": "static",
"deprecated": {
"version": "v1.3.0",
"desc": "Use `Signal:Once` instead."
},
"source": {
"line": 167,
"path": "src/Packages/_Index/miagobble_signal@1.0.1/signal/init.luau"
}
},
{
"name": "Once",
"desc": "Connects a function to the signal, which will be called the next time the signal fires. Once\nthe connection is triggered, it will disconnect itself.\n\n```lua\nSignalInstance:Once(function(msg, num)\n\tprint(msg, num)\nend)\n\nSignalInstance:Fire(\"Hello\", 25)\nSignalInstance:Fire(\"This message will not go through\", 10)\n```",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "Signal<T...>"
},
{
"name": "fn",
"desc": "",
"lua_type": "ConnectionFn"
}
],
"returns": [
{
"desc": "",
"lua_type": "SignalConnection"
}
],
"function_type": "static",
"source": {
"line": 188,
"path": "src/Packages/_Index/miagobble_signal@1.0.1/signal/init.luau"
}
},
{
"name": "DisconnectAll",
"desc": "Disconnects all connections from the signal.\n```lua\nsignal:DisconnectAll()\n```",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "Signal<T...>"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 224,
"path": "src/Packages/_Index/miagobble_signal@1.0.1/signal/init.luau"
}
},
{
"name": "Fire",
"desc": "Fire the signal, which will call all of the connected functions with the given arguments.\n```lua\nsignal:Fire(\"Hello\")\n\n-- Any number of arguments can be fired:\nsignal:Fire(\"Hello\", 32, {Test = \"Test\"}, true)\n```",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "Signal<T...>"
},
{
"name": "...",
"desc": "",
"lua_type": "any"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 256,
"path": "src/Packages/_Index/miagobble_signal@1.0.1/signal/init.luau"
}
},
{
"name": "FireDeferred",
"desc": "Same as `Fire`, but uses `task.defer` internally & doesn't take advantage of thread reuse.\n```lua\nsignal:FireDeferred(\"Hello\")\n```",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "Signal<T...>"
},
{
"name": "...",
"desc": "",
"lua_type": "any"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 278,
"path": "src/Packages/_Index/miagobble_signal@1.0.1/signal/init.luau"
}
},
{
"name": "Wait",
"desc": "Yields the current thread until the signal is fired, and returns the arguments fired from the signal.\nYielding the current thread is not always desirable. If the desire is to only capture the next event\nfired, using `Once` might be a better solution.\n```lua\ntask.spawn(function()\n\tlocal msg, num = SignalInstance:Wait()\n\tprint(msg, num) --> \"Hello\", 32\nend)\nSignalInstance:Fire(\"Hello\", 32)\n```",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "Signal<T...>"
}
],
"returns": [
{
"desc": "",
"lua_type": "... any"
}
],
"function_type": "static",
"yields": true,
"source": {
"line": 307,
"path": "src/Packages/_Index/miagobble_signal@1.0.1/signal/init.luau"
}
},
{
"name": "Destroy",
"desc": "Cleans up the signal.\n\nTechnically, this is only necessary if the signal is created using\n`Signal.Wrap`. Connections should be properly GC'd once the signal\nis no longer referenced anywhere. However, it is still good practice\nto include ways to strictly clean up resources. Calling `Destroy`\non a signal will also disconnect all connections immediately.\n```lua\nSignalInstance:Destroy()\n```",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "Signal<T...>"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 341,
"path": "src/Packages/_Index/miagobble_signal@1.0.1/signal/init.luau"
}
}
],
"properties": [],
"types": [
{
"name": "SignalConnection",
"desc": "Represents a connection to a signal.\n```lua\nlocal ConnectionObj = SignalInstance:Connect(function() end)\nprint(ConnectionObj.Connected) --> true\nConnectionObj:Disconnect()\nprint(ConnectionObj.Connected) --> false\n```",
"fields": [
{
"name": "Connected",
"lua_type": "boolean",
"desc": ""
},
{
"name": "Disconnect",
"lua_type": "(SignalConnection) -> ()",
"desc": ""
}
],
"source": {
"line": 15,
"path": "src/Packages/_Index/miagobble_seam@0.5.6/seam/Modules/Signal/Connection.luau"
}
},
{
"name": "SignalConnection",
"desc": "Represents a connection to a signal.\n```lua\nlocal ConnectionObj = SignalInstance:Connect(function() end)\nprint(ConnectionObj.Connected) --> true\nConnectionObj:Disconnect()\nprint(ConnectionObj.Connected) --> false\n```",
"fields": [
{
"name": "Connected",
"lua_type": "boolean",
"desc": ""
},
{
"name": "Disconnect",
"lua_type": "(SignalConnection) -> ()",
"desc": ""
}
],
"source": {
"line": 15,
"path": "src/Packages/_Index/miagobble_signal@1.0.1/signal/Connection.luau"
}
},
{
"name": "ConnectionFn",
"desc": "A function connected to a signal.",
"lua_type": "(...any) -> ()",
"source": {
"line": 35,
"path": "src/Packages/_Index/miagobble_signal@1.0.1/signal/init.luau"
}
}
],
"name": "Signal",
"desc": "A Signal is a data structure that allows events to be dispatched\nand observed.\n\nThis implementation is a direct copy of the de facto standard, [GoodSignal](https://devforum.roblox.com/t/lua-signal-class-comparison-optimal-goodsignal-class/1387063),\nwith some added methods and typings.\n\nFor example:\n```lua\nlocal SignalInstance = Signal.new()\n\n-- Subscribe to a signal:\nSignalInstance:Connect(function(msg)\n\tprint(\"Got message:\", msg)\nend)\n\n-- Dispatch an event:\nSignalInstance:Fire(\"Hello world!\")\n```",
"source": {
"line": 28,
"path": "src/Packages/_Index/miagobble_signal@1.0.1/signal/init.luau"
}
}