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

# Integration

Which systems Striga Core finds by itself, and how to plug in your own.

Striga Core talks to your framework and your other scripts through **adapters**. One adapter per system: framework, inventory, notify, text UI, appearance and fuel.

* With `"auto"` in `config.json`, core picks a built-in adapter for you.
* You can pick one by name instead.
* Running a script core does not know? Write a small adapter for it with `RegisterAdapter` and pick its name in `config.json`.

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Frameworks</strong></td><td>QBCore, Qbox, ESX, standalone</td><td><a href="/docs/striga-core/integration/frameworks.md">Frameworks</a></td></tr><tr><td><strong>Inventory</strong></td><td>Striga Inventory, qb-inventory, ox_inventory, ESX</td><td><a href="/docs/striga-core/integration/inventory.md">Inventory</a></td></tr><tr><td><strong>Notify</strong></td><td>Framework, ox_lib, Striga Notify</td><td><a href="/docs/striga-core/integration/notify.md">Notify</a></td></tr><tr><td><strong>Text UI</strong></td><td>Striga Text UI, qb-core, esx_textui, ox_lib</td><td><a href="/docs/striga-core/integration/text-ui.md">Text UI</a></td></tr><tr><td><strong>Appearance</strong></td><td>illenium, fivem-appearance, qb-clothing, skinchanger</td><td><a href="/docs/striga-core/integration/appearance.md">Appearance</a></td></tr><tr><td><strong>Fuel</strong></td><td>ox_fuel, LegacyFuel, cdn-fuel, ps-fuel, qb-fuel, lc_fuel</td><td><a href="/docs/striga-core/integration/fuel.md">Fuel</a></td></tr></tbody></table>

## What you can replace

| Kind         | Config key     | Built-in names                                                                  | Your own adapter |
| ------------ | -------------- | ------------------------------------------------------------------------------- | ---------------- |
| `framework`  | `framework`    | `qbcore`, `qbox`, `esx`, `standalone`                                           | No               |
| `inventory`  | `inventory`    | `striga`, `qb`, `ox`, `esx`, `none`                                             | Client + server  |
| `notify`     | `notify`       | `framework`, `ox_lib` (Striga Notify registers `striga-notify`)                 | Client + server  |
| `textui`     | `textui`       | `ox_lib`, `qb-core`, `esx_textui` (Striga Text UI registers `striga-text-ui`)   | Client           |
| `appearance` | `appearance`   | `illenium-appearance`, `fivem-appearance`, `qb-clothing`, `skinchanger`, `none` | Client           |
| `fuel`       | `fuel.adapter` | `builtin` (reads `fuel.resources`)                                              | Client           |

## RegisterAdapter in short

```lua
exports['striga-core']:RegisterAdapter(kind, name, impl) -- returns ok, err
```

Write the adapter in your own small resource (not escrowed) with `dependency 'striga-core'`, then set its name in `config.json`.

```lua
local function register()
    exports['striga-core']:RegisterAdapter('fuel', 'my-fuel', {
        getFuel = function(vehicle) return exports['my-fuel']:GetFuel(vehicle) end,
    })
end
register()
AddEventHandler('onClientResourceStart', function(res) if res == 'striga-core' then register() end end)
```

{% hint style="info" %}

* Every kind has required functions. If one is missing, the adapter is refused and the console names the function.
* `init` is optional for your own adapters.
* If your function errors, core logs it once and returns `nil`. Core does not crash.
* When your resource stops, the adapter is removed and core goes back to auto.
* When striga-core restarts, adapters are cleared. Register again on `onResourceStart` / `onClientResourceStart` (as above).
* A built-in name (`ox`, `qb`, `framework`...) can not be reused. Pick your own name.
  {% endhint %}

When the active adapter changes after core is ready, core fires `striga-core:adapterChanged` with `kind, name`.

{% content-ref url="/pages/5WVqHhlM8RqhxBJzM498" %}
[Frameworks](/docs/striga-core/integration/frameworks.md)
{% endcontent-ref %}


---

# 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://striga.gitbook.io/docs/striga-core/integration.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.
