> 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/configuration/general-settings.md).

# General Settings

Position, stacking, sizing, appearance, behaviour, and animations — the core config.lua options.

## Layout & positioning

```lua
Config.Position         = 'top-right'
Config.StackDirection   = 'down'
Config.Offset           = { x = 24, y = 24 }
Config.Width            = 340
Config.Height           = nil            -- nil = auto height (recommended)
Config.MaxNotifications = 5
Config.Spacing          = 10
```

| Option             | What it does                                                                                                                                                                                                            |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Position`         | Default screen anchor. One of `top-left`, `top-center`, `top-right`, `center-left`, `center`, `center-right`, `bottom-left`, `bottom-center`, `bottom-right`. Any notification can override it with `position = '...'`. |
| `StackDirection`   | `'down'` — new notifications push older ones along; `'up'` flips the stack.                                                                                                                                             |
| `Offset`           | Distance in pixels from the screen edge.                                                                                                                                                                                |
| `Width` / `Height` | Default panel size in px. `Height = nil` lets content decide (recommended). Per-notification `width`/`height` override these.                                                                                           |
| `MaxNotifications` | How many can be visible at once **in total** (across all positions). Extra notifications wait in the queue — see Updating & Queues.                                                                                     |
| `Spacing`          | Vertical gap between stacked notifications, in px.                                                                                                                                                                      |

## Appearance

```lua
Config.BorderRadius     = 8
Config.BackgroundColor  = 'rgba(13, 14, 18, 0.90)'
Config.BorderColor      = 'rgba(255, 255, 255, 0.10)'
Config.TextColor        = '#FFFFFF'
Config.DescriptionColor = '#C5C9D3'
Config.SubtitleColor    = '#8B90A0'
Config.Shadow           = '0 12px 32px rgba(0, 0, 0, 0.45)'
Config.Padding          = '12px 16px'
Config.Font             = "'Inter', 'Segoe UI', system-ui, sans-serif"
Config.FontWeight       = 500

Config.DefaultAccentColor = '#3B82F6'
Config.AccentHeight       = 3
Config.AccentWidth        = 38
Config.DefaultIcon        = 'fa-solid fa-bell'
```

The accent is the coloured line along the bottom of a notification. A **depleting bar** spans the full width and empties as the timer runs. `AccentWidth` sets the width of the **static** line, which now only appears on **persistent** notifications (`duration = 0`) — there is no timer to deplete, so the line just sits there. With `progress` off, a timed notification has no line at all. The glass look comes from the semi-transparent `Config.BackgroundColor`.

## Behaviour

```lua
Config.DefaultDuration     = 5000
Config.ProgressBar         = true
Config.ProgressPauseOnHover = false
Config.DuplicatePrevention = false
Config.QueueMode           = 'queue'
Config.EnableTestCommand   = false
Config.OxLibCompat         = true
```

| Option                 | What it does                                                                                                                                                                                                                                         |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `DefaultDuration`      | How long a notification stays, in ms, when the call doesn't specify one. A per-notification `duration = 0` makes it **persistent** until removed.                                                                                                    |
| `ProgressBar`          | Depleting progress bar on every notification by default. Set it to **`false` and timed notifications get no accent line at all** — not a shorter one. Override per notification with `progress`.                                                     |
| `ProgressPauseOnHover` | Pause a notification's timer while the cursor hovers it. Only applies while some other resource holds NUI focus — mango\_notify itself never captures the mouse.                                                                                     |
| `DuplicatePrevention`  | When on, a notification identical to one already visible (same type + title + description) refreshes the existing one instead of stacking a copy. Can also be enabled per call with `dedupe = true`.                                                 |
| `QueueMode`            | What happens when `MaxNotifications` is reached: `'queue'` waits for a slot (FIFO with priorities), `'replace'` pushes the oldest visible notification out immediately.                                                                              |
| `EnableTestCommand`    | Registers the `/mnotify` preview command. **Off by default** — enable while tuning, disable for live.                                                                                                                                                |
| `OxLibCompat`          | Registers the `OxNotify` / `FromOxLib` translation exports used to redirect ox\_lib notifications into Mango. **ox\_lib is not a dependency** — Mango Notify never calls it and runs identically without it. Turn this off if you don't use ox\_lib. |

## Animations

```lua
Config.AnimationIn    = 'slide'    -- slide | fade | scale | bounce
Config.AnimationOut   = 'slide'    -- slide | fade | scale
Config.AnimationSpeed = 350        -- ms
```

Slide direction adapts automatically to the screen edge — notifications on the left slide in from the left, and so on. Individual notifications can override with `animationIn` / `animationOut`.

## Money formatting

```lua
Config.Money = {
    positiveColor = '#2ECC71',
    negativeColor = '#FF4B4B',
    currency      = '$',
    currencyAfter = true,     -- true = "1,000$", false = "$1,000"
}

Config.Locale = {
    moneyReceived = 'You received:',
    moneyRemoved  = 'You paid:',
}
```

Money notifications tint their accent line with the direction colour automatically (green for received, red for paid) unless the call sets an explicit `accent`. The labels come from `Config.Locale`, and any call can override them with its own `title`.
