---
title: "Signal.new"
description: "Creates a pure-Luau event emitter with its own handler list."
---

```lua
Signal.new(): SignalObject
```

---

## Aliases

- `Signal.New`
- `signal.new`
- `signal.New`

---

## Arguments

This function takes no arguments.

---

## Returns

<ResponseField name="event" type="SignalObject">
  A new custom emitter with an empty handler list.
</ResponseField>

Signal and signal refer to the same constructor table. Custom Signal objects are separate from native RBXScriptSignal values.

**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()
event:Destroy()
```
