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

# Licensing & escrow

> How APEX scripts are protected and what you can edit.

APEX uses CFX's escrow system. The asset is locked to your server license — but the parts you actually need to edit are deliberately left out of the escrow envelope.

## What's in escrow

The encrypted Lua (game logic, NUI bridges, server validation) is locked. You can't read it, can't copy it, can't redistribute it. Each Tebex purchase grants a single server-license use.

## What's outside escrow

Every APEX script lists its `escrow_ignore` files in `fxmanifest.lua`. The standard set is:

* `config.lua` — positions, prices, cooldowns, feature toggles
* `hooks.lua` — every external integration point (notify, anti-cheat, dispatch, garage, quest, license, …)
* `locales/*.lua` — all user-facing strings, with full umlaut support
* `html/*` or `web/*` — UI assets (where the script ships a NUI)

Some scripts (`apex-crafting`, `apex-dispatch-app`, `apex-solarpark`) ship more in `escrow_ignore` — see the per-script page.

## The hooks philosophy

<Tip>
  APEX scripts never assume your server's notify, anti-cheat, dispatch, or quest stack. Every external touch goes through a hook in `hooks.lua` that you can replace without ever decrypting anything.
</Tip>

A typical `hooks.lua` exposes:

* **Notification hooks** — `Hooks.ShowClientNotify`, `Hooks.OnServerNotify`, `Hooks.ShowHelpText` / `Hooks.HideHelpText`
* **Anti-cheat hook** — `Hooks.BanPlayer` / `Hooks.OnAntiCheatViolation`, default `DropPlayer`
* **Audit log hook** — `Hooks.OnAuditLog`, default `lib.logger`
* **Permission hook** — `Hooks.HasManagerPermission` / `Hooks.HasPermission` / `Hooks.IsAuthorized`
* **Domain hooks** — `Hooks.ImpoundVehicle`, `Hooks.OnDispatchUpdate`, `Hooks.HasFlightLicense`, `Hooks.OpenFishmarket`, …

Every hook ships with a sensible ESX / ox\_lib default, so scripts work standalone. Override anything you want.

## Updating

When a new version drops, your existing `config.lua`, `hooks.lua`, and `locales/*.lua` carry over — only the encrypted core changes. Diff the new `config.lua` for added keys, then restart.

<Warning>
  If you've extensively edited `config.lua` or `hooks.lua`, keep a backup before re-importing.
</Warning>

## Support

Bug reports, integration questions, and feature requests go through Discord. Refunds are not available once the asset is downloaded — Tebex's standard digital-goods policy applies.
