> For the complete documentation index, see [llms.txt](https://visionstore.gitbook.io/visionstore-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://visionstore.gitbook.io/visionstore-docs/scripts/boxing-creator/configuration/framework-notify-inventory.md).

# Framework, notify & inventory

Run on any framework, with any notification system and any inventory.

## Framework

```lua
Config.Framework = 'auto'  -- 'auto' | 'qbx' | 'qb' | 'esx' | 'standalone'
```

`auto` checks, in this order: **qbx\_core → es\_extended → qb-core → standalone**. The console shows the result on start: `[Chapo_BoxingCreator] framework: esx`.

| Framework  | Character id used for records | Name shown                  | Money            |
| ---------- | ----------------------------- | --------------------------- | ---------------- |
| Qbox       | `citizenid`                   | Character first + last name | `cash` / `bank`  |
| QBCore     | `citizenid`                   | Character first + last name | `cash` / `bank`  |
| ESX        | `identifier`                  | `xPlayer.getName()`         | `money` / `bank` |
| Standalone | `license:`                    | FiveM name                  | none (see below) |

{% hint style="info" %}
**Winnings are always paid**, even if the player disconnected: on QBCore and ESX the money is added straight to the database when they're offline.
{% endhint %}

Using another framework (vRP, a custom core...)? Every framework call is in `bridge/sv_bridge.lua`. See [Custom framework](/visionstore-docs/scripts/boxing-creator/developers/custom-framework.md).

## Notifications

```lua
Config.Notify = 'ox_lib'
Config.NotifyDuration = 6000  -- ms
```

| Value       | Resource                               |
| ----------- | -------------------------------------- |
| `'ox_lib'`  | ox\_lib `lib.notify` (default)         |
| `'qbx'`     | Qbox `exports.qbx_core:Notify`         |
| `'qb'`      | QBCore `QBCore:Notify`                 |
| `'esx'`     | ESX `esx:showNotification`             |
| `'okok'`    | okokNotify                             |
| `'mythic'`  | mythic\_notify                         |
| `'pnotify'` | pNotify                                |
| `'brutal'`  | brutal\_notify                         |
| `'wasabi'`  | wasabi\_notify                         |
| `'gta'`     | GTA's native feed (no resource needed) |
| `'custom'`  | Your own, see below                    |

If the chosen system fails (for example, the resource isn't started), the message falls back to the GTA feed, so players never miss it.

### Use your own notification script

Set `Config.Notify = 'custom'` and edit `Bridge.customNotify` in `bridge/cl_bridge.lua`:

```lua
function Bridge.customNotify(title, text, kind, duration)
    -- kind: 'inform' | 'success' | 'error' | 'warning'
    exports['my-notify']:Show(title, text, kind, duration)
end
```

## Inventory

```lua
Config.Inventory = 'auto'  -- 'auto' | 'ox_inventory' | 'qb-inventory' | 'qs-inventory' | 'esx' | 'none'
```

The inventory is used for two things:

* **The gloves item**: ox\_inventory calls the client export from its item entry; the others get a usable item registered by the script.
* **Fight lock**: when a fight starts, the fighter's weapon is holstered and the inventory / hotbar are locked until they leave the ring.

## Hiding the player's HUD during fights

```lua
Config.HideHud = {
    Enabled = true,
    Fighters = true,     -- from the walk-out until they leave the ring
    Spectators = true,   -- while the fight scoreboard is on screen (not in vehicles)
    Radar = true,        -- hide the minimap too
    Resource = false,
}
```

If your HUD resource has hide / show exports, name them and the script uses them:

```lua
Resource = { name = 'my-hud', hide = 'hideHud', show = 'showHud', arg = 'boxing' },
-- calls exports['my-hud']:hideHud('boxing') / exports['my-hud']:showHud('boxing')
```

For anything more complex, edit `Bridge.setHudHidden(hidden)` in `bridge/cl_bridge.lua`.


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://visionstore.gitbook.io/visionstore-docs/scripts/boxing-creator/configuration/framework-notify-inventory.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
