> For the complete documentation index, see [llms.txt](https://jiffyjrdevelopment.gitbook.io/jiffyjrdevelopmentdocs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jiffyjrdevelopment.gitbook.io/jiffyjrdevelopmentdocs/jiffy-jr-development-docs/jiffy-ui/integrations/overview.md).

# Overview

Jiffy UI includes compatibility adapters that intercept calls from other UI libraries and reroute them through Jiffy UI. This means scripts on your server that were written for okokNotify, progressbar, mythic\_notify, ox\_lib, and others will automatically display through Jiffy UI without any code changes.

## How adapters work

Each adapter listens for the events or export calls that another library would normally handle. When a call comes in, the adapter translates it into a Jiffy UI call and renders it.

**Adapters self-guard** — if the original resource is also running, the adapter steps aside automatically to avoid double-rendering.

## Available adapters

| Adapter       | Intercepts                                                            | Toggle                        |
| ------------- | --------------------------------------------------------------------- | ----------------------------- |
| `okok`        | `okokNotify:Alert` event + `exports['okokNotify']:Alert(...)`         | `Config.Adapters.okok`        |
| `brutal`      | `brutal_notify:SendAlert` event + export                              | `Config.Adapters.brutal`      |
| `rtx`         | `rtx_notify:Alert`, `rtx_notify:notify`, `rtx:notify` events + export | `Config.Adapters.rtx`         |
| `qb`          | `QBCore:Notify` event                                                 | `Config.Adapters.qb`          |
| `progressbar` | `exports['progressbar']:Progress/Destroy/isDoingProgress(...)`        | `Config.Adapters.progressbar` |
| `mythic`      | `mythic_notify:SendAlert` event + export                              | `Config.Adapters.mythic`      |
| `esx`         | `esx:showNotification`, `ESX:ShowNotification`, `esx:addNotification` | `Config.Adapters.esx`         |
| `qbmenu`      | `exports['qb-menu']:openMenu/setMenu/closeMenu(...)`                  | `Config.Adapters.qbmenu`      |
| `qbinput`     | `exports['qb-input']:ShowInput(...)`                                  | `Config.Adapters.qbinput`     |
| `oxlib`       | Shim for ox\_lib exports (use when ox\_lib is **not** installed)      | `Config.Adapters.oxlib`       |
| `oxlib_live`  | ox\_lib live redirect (use when ox\_lib **is** installed + patched)   | `Config.Adapters.oxlib_live`  |
| `17hud`       | `17mov_Hud:ShowNotification` event                                    | `Config.Adapters['17hud']`    |

## Enabling / disabling

All adapters are toggled in `config.lua`:

```lua
Config.Adapters = {
    okok    = true,   -- enabled
    brutal  = true,
    oxlib   = false,  -- disabled
    -- ...
}
```

{% hint style="warning" %}
**QBCore double-notify:** Enabling `Config.Adapters.qb = true` while qb-core's own notify UI is active will cause double notifications — one from Jiffy UI and one from qb-core. To fix this, either disable qb-core's native `ShowNotification` rendering in `qb-core/client/functions.lua`, or set `Config.Backends.Notify = 'qb'` to pass all notifications through to qb-core instead.
{% endhint %}

## ox\_lib

ox\_lib has two integration modes depending on whether ox\_lib is installed on your server. See the [ox\_lib redirect](broken://pages/2a940c408bbbb8b3b1b8aa7cb5dd46cd5d5bcb1c) page for setup.
