> For the complete documentation index, see [llms.txt](https://dtrx-studio.gitbook.io/dtrx-studio-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dtrx-studio.gitbook.io/dtrx-studio-docs/fivem-products/dtrx-chat/integrations.md).

# Integrations

## **Supported integrations**

{% hint style="danger" %}
If a resource is not listed below, it is not officially supported out of the box. Custom stacks can be adapted via files under **`public/bridge/`**.
{% endhint %}

***

#### Frameworks

| Framework                      | Status          | Detection                                                                                |
| ------------------------------ | --------------- | ---------------------------------------------------------------------------------------- |
| **QBox (`qbx_core`)**          | Supported       | Auto when resource is started                                                            |
| **QBCore (`qb-core`)**         | Supported       | Auto when resource is started                                                            |
| **ESX Legacy (`es_extended`)** | Supported       | Auto when resource is started                                                            |
| **Custom**                     | Bridge required | Set `Bridge.Framework` and implement `public/bridge/framework/client.lua` + `server.lua` |

***

#### Notifications

| System           | Status                   | Notes                                                     |
| ---------------- | ------------------------ | --------------------------------------------------------- |
| **ox\_lib**      | Preferred when available | Auto-selected on many ox / Qbox stacks                    |
| **okokNotify**   | Supported                | Used when started and selected                            |
| **QBCore / QBX** | Supported                | `qbcore` bridge path                                      |
| **ESX**          | Supported                | `esx` bridge path                                         |
| **Native**       | Fallback                 | Basic GTA-style feed when nothing else matches            |
| **Custom**       | Supported                | `Bridge.Notify = "custom"` → edit `public/bridge/notify/` |

***

#### Sticky notes (interaction model)

| System                        | Status  | Notes                                            |
| ----------------------------- | ------- | ------------------------------------------------ |
| **Proximity keys (built-in)** | Default | **E** read, **G** tear — no `ox_target` required |

***

#### Database

| System      | Status   | Notes                     |
| ----------- | -------- | ------------------------- |
| **oxmysql** | Required | Only supported SQL driver |

***

#### Optional UI dependencies

| Resource    | Purpose                                    |
| ----------- | ------------------------------------------ |
| **ox\_lib** | Notifications (and common on Qbox servers) |

***

#### Bridge configuration reference

Override auto-detection in **`public/shared/config.lua`**:

```lua
Bridge = {
    --- 'auto' | 'qb-core' | 'qbx_core' | 'es_extended'
    Framework = 'auto',

    --- 'auto' | 'ox_lib' | 'okokNotify' | 'esx' | 'qbcore' | 'native' | 'custom'
    Notify = 'auto',
},
```

Restart **`dtrx_chat`** after changes.

***

#### Custom framework checklist

1. Set `Bridge.Framework = 'custom'` (or force a closest match if you wrap QBCore APIs).
2. Implement in `public/bridge/framework/server.lua`:
   * `getCitizenId(source)`
   * `getPlayerName(source)`
   * `getJob(source)` / `getGang(source)` for channel filters
   * `isAdmin(source)` if you rely on framework groups
3. Implement in `public/bridge/framework/client.lua`:
   * `getCitizenId()` for local player
   * Session hooks OR call `exports.dtrx_chat:NotifySessionReady()` / `NotifySessionEnded()` on character load/unload
4. Test: open chat (**T**), send `/me test`, open PM, place sticky note.

***

#### Custom notify checklist

1. Set `Bridge.Notify = 'custom'`.
2. Edit `public/bridge/notify/client.lua` and `server.lua` to call your notify export/event.
3. Trigger a blocked action (e.g. muted send) to verify errors display correctly.

***

#### Replacing default `chat` scripts

DTRX declares `provide 'chat'`. Scripts that used:

```lua
exports.chat:addSuggestion(...)
```

should use:

```lua
exports['dtrx_chat']:addSuggestion(...)
```

***

#### Locale files

| Code | File                            |
| ---- | ------------------------------- |
| `en` | `public/shared/locales/en.json` |
| `pt` | `public/shared/locales/pt.json` |
| `es` | `public/shared/locales/es.json` |

{% hint style="info" %}
Set `ChatConfig.Locale` for new players; existing players can override in Chat Settings.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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://dtrx-studio.gitbook.io/dtrx-studio-docs/fivem-products/dtrx-chat/integrations.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.
