> ## Documentation Index
> Fetch the complete documentation index at: https://pure.saauf.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Trace.Notify - Send Notifications to Players from a Server Script

> Send informational, important, and critical notifications to a specific player from a trusted server script using Trace.Notify and its variants.

`Trace.Notify` delivers a Trace-styled notification card to a single player. Trusted server scripts can use it to surface information, escalate an important message, or deliver a critical alert that plays a sound and never dismisses silently. Notifications are subject to the recipient's Do Not Disturb preference - critical alerts always deliver.

## Signature

```lua theme={null}
Trace.Notify(player, title, description, duration, alertType)
Trace.NotifyImportant(player, title, description, duration)
Trace.CriticalAlert(player, title, description, duration)
```

## Parameters

<ParamField path="player" type="Player" required>
  The recipient of the notification. Must be a `Player` instance currently in the server.
</ParamField>

<ParamField path="title" type="string" required>
  The bold heading shown at the top of the notification card. Keep it short - the panel truncates long titles.
</ParamField>

<ParamField path="description" type="string" required>
  The body text of the notification. Multi-line strings are supported.
</ParamField>

<ParamField path="duration" type="number">
  How long the card stays visible, in seconds. Defaults to `5` for normal notifications, `7` for important, and `10` for critical.
</ParamField>

<ParamField path="alertType" type="string">
  Passed only to `Trace.Notify`. Accepts `"Normal"` (default), `"Important"`, or `"Critical"`. Use the dedicated helpers `NotifyImportant` and `CriticalAlert` for readability.
</ParamField>

## Alert types

| Alert type  | Sound                                                                              | Do Not Disturb        | Use case                                      |
| ----------- | ---------------------------------------------------------------------------------- | --------------------- | --------------------------------------------- |
| `Normal`    | Silent when the player has disabled notification sounds; a gentle chime otherwise. | Suppressed.           | Confirmations, tips, non-urgent status.       |
| `Important` | Same chime as normal, but with a highlighted card.                                 | Suppressed.           | Player-visible warnings, moderator alerts.    |
| `Critical`  | Loud critical alert sound; card is highlighted red.                                | **Always delivered.** | Security incidents, forced-review situations. |

## Examples

### Inform a player after a purchase

```lua theme={null}
local Trace = _G.Trace

MarketplaceService.ProcessReceipt = function(receipt)
    local player = Players:GetPlayerByUserId(receipt.PlayerId)
    if player then
        Trace.Notify(player, "Purchase confirmed",
            "Your VIP pass is now active. Enjoy the perks!", 6)
    end
    return Enum.ProductPurchaseDecision.PurchaseGranted
end
```

### Surface an important account message

```lua theme={null}
local Trace = _G.Trace
Trace.NotifyImportant(player,
    "Session recovered",
    "Your progress was restored after a temporary DataStore issue.", 8)
```

### Deliver a critical security alert

```lua theme={null}
local Trace = _G.Trace
Trace.CriticalAlert(player,
    "Suspicious sign-in",
    "A moderator needs to speak with you. Please stay in the lobby.", 12)
```

## Return value

Notification helpers do not return a value. If the target player leaves before the notification is delivered, the call is a safe no-op.

## Related

* [Moderation - Trace.Punish](/api/punish)
* [Movement Exceptions](/api/begin-movement-exception)
