Config.PermissionMode supports ace (default) or custom. There is no built-in QBCore/ESX job mode.
Logical actions
Viewing displays does not require an ACE. Full sync, live cache updates, page scrolling, map panning, and eligible bodycam subscriptions are public and remain subject to server-side validity, distance, routing bucket, interior, cooldown, and rate-limit checks.
The server supplies a permission snapshot to build the menu, then revalidates every player action. A No permission entry or locally altered client grants no authority.
Administrator
Menu-only group
Dispatcher management
ACE inheritance
Custom mode
forceRefresh logical action resolves to the refresh backend action. The callback runs inside pcall. Only boolean true allows; errors and other return values deny.
Server validation
Depending on the request, the server checks:- The current permission
- Display existence and maximum count
- Model allowlist
- Name, enum, page, and numeric ranges
- At least one enabled page
- Player proximity
- Routing bucket and interior context
- Page/action validity and cooldown
- Per-player event rate limits

