Installation

Quasar Advanced Garages is a premium garage system for FiveM with customizable interiors, license plates, shared garages, and access controls. Create public, private, or job-restricted garages with persistence for vehicles, mods, and fuel.


Download Script

To download the assets needed for this script, you must access the official Cfx.re portal, where all assets purchased through Tebex are managed.

  1. Go to the following link: 🔗 https://portal.cfx.re/assets/granted-assets

  2. Log in with the same Cfx.re account you used to make the purchase.

  3. In the list of granted assets, find and download the following:

    • Garages


Download Dependencies

This script requires some mandatory dependencies to function correctly. Make sure to download and extract them inside your server’s main directory, keeping their original folder structure intact.

This dependency is optional, but if you want to save the visual damage of vehicles, you can download.


Remove Other Scripts

This script may cause conflicts or errors if you use other garage systems on your server. Common examples include qb-garages, esx_garages, or other similar garages scripts. It’s strongly recommended to remove them completely before installation to prevent compatibility or functionality issues.


Server.cfg Placement

This script must always start after es_extended or qb-core, never before. We recommend placing it below them in your server.cfg, ensuring all dependencies are loaded first to prevent errors or unexpected behavior.

If you’re using qs-housing or plan to integrate it with a housing system, make sure to start it right above the housing resource for proper synchronization and functionality.


Database Setup

This script includes an essential database required for its operation. You must import it before starting your server, preferably using HeidiSQL or any other manager compatible with MariaDB/MySQL.

ESX
ALTER TABLE `users` ADD IF NOT EXISTS `shell_garage` TEXT NULL DEFAULT '';

DROP TABLE IF EXISTS `owned_vehicles`;
CREATE TABLE `owned_vehicles` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `owner` VARCHAR(255) NOT NULL COLLATE 'utf8mb4_bin',
    `tag` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
    `plate` VARCHAR(250) NOT NULL COLLATE 'utf8mb4_bin',
    `vehicle` LONGTEXT NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
    `type` VARCHAR(20) NOT NULL DEFAULT 'vehicle' COLLATE 'utf8mb4_bin',
    `garage` VARCHAR(200) NULL DEFAULT 'OUT' COLLATE 'utf8mb4_bin',
    `impound_data` TEXT NULL DEFAULT '' COLLATE 'utf8mb4_bin',
    `favorite` INT(3) NOT NULL DEFAULT '0',
    `stored` TINYINT(4) NULL DEFAULT '0',
    `jobVehicle` VARCHAR(50) NULL DEFAULT '' COLLATE 'utf8mb4_bin',
    `jobGarage` VARCHAR(50) NULL DEFAULT '' COLLATE 'utf8mb4_bin',
    PRIMARY KEY (`id`) USING BTREE
) COLLATE = 'utf8mb4_bin' ENGINE = InnoDB AUTO_INCREMENT = 1;

ALTER TABLE `owned_vehicles` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

DROP TABLE IF EXISTS `player_garages`;
CREATE TABLE `player_garages` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `owner` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci',
    `name` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci',
    `price` INT(11) NOT NULL,
    `coords` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci',
    `shell` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci',
    `type` VARCHAR(50) NULL DEFAULT 'vehicle' COLLATE 'utf8mb4_unicode_ci',
    `holders` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci',
    `available` INT(11) NULL DEFAULT NULL,
    `job` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci',
    PRIMARY KEY (`id`) USING BTREE
) COLLATE = 'utf8mb4_unicode_ci' ENGINE = InnoDB AUTO_INCREMENT = 27;

ALTER TABLE
    `player_garages`
ADD
    COLUMN IF NOT EXISTS `gang` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci';
QBCORE
ALTER TABLE `players`
    ADD COLUMN IF NOT EXISTS `shell_garage` TEXT NULL DEFAULT '';

ALTER TABLE `player_vehicles`
    ADD COLUMN IF NOT EXISTS `tag` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
    ADD COLUMN IF NOT EXISTS `impound_data` TEXT NULL DEFAULT '' COLLATE 'utf8mb4_bin',
    ADD COLUMN IF NOT EXISTS `favorite` INT(3) NOT NULL DEFAULT '0',
    ADD COLUMN IF NOT EXISTS `garage` VARCHAR(200) NULL DEFAULT 'OUT' COLLATE 'utf8mb4_bin',
    ADD COLUMN IF NOT EXISTS `type` VARCHAR(50) NULL DEFAULT 'vehicle' COLLATE 'utf8mb4_bin',
    ADD COLUMN IF NOT EXISTS `jobVehicle` VARCHAR(50) NULL DEFAULT '' COLLATE 'utf8mb4_bin',
    ADD COLUMN IF NOT EXISTS `jobGarage` VARCHAR(50) NULL DEFAULT '' COLLATE 'utf8mb4_bin';

DROP TABLE IF EXISTS `player_garages`;
CREATE TABLE `player_garages` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `owner` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci',
    `name` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci',
    `price` INT(11) NOT NULL,
    `coords` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci',
    `shell` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci',
    `type` VARCHAR(50) NULL DEFAULT 'vehicle' COLLATE 'utf8mb4_unicode_ci',
    `holders` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci',
    `available` INT(11) NULL DEFAULT NULL,
    `job` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci',
    PRIMARY KEY (`id`) USING BTREE
) COLLATE = 'utf8mb4_unicode_ci' ENGINE = InnoDB AUTO_INCREMENT = 27;

ALTER TABLE
    `player_garages`
ADD
    COLUMN IF NOT EXISTS `gang` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci';

Deformation and Repair

Quasar Advanced Garages includes a vehicle damage system that keeps every dent and scratch until the car is repaired. It works on its own — not with ESX or QBCORE repair systems.

You can fix vehicles in three simple ways:

  • By Export: Use

    exports['qs-advancedgarages']:RepairSpecificVehicle(plate)

    or

    exports['qs-advancedgarages']:RepairNearestVehicle()
  • By Command: Use /repairvehicle (admin only). You can change who can use it in server/custom/framework/*.

  • By Item: Enable Config.RepairKit = true in config.lua to use the repair kit item with a short repair animation.

This system makes damage persistent and realistic, perfectly integrated with the garage system.


Remove Vehicles in Map

In Quasar Advanced Garages, vehicles are persistent, so the usual /dv command won’t work — cars will reappear after deletion.

To handle this, two admin-only commands are included:

  • /mdv → Removes the nearest vehicle and sends it to the impound.

  • /mdvall → Sends all active vehicles on the map to the impound.

Use these instead of /dv to properly remove vehicles in servers with persistence enabled.