> ## Documentation Index
> Fetch the complete documentation index at: https://docs.temacstore.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Integrando Scripts FiveM com ESX e QBCore: Guia Completo

> Configure a integração dos scripts FiveM com ESX e QBCore, incluindo compartilhamento de dados de jogador, jobs e inventário entre recursos.

Os scripts foram desenvolvidos para funcionar nativamente com os dois principais frameworks de roleplay — ESX e QBCore. Esta página explica como a integração funciona, o que é configurável e como resolver conflitos quando você usa múltiplos recursos.

## Detecção Automática

Com `Config.Framework = 'auto'`, o script identifica na inicialização qual framework está ativo e configura a integração adequada. Você pode verificar qual framework foi detectado ativando o modo debug:

```lua config.lua theme={null}
Config.Debug = true  -- Exibe no console: '[meu-script] Framework detectado: esx'
```

## Integração com ESX

<Steps>
  <Step title="Confirme a versão do ESX">
    O script requer ESX 1.9.0 ou superior. Verifique a versão no `fxmanifest.lua` do es\_extended:

    ```lua theme={null}
    -- fxmanifest.lua do es_extended
    version '1.9.0'
    ```
  </Step>

  <Step title="Configure o framework">
    No `config.lua` do script:

    ```lua theme={null}
    Config.Framework = 'esx'  -- ou 'auto'
    ```
  </Step>

  <Step title="Configure a ordem no server.cfg">
    O script deve carregar após o ESX:

    ```cfg theme={null}
    ensure es_extended
    ensure oxmysql
    ensure meu-script   # Sempre depois do framework
    ```
  </Step>
</Steps>

## Integração com QBCore

<Steps>
  <Step title="Confirme que o qb-core está ativo">
    Verifique no `server.cfg` que o `qb-core` está sendo iniciado antes do script.
  </Step>

  <Step title="Configure o framework">
    ```lua config.lua theme={null}
    Config.Framework = 'qbcore'  -- ou 'auto'
    ```
  </Step>

  <Step title="Mapeie os jobs (se necessário)">
    Se os nomes dos jobs no seu servidor são diferentes dos padrões, mapeie-os:

    ```lua config.lua theme={null}
    Config.JobMapping = {
        ['police'] = 'policia',     -- Nome no script = Nome no servidor
        ['ambulance'] = 'samu',
    }
    ```
  </Step>
</Steps>

## Integrações Opcionais

Alguns scripts oferecem suporte a recursos populares de terceiros:

| Recurso       | Configuração                   | Finalidade            |
| ------------- | ------------------------------ | --------------------- |
| ox\_lib       | `Config.UseOxLib = true`       | Notificações e menus  |
| ox\_target    | `Config.UseTarget = true`      | Interação por target  |
| ox\_inventory | `Config.UseOxInventory = true` | Sistema de inventário |
| qb-target     | `Config.UseQBTarget = true`    | Target do QBCore      |

<Warning>
  Ative apenas as integrações cujos recursos estão instalados e rodando no seu servidor. Ativar uma integração sem o recurso correspondente causará erros na inicialização.
</Warning>

## Resolução de Conflitos

<Accordion title="Dois scripts modificam o mesmo dado">
  Se dois scripts tentam modificar o mesmo dado do jogador (ex: dinheiro), configure um deles como "primário" e desative a função no outro via `config.lua`. Consulte a documentação de cada script para opções de desativação de módulos específicos.
</Accordion>

<Accordion title="Events sendo interceptados por outro script">
  Use nomes de eventos únicos configuráveis no `config.lua`:

  ```lua theme={null}
  Config.EventPrefix = 'meuscripts'  -- Padrão: nome do recurso
  ```
</Accordion>
