Auto-detection with an override
Framework, target and inventory options all default to 'auto' and accept an explicit value. Detection only runs when you leave it on auto.
Config.Framework = 'auto' -- 'esx' | 'qb' | 'qbox' | 'ox_core' | 'standalone'
Config.Target = 'auto' -- 'ox_target' | 'qb-target' | 'drawtext' | 'none'
Config.Inventory = 'auto' -- a specific inventory | 'none'
Fee descriptors
Anything that charges money takes the same shape everywhere. min and max are optional and clamp the result.
{ type = 'flat'|'percent', value = <number>,
min = <number>, max = <number> }
-- 0.5%, floored at $5, capped at $500
{ type = 'percent', value = 0.005, min = 5, max = 500 }
Locales with fallback
Copy a shipped locale file, translate the values, set Config.Locale. Missing keys fall back to English, so a partial translation never breaks the UI.
Server-authoritative by default
The NUI never decides anything. Every call re-resolves the player, permissions and state server-side, and proximity is re-validated per request.