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

# Integrations

> How fxChat plays with other resources and services.

fxChat slots into existing servers without conflict.

## Frameworks

fxChat auto-detects **ESX** and **QBX** at startup. No config needed —
just make sure your framework starts before fxChat in `server.cfg`.

For non-standard forks, open `src/handlers/framework/shared.lua` and add
your adapter. The interface is just `getName(source)`, `getJob(source)`,
`isAdmin(source)`.

## Discord webhooks

Forward every chat message to a Discord channel for moderation logs.

<Steps>
  <Step title="Create the webhook">
    Discord server settings → Integrations → Webhooks → New webhook. Copy
    the URL.
  </Step>

  <Step title="Add it to config.lua">
    ```lua theme={null}
    Config.Webhooks = {
        enabled = true,
        url = 'https://discord.com/api/webhooks/...',
        name = 'fxChat',
        avatar = 'https://i.imgur.com/...',
    }
    ```
  </Step>

  <Step title="Restart">
    `restart fxChat`. Send a message in-game — should land in your Discord
    channel within seconds.
  </Step>
</Steps>

<Tip>
  If it doesn't work, test the URL with `curl` first — see
  [FAQs](/docs/fxchat/faqs#webhook-isnt-sending).
</Tip>

## Fivemanage logs

Same setup, just point the webhook URL at your Fivemanage log endpoint
instead of Discord.

```lua theme={null}
Config.Webhooks = {
    enabled = true,
    url = 'https://api.fivemanage.com/api/logs',
    -- rest of config
}
```

## ox\_lib commands

Every fxChat command is a `lib.addCommand`. If you want your own
commands to look and feel like fxChat's (autocomplete, typed params),
register them the same way and you get the UX for free.

```lua theme={null}
lib.addCommand('vibe', {
    help = 'Set the server vibe',
    params = {
        { name = 'mood', type = 'string', help = 'cool | warm | cursed' },
    },
}, function(source, args)
    exports.fxChat:addMessage(-1, {
        args = ('Server vibe is now %s'):format(args.mood),
        title = 'System',
        special = true,
    })
end)
```

## Phone, voice, HUD resources

No conflicts. fxChat lives in its own NUI plane and doesn't touch voice
or phone events. `pma-voice`, `gksphone`, `lb-phone`, `ps-hud` and the
usual suspects all coexist fine.

## Custom integrations

Need fxChat to talk to something not listed here? The
[server events](/docs/fxchat/events) and
[exports](/docs/fxchat/exports/server) cover most cases. If a hook is missing,
[ping us in Discord](https://discord.gg/HCcpPmNrHH).
