Skip to main content
Two files. Edit them, then restart nex_donatorsystem.
  • configs/config.lua — shared, safe to look at on the client.
  • configs/sv_config.lua — server-only, keep your Tebex secret and webhooks in here.
Tebex package mapping has its own page — see Tebex setup.

Framework & inventory

Config.Framework    = 'auto'   -- 'auto' | 'qbox' | 'qbcore' | 'esx' | 'standalone'
Config.Inventory    = 'auto'   -- 'auto' | 'ox' | 'qb' | 'qs' | 'ps' | 'framework'
Config.NotifyScript = 'auto'   -- 'auto' | 'oxlib' | 'qbcore' | 'esx' | 'okok' | 'native'
auto picks the first supported resource that’s started. Override only if you run multiple frameworks or inventories side by side and want to force one.

Branding

Config.ShopName     = 'Donator Shop'   -- header + webhook embeds + {shop} placeholder
Config.CurrencyName = 'Coins'          -- replaces "Coins" everywhere + {currency} placeholder
Config.Locale       = 'en'             -- 'en' 'de' 'es' 'fr' 'it' 'nl' 'pl' 'pt'
Config.Logo         = ''               -- optional sidebar logo URL (any PNG/JPG/SVG)
Config.CurrencyIcon = ''               -- optional currency icon (square 64x64+ image URL)
Config.StoreURL     = ''               -- your Tebex store URL — shows "Open Store" button
The Customize UI page in the admin panel lets you change colours, background image, blur, card opacity, and the currency icon live without touching the config.

Open command + keybind

Config.Command        = 'donatorshop'      -- chat command players type to open the shop
Config.Key            = 'F9'               -- default keybind
Config.KeyDescription = 'Open Donator Shop' -- label in FiveM's Key Bindings menu
Each player can rebind the key under F1 → Settings → Key Bindings → FiveM.

Test drive

Config.TestDriveDuration      = 120                                       -- seconds
Config.TestDriveSpawnDistance = 5.0                                       -- metres in front of player
Config.TestDriveLocation      = vector4(-1247.577, -3385.998, 13.932, 328.934)
Config.TestDriveHUDPosition   = 'top'                                     -- top | top-left | top-right | bottom | bottom-left | bottom-right
Config.TestDriveBucketBase    = 2000                                      -- routing-bucket base
Each test driver is moved into routing bucket (base + serverId) for the duration of the drive, so they’re isolated from traffic, other players, and other test drivers. If another resource on your server already uses 2000–3024, bump the base.

Vehicle keys

Auto-detected. When Config.GiveVehicleKeys = true (the default), every purchased or test-drive vehicle is registered with whichever keys script is running. Supported out of the box:
Config.GiveVehicleKeys   = true
Config.VehicleKeysScript = 'auto'   -- 'auto' | 'qbx' | 'qb' | 'wasabi' | 'mrnewb' | 'qs' | 'renewed' | 't1ger' | 'mono' | 'jaksam' | 'none'
Set Config.GiveVehicleKeys = false if you handle ownership another way.

Admin access

Config.Admins = {
    'license:00b20024bf205fcf575f56d61c1a2999c12821af',
    -- 'license:abcdef0123456789...',
}
Anyone whose license: identifier is in this list sees the Admin tab in the shop sidebar and can run /givecoins and /setcoins in-game. Get a player’s license from your txAdmin: tx admin lookup <name>, or from getplayerlist while they’re online.

Daily deal reset

Config.DealResetHour = 0   -- server-time hour (0-23) when all active deals get wiped
Default 0 = midnight. Pair this with your usual promotion rotation.

Item image source

When an admin creates a package without explicitly setting an image URL, the script builds one from this prefix + the item key:
Config.ItemImagePath = 'nui://ox_inventory/web/images/'
For other inventories:
  • nui://qb-inventory/html/images/
  • nui://ps-inventory/html/images/
  • nui://qs-inventory/html/images/
Vehicles always fall back to https://docs.fivem.net/vehicles/<spawn>.webp, so you only need a manual URL for non-stock or custom models.

Discord webhooks

Server-only — set these in configs/sv_config.lua.
ServerConfig.Webhooks = {
    purchases = '',   -- in-shop purchases + deal redemptions
    redeems   = '',   -- Tebex order redemptions (real money)
    admin     = '',   -- admin actions: creates, edits, deletes, give/set
}

ServerConfig.WebhookName   = 'Donator Shop'
ServerConfig.WebhookAvatar = ''   -- image URL

ServerConfig.WebhookColors = {
    purchases = 11206152,   -- dim red
    redeems   = 3066993,    -- emerald
    admin     = 15548997,   -- orange
}
How to create a webhook in Discord:
  1. Right-click a channel → Edit Channel
  2. IntegrationsWebhooksNew Webhook
  3. Copy the URL into the relevant slot.
All three slots can point at the same channel if you don’t want to split them. Leave a URL blank to disable that channel.

Debug

Config.Debug = true
Prints extra diagnostics on the server console (cache loads, Tebex API responses, etc). Useful for first install — turn off in prod when everything’s stable.