# compatibility

The script uses `bridge_client.lua` as an abstraction layer. It detects your stack at runtime and routes all calls through a unified API so you never need to edit `client.lua` or `server.lua` directly.

## Supported Frameworks

| Framework       | Resource Name | Auto-detected |
| --------------- | ------------- | ------------- |
| QBCore          | `qb-core`     | Yes           |
| ESX             | `es_extended` | Yes           |
| Standalone / ox | —             | Fallback      |

To pin manually: `Config.Framework = "qbcore"` / `"esx"` / `"ox"`

## Supported Target Systems

| System     | Resource Name | Notes                                      |
| ---------- | ------------- | ------------------------------------------ |
| qb-target  | `qb-target`   | Default for QBCore servers                 |
| ox\_target | `ox_target`   | Works with any framework                   |
| qtarget    | `qtarget`     | Legacy QBCore target                       |
| interact   | `interact`    | Standalone interact resource               |
| none       | —             | Falls back to proximity key press + marker |

To pin manually: `Config.TargetSystem = "qb-target"` (etc.)

When `"none"` is selected, a cylinder marker is drawn at the showroom coords and the player opens the UI by pressing the configured proximity key (default: **E**).

## Supported Notification Systems

| System         | Resource Name   | Notes                             |
| -------------- | --------------- | --------------------------------- |
| ox\_lib        | `ox_lib`        | `lib.notify()`                    |
| mythic\_notify | `mythic_notify` | `DoHudText()`                     |
| QBCore         | `qb-core`       | `QBCore.Functions.Notify()`       |
| ESX            | `es_extended`   | `ESX.ShowNotification()`          |
| Native         | —               | GTA `DrawText` floating help text |

To pin manually: `Config.NotifySystem = "ox_lib"` (etc.)

## Detection Priority

Auto-detection checks resources in this order:

**Framework:** QBCore → ESX → ox (fallback)

**Target:** qb-target → ox\_target → qtarget → interact → none (fallback)

**Notify:** ox\_lib → mythic → QBCore → ESX → native (fallback)

If two matching resources are started simultaneously, the one higher in the priority list wins. Use manual pinning to override.

## Adding a Custom Notification System

Set `Config.NotifySystem = "custom"` then open `bridge_client.lua` and add a branch inside `Bridge.Notify`:

```lua
elseif Bridge.notify == 'custom' then
    exports['your-notify']:Send(msg, t, duration)
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mohssins.gitbook.io/mohscriptsdocs/moh-vipshowroom/compatibility.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
