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

# discord

> Integração centralizada com Discord via webhooks. Expõe exports para enviar embeds e mensagens, usados por dezenas de recursos para logs (conexões, baú, banimentos, dinheiro, tickets, etc.).

O **discord** centraliza a integração com Discord via webhooks. É um recurso simples e sem UI: mantém uma tabela de URLs de webhook nomeados e oferece três exports (`Embed`, `Content`, `Webhook`) para registrar logs no Discord. Também loga automaticamente a seleção de personagem e configura o Rich Presence no cliente. Cada webhook é identificado por uma **chave** (ex.: `"Chest"`, `"Connect"`, `"Ban"`), e os exports resolvem a URL internamente.

## Funcionalidades

<CardGroup cols={2}>
  <Card title="Webhooks nomeados" icon="discord">
    Tabela de URLs identificadas por chave, usadas por dezenas de recursos para logs.
  </Card>

  <Card title="Embeds e mensagens" icon="paper-plane">
    Exports para enviar embeds formatados ou mensagens de texto simples.
  </Card>

  <Card title="Log de personagem" icon="user">
    Loga automaticamente a seleção de personagem no webhook `Characters`.
  </Card>

  <Card title="Rich Presence" icon="gamepad">
    Configura o Rich Presence no cliente ao ativar o personagem.
  </Card>
</CardGroup>

***

## Dependências

<CardGroup cols={2}>
  <Card title="vrp" icon="server">
    `vRP.Identity`, `vRP.AccountInformation`.
  </Card>

  <Card title="PolyZone" icon="draw-polygon" />
</CardGroup>

<Info>
  As globais `ServerName`/`ServerAvatar` (de `vrp/config/Global.lua`) viram `username`/`avatar_url`. O evento `megazord:Screenshot` anexa print.
</Info>

***

## Configuração

Todas as URLs ficam na tabela `Discord` em `server-side/core.lua`. A chave é o nome usado nos exports.

<AccordionGroup>
  <Accordion title="server-side/core.lua → Discord" icon="discord">
    ```lua theme={null}
    local Discord = {
        Characters = "https://discord.com/api/webhooks/.../...",
        Connect = "", Disconnect = "", Deaths = "",
        Ban = "", Kick = "", Money = "", Chest = "",
        -- ... (~50 chaves)
    }
    ```

    Chaves disponíveis: `Characters`, `Connect`, `Disconnect`, `Airport`, `Deaths`, `Gemstone`, `Rename`, `Roles`, `Weaponskins`, `Marketplace`, `Shopping`, `Boxes`, `Battlepass`, `Hackers`, `Skin`, `ClearInv`, `Dima`, `God`, `Item`, `Delete`, `Kick`, `Ban`, `Group`, `AddCar`, `Print`, `Permissions`, `Sprays`, `Daily`, `Premium`, `Chest`, `Propertys`, `Crons`, `Races`, `Pdm`, `Domination`, `Luckywheel`, `Send`, `Inspect`, `Money`.
  </Accordion>
</AccordionGroup>

<Note>
  Chaves com URL vazia (`""`) não enviam nada. Não há token de bot nem guild id neste recurso. Nome/avatar do remetente: `ServerName`/`ServerAvatar` (`vrp/config/Global.lua`). Cor do embed fixa (`6171009`).
</Note>

***

## Exports

Todos **server-side**.

<AccordionGroup>
  <Accordion title="exports[&#x22;discord&#x22;]:Embed(Hook, Message, source)" icon="window-maximize">
    Embed formatado (com data/hora). `source` opcional: se informado, dispara `megazord:Screenshot` para anexar print.

    ```lua theme={null}
    exports["discord"]:Embed("Ban", "**[PASSAPORTE]:** "..Passport.."\n**[MOTIVO]:** "..Reason, source)
    ```
  </Accordion>

  <Accordion title="exports[&#x22;discord&#x22;]:Content(Hook, Message)" icon="message">
    Mensagem de texto simples (sem embed).
  </Accordion>

  <Accordion title="exports[&#x22;discord&#x22;]:Webhook(Hook)" icon="link">
    Retorna a URL crua da chave (ou `""`).
  </Accordion>
</AccordionGroup>

***

## Eventos

| Evento            | Lado     | Descrição                                                                                   |
| ----------------- | -------- | ------------------------------------------------------------------------------------------- |
| `CharacterChosen` | Servidor | Ao escolher personagem, loga `DiscordId Nome Sobrenome Passaporte` no webhook `Characters`. |
| `vRP:Active`      | Cliente  | Ao ativar o personagem, configura o Rich Presence (App ID, asset, texto e botão de link).   |

***

## Customização

<CardGroup cols={3}>
  <Card title="Novo log" icon="plus">
    Crie uma chave em `Discord` com a URL e chame `Embed("SuaChave", ...)`.
  </Card>

  <Card title="Cor dos embeds" icon="palette">
    `color` em `Embed`.
  </Card>

  <Card title="Rich Presence" icon="gamepad">
    Handler `vRP:Active` (`client-side/core.lua`).
  </Card>
</CardGroup>
