Installation
Install and start whereiaml_vehicleshop.
1. Dependencies
Make sure these are started before the resource:
ox_liboxmysqlox_target- your framework:
qbx_core(QBox) ores_extended(ESX)
2. Install the resource
- Drop
whereiaml_vehicleshopinto yourresourcesfolder. - Add it to your
server.cfg(or rely on a bracketed folder like[standalone]):
ensure whereiaml_vehicleshop3. Database
The finance table is created automatically on first start. If you prefer to run it
manually, import sql/vehicleshop.sql:
CREATE TABLE IF NOT EXISTS `whereiaml_vehicleshop_finance` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`citizenid` VARCHAR(64) NOT NULL,
`vehicleid` VARCHAR(64) NOT NULL,
`balance` INT NOT NULL,
`payment_amount` INT NOT NULL,
`payments_left` INT NOT NULL,
`missed` INT NOT NULL DEFAULT 0,
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_citizenid` (`citizenid`),
KEY `idx_vehicleid` (`vehicleid`)
);4. Vehicle thumbnails (optional)
The UI shows a thumbnail per vehicle, falling back to a clean card when an image is missing. There are two ways to add images:
Local files — drop a PNG named after the spawn model into web/images/:
web/images/adder.png
web/images/sultan.pngPer-vehicle URL — set the image field on a catalog entry in config/shared.lua to
any https:// or nui:// URL.
Recommended image: transparent PNG, 16:9 aspect ratio (e.g. 640×360), the vehicle centered with empty padding around it, kept under ~300 KB. This matches the preview area and keeps the UI crisp.
After adding images, restart the resource.
5. Rebuilding the UI (only if you edit the React app)
The resource ships with a pre-built UI in web/build. If you modify the React source:
cd whereiaml_vehicleshop/web
pnpm install
pnpm build