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

# Divined Chat hooks

> Every hook exposed by apex-divined-chat/hooks.lua.

Source: `apex-divined-chat/hooks.lua` (unencrypted).

## Server hooks

<AccordionGroup>
  <Accordion title="Hooks.OnPlayerBan(source, reason)" icon="ban">
    Default `DropPlayer(source, reason)`.
  </Accordion>

  <Accordion title="Hooks.OnAuditLog(source, action, details)" icon="file-lines">
    Default `lib.logger(source, 'apex-divined-chat', details, action)`.
  </Accordion>
</AccordionGroup>

## Client hooks

<AccordionGroup>
  <Accordion title="Hooks.ShowClientNotify(title, message, type)" icon="bell">
    Default `lib.notify`.
  </Accordion>

  <Accordion title="Hooks.IsPhoneOpen()" icon="mobile">
    Default — `pcall` `exports[Config.ExternalResources.phone]:IsPhoneOpen()`.
  </Accordion>

  <Accordion title="Hooks.IsPlayerInEmote()" icon="person-running">
    Default — `pcall` `exports[Config.ExternalResources.emotes]:IsPlayerInAnim()`.
  </Accordion>

  <Accordion title="Hooks.IsTalkAnimWhileEmoteEnabled()" icon="comment-dots">
    Default `true`. Whether to play talk anim over emotes.
  </Accordion>

  <Accordion title="Hooks.IsVoiceTalking(ped)" icon="microphone">
    Default — returns `Hooks.VoiceTalkingState`. The hook auto-listens to `SaltyChat_TalkStateChanged` and `mumble:talkingStateChanged`.
  </Accordion>

  <Accordion title="Hooks.WaitForResources()" icon="hourglass">
    Default — waits for the configured phone resource to be `started`.
  </Accordion>
</AccordionGroup>
