> For the complete documentation index, see [llms.txt](https://mango-5m.gitbook.io/mango5m-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mango-5m.gitbook.io/mango5m-docs/free-resources/mango-notify/developer-guide/client-exports.md).

# Client Exports

Every client-side export — notifications, live updates, themes, sounds, and state queries.

All exports are called as `exports.mango_notify:<Name>(...)` from any client script.

## Showing notifications

```lua
local id = exports.mango_notify:Notify(data)        -- full data table; returns the id
exports.mango_notify:Custom(data)                    -- alias of Notify

-- typed helpers: (title, description, duration) OR a full data table
exports.mango_notify:Success('Saved', 'Outfit stored.')
exports.mango_notify:Error('Denied', 'No keys.', 4000)
exports.mango_notify:Warning({ title = 'Storm warning', duration = 0 })
exports.mango_notify:Info('Hint', 'Press E to interact.')

exports.mango_notify:Dispatch(data)                  -- forces type = 'dispatch'
```

The typed helpers accept either the three-argument shorthand or a full data table (with `type` filled in for you) — so you never lose access to the advanced fields.

## Money

```lua
exports.mango_notify:Money(2500)          -- sign decides: received (green)
exports.mango_notify:Money(-800)          -- removed (red)
exports.mango_notify:MoneyReceived(2500)  -- explicit direction
exports.mango_notify:MoneyRemoved(800)

-- every money helper takes an optional extra data table:
exports.mango_notify:MoneyReceived(2500, { position = 'bottom-center', duration = 4000 })
```

## Managing what's on screen

```lua
exports.mango_notify:Update(id, data)    -- patch a visible or queued notification in place
exports.mango_notify:Remove(id)          -- dismiss by id (with exit animation)
exports.mango_notify:Clear()             -- remove everything, including the queue

exports.mango_notify:IsVisible(id)       -- boolean
exports.mango_notify:GetQueue()          -- { { id = ..., data = ... }, ... }
```

See [Updating & Queues](/mango5m-docs/free-resources/mango-notify/developer-guide/updating-and-queues.md) for patterns — progress tasks, persistent notifications, and priorities.

## Interactive prompts

Prompts are notification cards the player answers with a keybind — they never take NUI focus, so the player keeps full control while one is on screen.

```lua
exports.mango_notify:prompt(data, cb)       -- show a prompt; cb receives the chosen value, or nil
exports.mango_notify:promptAwait(data)      -- the same, returning the value (coroutine only)

exports.mango_notify:cancelPrompt(id)       -- resolve one open prompt with nil
exports.mango_notify:cancelPrompts()        -- resolve every open prompt with nil
exports.mango_notify:IsPromptActive(id)     -- omit the id to ask "is any prompt open?"
```

The callback fires exactly once — on a keypress, a timeout, a cancel, death, or a resource stop. See [Interactive Prompts](/mango5m-docs/free-resources/mango-notify/developer-guide/interactive-prompts.md) for the fields, the stacking rules, and worked examples.

{% hint style="info" %}
These four also answer to `Prompt`, `PromptAwait`, `CancelPrompt` and `CancelPrompts`, so they read the same as the rest of the export surface if you prefer that style.
{% endhint %}

## Runtime appearance

```lua
exports.mango_notify:SetTheme('police')                        -- default theme from now on
exports.mango_notify:RegisterTheme('vip', { accent = '#FFD700' })
exports.mango_notify:SetPosition('bottom-right')               -- default position from now on
exports.mango_notify:SetAccentColor('#FF00FF')                 -- default accent from now on
```

Runtime overrides apply to future notifications until changed again (or the resource restarts, which returns to config values).

## Sounds

```lua
exports.mango_notify:PlaySound('success')        -- built-in preset
exports.mango_notify:PlaySound('alert', 0.5)     -- custom file, volume 0.5
```

Plays a sound with no notification attached — see [Sounds](/mango5m-docs/free-resources/mango-notify/configuration/sounds.md).

## ox\_lib compatibility

Two extra exports exist purely so ox\_lib notifications can render through Mango Notify:

```lua
exports.mango_notify:OxNotify(data)     -- translate ox_lib NotifyProps, then show
exports.mango_notify:FromOxLib(data)    -- translate only, returns the mango payload
```

You rarely call these yourself — `OxNotify` is what the one-line ox\_lib edit points at. Use `FromOxLib` when you want to patch the translated table before showing it. See [Framework Integration](/mango5m-docs/free-resources/mango-notify/developer-guide/framework-integration.md).

{% hint style="info" %}
`Notify` returns the notification's id (auto-generated if you didn't pass one) — keep it if you plan to `Update` or `Remove` later.
{% endhint %}
