---
title: "SignalObject.Connect"
description: "Subscribes a callback to a custom Signal emitter."
---

```lua
event:Connect(callback: function): SignalConnection
```

---

## Aliases

- `SignalObject.connect`

---

## Arguments

<ParamField body="callback" type="function" required>
  The callback to register. Keep the same function object for removal.
</ParamField>

---

## Returns

<ResponseField name="connection" type="SignalConnection">
  A custom connection with Connected=true.
</ResponseField>

The callback is scheduled with task.spawn on each firing while Connected is true. Non-function callbacks raise.

**Related types:** [Signals types & behavior](/reference/signals/types) · [SignalObject](/reference/signals/signalobject).

---

## Example

```lua
local event = Signal.new()
local connection = event:Connect(function(value) print(value) end)
event:Fire("hello")
task.wait()
connection:Disconnect()
```
