> ## 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.

# WC_EMOTES_V7

> Biblioteca de emotes, danças, estilos de andar, expressões faciais e ações (mãos ao alto, apontar, agachar, rastejar, binóculos, câmera de notícias). Baseada no rpemotes-reborn com pacotes de animações customizadas WC.

O **WC\_EMOTES\_V7** é um recurso de **terceiros** (rpemotes-reborn / WC Emotes V7) integrado ao Five Network. Declara `provide "rpemotes"`, substituindo o sistema de emotes padrão, e funciona de forma autônoma (não depende do vRP).

## Funcionalidades

<CardGroup cols={2}>
  <Card title="Emotes e danças" icon="person-walking">
    Biblioteca completa de emotes, danças e props, incluindo pacotes customizados WC.
  </Card>

  <Card title="Estilos e expressões" icon="face-smile">
    Estilos de andar e expressões faciais persistentes entre spawns.
  </Card>

  <Card title="Ações de roleplay" icon="hands">
    Mãos ao alto, apontar, agachar, rastejar, binóculos e câmera de notícias.
  </Card>

  <Card title="Emotes compartilhados" icon="people-arrows">
    `/e2` sincroniza emotes entre dois jogadores próximos.
  </Card>
</CardGroup>

<Info>
  As animações ficam em `client/AnimationList.lua`, `client/AnimationListCustom.lua` e `client/AnimationListWC.lua` (categorias WC: `White2do/3ro/5to/6to/7mo`, `FuzilEmotes`, `Coredances`).
</Info>

***

## Dependências

<CardGroup cols={2}>
  <Card title="OneSync" icon="network-wired">
    `/onesync`
  </Card>

  <Card title="Asset Packs" icon="box-open">
    `/assetpacks`
  </Card>
</CardGroup>

<Info>
  FXServer build `>= 6683`. `Config.Framework` opcional (`'qb-core'`/`'esx'`/`false`). No Five Network está `false` (standalone).
</Info>

***

## Configuração

<AccordionGroup>
  <Accordion title="config.lua — opções principais" icon="sliders">
    | Opção                                                                                                                         | Descrição                              |
    | ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- |
    | `MenuLanguage`                                                                                                                | Idioma do menu (padrão `'pt'`).        |
    | `MenuKeybind`                                                                                                                 | Tecla do menu (padrão `F3`).           |
    | `CancelEmoteKey` / `FavKeybind`                                                                                               | Cancelar (`X`) / favorito (`capital`). |
    | `Keybinding` / `KeybindKeys`                                                                                                  | Binds de emotes nas NUMPAD4–9.         |
    | `WalkingStylesEnabled`, `ExpressionsEnabled`, `AnimalEmotesEnabled`, `SharedEmotesEnabled`, `AdultEmotesDisabled`             | Liga/desliga categorias.               |
    | `AllowedInCars`, `AllowInWater`, `DisarmPlayer`, `CancelPreviousEmote`                                                        | Regras de uso.                         |
    | `RagdollEnabled`, `CrouchEnabled`, `CrawlEnabled`, `PointingEnabled`, `HandsupEnabled`, `BinocularsEnabled`, `NewscamEnabled` | Ações e teclas.                        |
  </Accordion>
</AccordionGroup>

***

## Comandos

| Comando                                     | Função                                              |
| ------------------------------------------- | --------------------------------------------------- |
| `/emote <nome> [var]`                       | Toca um emote/dança/prop/animal (`var` = variação). |
| `/emote c` / `/emotecancel` (`X`)           | Cancela o emote.                                    |
| `/emotes`, `/emote help`                    | Lista os emotes.                                    |
| `/emoteui` (`F3`), `/emotemenu`             | Abre o menu.                                        |
| `/emotefav` (`capital`)                     | Emote favorito.                                     |
| `/e2 <nome>`                                | Emote compartilhado com o mais próximo.             |
| `/walk <estilo>`, `/walks`                  | Estilos de andar.                                   |
| `/mood <expr>`, `/moods`                    | Expressões faciais.                                 |
| `/crouch`, `/crawl`, `/pointing` (`B`)      | Agachar / rastejar / apontar.                       |
| `/binoculars`, `/newscam`                   | Binóculos / câmera de notícias.                     |
| `/emotebind`, `/emotebinds`, `/emotedelete` | Binds (se `Config.Keybinding = true`).              |

***

## Exports (client)

```lua theme={null}
exports['WC_EMOTES_V7']:EmoteCommandStart(emoteName, textureVariation)
exports['WC_EMOTES_V7']:EmoteCancel()
exports['WC_EMOTES_V7']:IsPlayerInAnim()        -- nome do emote atual ou nil
exports['WC_EMOTES_V7']:IsPlayerInHandsUp()
exports['WC_EMOTES_V7']:IsPlayerCrouched() / :IsPlayerCrawling() / :IsPlayerPointing()
exports['WC_EMOTES_V7']:setWalkstyle(style) / :getWalkstyle()
exports['WC_EMOTES_V7']:toggleBinoculars() / :toggleNewscam()
```

***

## Eventos

### Recebidos no servidor

| Evento                   | Descrição                                                                      |
| ------------------------ | ------------------------------------------------------------------------------ |
| `ServerEmoteRequest`     | Pedido de emote compartilhado (`/e2`); repassa ao alvo.                        |
| `ServerValidEmote`       | Confirma/valida o emote compartilhado entre os dois jogadores.                 |
| `ServerEmoteCancel`      | Cancela o emote compartilhado no alvo.                                         |
| `rpemotes:ptfx:sync`     | Sincroniza efeitos de partícula (PTFX) entre clientes.                         |
| `rpemotes:ptfx:syncProp` | Sincroniza o prop em rede.                                                     |
| `rp:ServerKeybindExist`  | Verifica se o jogador já tem keybinds salvos (se `Config.PersistentKeybinds`). |
| `rp:ServerKeybindCreate` | Cria o registro de keybinds do jogador.                                        |
| `rp:ServerKeybindGrab`   | Recupera os keybinds salvos do jogador.                                        |
| `rp:ServerKeybindUpdate` | Atualiza um keybind (tecla/emote).                                             |

### Cliente: sincronização

| Evento                      | Descrição                                                  |
| --------------------------- | ---------------------------------------------------------- |
| `SyncPlayEmote`             | Reproduz o emote sincronizado em outro jogador.            |
| `SyncPlayEmoteSource`       | Reproduz o emote a partir da origem (emote compartilhado). |
| `SyncCancelEmote`           | Cancela o emote sincronizado.                              |
| `ClientEmoteRequestReceive` | Recebe um convite de emote compartilhado.                  |

### Cliente: menu e ações

| Evento                                            | Descrição                                                    |
| ------------------------------------------------- | ------------------------------------------------------------ |
| `rp:Update`                                       | Atualiza o estado do menu de emotes.                         |
| `rp:RecieveMenu`                                  | Recebe/abre o menu de emotes.                                |
| `playerSpawned`                                   | Reaplica estilo de andar e expressão persistente ao spawnar. |
| `onResourceStart` / `onResourceStop`              | Inicialização e limpeza (andar, binóculos, news cam).        |
| `CEventOpenDoor` / `CEventPlayerCollisionWithPed` | Eventos de jogo que cancelam o emote atual.                  |

### Integração de framework (opcional)

Eventos `animations:client:*` (`PlayEmote`, `BindEmote`, `EmoteBinds`, `EmoteDelete`, `EmoteMenu`, `ListEmotes`, `Walk`, `ListWalks`, `EmoteCommandStart`, `ToggleCanDoAnims`) e os hooks de carregamento (`QBCore:Client:OnPlayerLoaded`, `esx:playerLoaded`, etc.) só são registrados quando `Config.Framework` está definido (`'qb-core'`/`'esx'`). No Five Network está `false` (standalone), então não são usados.

***

## Customização

* Edite emotes em `client/AnimationList*.lua` (`{ Dict, Anim, "Nome", AnimationOptions = {...} }`).
* `AnimationOptions` suporta props, PTFX, loop, emotes compartilhados, duração e emote de saída.
* Teclas/categorias em `config.lua`; traduções em `locales/*.lua`.
