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

# APEX Divined Chat

> Talk animations + weapon styles with per-license persistence.

Talk animations while transmitting on voice, plus weapon aim-style overrides — both picked from a configurable in-game UI with a virtual keyboard for binding a toggle key. Per-license DB persistence means the chosen animation + binding follow the player across characters.

## Features

* Auto talk animation — fires while player is transmitting (SaltyChat / Mumble / custom VoIP)
* Weapon style override — Hillbilly / Gang / custom styles via `SetWeaponAnimationOverride` + `gunstyle` decorator so remote players see it
* In-game virtual keyboard for key rebinding — no ESC menu digging
* Per-license persistence — anim + keybind stick across character slots
* Rate-limiting with auto-ban — configurable window + threshold multiplier
* lb-phone & dpemotes auto-detected — suppresses animation while phone/emote active
* Automatic SQL table creation
* en/de localization with real umlauts

## Requirements

<CardGroup cols={2}>
  <Card title="Required" icon="circle-check">
    `es_extended`, `ox_lib`, `oxmysql`, plus a voice system firing `SaltyChat_TalkStateChanged` or `mumble:talkingStateChanged` (or a custom `Hooks.IsVoiceTalking`).
  </Card>

  <Card title="Optional" icon="puzzle-piece">
    `lb-phone` (auto-suppress while open), `dpemotes` (auto-suppress while emoting)
  </Card>
</CardGroup>

## Configuration

```lua config.lua theme={null}
Config.Commands               = { keyboard = 'dckey', animation = 'talkstyles', toggle = 'dctoggle' }
Config.RateLimitWindow        = 10
Config.MaxPostRequests        = 3
Config.MaxSaveRequests        = 5
Config.BanThresholdMultiplier = 3
```

Animation list, weapon styles, skip-list, and block-list are all configurable. Optional `Config.UseToggleMode` for `/dctoggle`.

## Hooks

See [Hooks reference / Divined Chat](/hooks/apex-divined-chat). Key hooks: `Hooks.IsVoiceTalking`, `Hooks.IsPhoneOpen`, `Hooks.IsPlayerInEmote`, `Hooks.IsTalkAnimWhileEmoteEnabled`, `Hooks.WaitForResources`, `Hooks.OnPlayerBan`.

## Resource info

<Note>
  Code accessible: `config.lua`, `hooks.lua`, `locales/*`. Approximately 1100 lines of Lua + NUI. English + German.
</Note>
