Before You Begin#
Before installing Dealership Creator, make sure your server meets the minimum requirements. Only two resources are mandatory; everything else is optional and detected on its own.
Requirement | Status | Notes |
|---|---|---|
| Required | Database access. The schema installs itself. |
| Required | Callbacks and shared helpers. |
Framework | Optional |
|
Target | Optional |
|
Vehicle keys | Optional | Hands the buyer the keys of the car they just bought. |
Inventory | Optional | Needed only for an item currency (casino chips, a gold bar). |
Banking / Phone | Optional | Company accounts for job-owned shops, and phone notifications. |
| Optional | Only for the photo studio that photographs the catalogue. |
Everything framework- or third-party-specific sits behind a small bridge file, and the resource picks the right one by looking at what is already running:
Layer | Detection order |
|---|---|
Framework |
|
Target |
|
Inventory |
|
Keys |
|
Banking |
|
Phone |
|
Every optional integration degrades silently. If a resource is missing, that feature simply stands down — nothing errors. Integrations has the details and how to pin one by hand.
github.comReleases · overextended/oxmysqlMySQL resource for FXServer.github.comReleases · overextended/ox_libA FiveM resource and script library for Lua and JS.Downloading Dealership Creator#
After purchasing Dealership Creator, the resource is automatically linked to your CFX Portal account.
Sign in to the CFX Portal using the same account used during checkout, open Granted Assets, and download Dealership Creator.
After extracting the download, you should have the following folder:
qs-dealership/
├── config/ -- what you may edit
├── client/custom/ -- bridges to other resources (editable)
├── server/custom/ -- bridges to other resources (editable)
├── locales/ -- en · es · fr · de · pt
├── music/ -- the thirteen shipped tracks
├── docs/ -- this manual, offline
├── web/build/ -- the interface, already built
└── CHANGELOG.mdThe folder must be named
qs-dealership. The database tables, the admin permission (qs-dealership.admin) and every export are derived from the folder name, so a renamed copy stops matching its own data.
Installing the Resource#
Move the qs-dealership folder into your server's resources directory. It can live anywhere inside it, including a category folder:
resources/
└── [qs]/
└── qs-dealership/Once copied, open your server.cfg and make sure every dependency — and everything it should detect — starts before Dealership Creator:
ensure oxmysql
ensure ox_lib
# Framework
ensure qb-core
# ensure qbx_core
# ensure es_extended
# ensure ox_core
# ensure ND_Core
# Target, inventory, keys, banking, phone, screenshots
ensure ox_target
ensure ox_inventory
ensure qs-vehiclekeys
ensure screenshot-basic
ensure qs-dealershipThe loading order matters. Detection only sees resources that are already started, so a target or inventory that starts after Dealership Creator is not found and that part runs standalone.
The Database#
There is no SQL file to import. Dealership Creator creates its own tables on first start, all prefixed qs_dealership_, and writes its starter content: eight working dealerships — each placed, staffed by a salesperson and stocked — over a catalogue of 528 priced vehicles.
Tables | Hold |
|---|---|
| The dealerships, who owns them, and their staff. |
| The vehicle catalogue, each shop's stock and prices, and vehicle pictures. |
| The sales ledger, finance plans, hires and waiting lists. |
| Restock runs, and the book of every unit delivered. |
| Furniture and display cars on each forecourt. |
| Every saved version of your settings, each player's preferences, and their favourite cars. |
The starter content is written once, into empty tables only, so it never lands on top of a server that already has its own. Delete a starter dealership and it stays deleted. Migrations are tracked in the suite-wide
qs_scripts_migrationstable and each one runs exactly once.
Claiming Admin Access#
The creator is where dealerships are placed and the server is configured, so it is behind an admin check. Type /qsdealershipadmin in game: on a fresh server it opens an access screen rather than the creator, showing your identifier and the exact line to paste. Any of these routes makes you an admin:
The usual route. Add this line to server.cfg — the access screen prints it with your own identifier already filled in:
add_ace identifier.license:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx qs-dealership.admin allowRestart the resource after adding it. To accept aces your staff already have — command (txAdmin's admin group) or group.admin — add them to Config.AdminAces in config/server/admins.lua.
A plain list of identifiers in config/server/admins.lua. It accepts any identifier the player is known by — license:, discord:, steam:, fivem:, or the framework's own citizen id.
Config.Admins = {
'license:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'discord:123456789012345678',
}Automatic, nothing to configure. QBCore and Qbox admin and god, ESX admin, superadmin, mod and owner, and group.admin elsewhere are recognised as admins.
Not sure why somebody is or is not getting in? In the server console:
qs-dealership:checkadmin <server id>It prints every route it tested, the aces it checked and the identifiers it compared.
Configuring the Resource#
Almost nothing is configured in files. Tax, test drives, plates, delivery, restock economics, which currencies are charged — all of it lives in the in-game Settings, changed live and kept as versions. The files are for plumbing:
File | Contents |
|---|---|
| Detection overrides, the language, the two commands, the keybind, debug. |
| The currencies that exist on your server: cash, bank, items and your own. |
| The furniture catalogue — every prop, its page and its price. |
| The shipped showroom playlist. |
| The camera's feel: shots, the tour, the arrival, the test-drive roll-out, the photo studio's spot. |
| Client feel: target distance, markers, the free camera's speeds and keys. |
| The admin identifier list and the accepted aces. |
| Discord logging, one URL per category. |
The values worth reviewing first:
Config.Locale = 'en' -- en · es · fr · de · pt
Config.Command = 'qsdealership' -- the player's window
Config.AdminCommand = 'qsdealershipadmin' -- the creator's window
Config.Keybind = 'F6' -- opens the player's window
Config.Debug = false -- extra console outputEditing
server/modules/main/defaults.luaon a running server does nothing. That file is only the seed for a brand-new server's settings; after the first start, the Settings pages in game are the configuration.
Verifying the Installation#
After completing the installation, restart your server and read the boot summary in the console. Each line says what was picked for that layer:
[compat] Framework: qb (auto)
[compat] Target: ox_target (auto)
[compat] Inventory: ox_inventory (auto)
[compat] Keys: qs-vehiclekeys (auto)(auto) means it found that resource running and picked it. vanilla means it found nothing and runs standalone for that part — if you do have that resource, move it above ensure qs-dealership.
Then join your server and work through the first loop:
Visit a starter dealership
Premium Deluxe Motorsport is on the map with a blip. Walk up to the salesperson and press the prompt: the curtain closes and you are standing beside a car.
Buy a car
Press
Bfor the checkout, choose how to pay and confirm. The handover plays and you drive away at the wheel.Open the creator
/qsdealershipadminopens on the Overview — what the server holds and what needs attention. From there, Usage covers placing a dealership of your own.
Nothing needs a restart from here on. Every price, tax, permission, feature and dealership is edited in game.



