Quasar Housing is an advanced housing system for FiveM that lets players buy, sell, and fully customize properties with drag-and-drop furniture, RGB lighting, wardrobes, and stashes. Featuring real-time admin tools, realistic interiors, and integration with other Quasar systems, it delivers a seamless, immersive experience that redefines property management in any roleplay server.
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.
Log in with the same Cfx.re account you used to make the purchase.
In the list of granted assets, find and download the following:
Housing [main]
Housing [props]
These files include the models, materials, and visual resources required for the proper operation of the housing system.
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 script may cause conflicts or errors if you use other housing systems on your server.
Common examples include qb-houses, esx_property, or other similar housing 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 in your server.cfg, ensuring that all its dependencies are started first to prevent errors or unexpected behavior.
Database Setup
Avoid using tools like XAMPP or other non-optimized local servers, as they may cause connection errors.
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
DROP TABLE IF EXISTS `houselocations`;
DROP TABLE IF EXISTS `player_houses`;
DROP TABLE IF EXISTS `house_rents`;
DROP TABLE IF EXISTS `house_objects`;
DROP TABLE IF EXISTS `house_plants`;
ALTER TABLE
`users`
ADD
IF NOT EXISTS `inside` VARCHAR(50) NULL DEFAULT '';
INSERT IGNORE INTO
`addon_inventory` (name, label, shared)
VALUES
('propery', 'Property', 0);
INSERT IGNORE INTO
`datastore` (name, label, shared)
VALUES
('propery', 'Property', 0);
INSERT INTO `jobs` (`name`, `label`, `whitelisted`) VALUES
('realestate', 'Real Estate Agency', 1);
INSERT INTO `job_grades` (`job_name`, `grade`, `name`, `label`, `salary`, `skin_male`, `skin_female`) VALUES
('realestate', 0, 'agent', 'Agent', 400, '{}', '{}'),
('realestate', 1, 'senior_agent', 'Senior Agent', 600, '{}', '{}'),
('realestate', 2, 'manager', 'Manager', 800, '{}', '{}'),
('realestate', 3, 'boss', 'Boss', 1000, '{}', '{}');
INSERT INTO `addon_account` (`name`, `label`, `shared`) VALUES
('society_realestate', 'Real Estate Society', 1);
INSERT INTO `addon_account_data` (`account_name`, `money`) VALUES
('society_realestate', 0);
CREATE TABLE IF NOT EXISTS `houselocations` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL DEFAULT '',
`label` VARCHAR(255) NULL DEFAULT NULL,
`coords` TEXT NULL DEFAULT NULL,
`owned` TINYINT(2) NULL DEFAULT NULL,
`price` INT(11) NULL DEFAULT NULL,
`defaultPrice` INT(11) NULL DEFAULT NULL,
`tier` TINYINT(2) NULL DEFAULT NULL,
`garage` TEXT NULL DEFAULT NULL,
`garageShell` TEXT NULL DEFAULT NULL,
`creator` VARCHAR(50) NULL DEFAULT NULL,
`mlo` TEXT NULL DEFAULT NULL,
`ipl` TEXT NULL DEFAULT NULL,
`console` INT(11) NULL DEFAULT NULL,
`board` TEXT NULL DEFAULT NULL,
`for_sale` INT(11) NULL DEFAULT '1',
`extra_imgs` TEXT NULL DEFAULT NULL,
`description` TEXT NOT NULL DEFAULT '',
`creatorJob` VARCHAR(50) NULL DEFAULT NULL,
`blip` TEXT NULL DEFAULT NULL,
`upgrades` TEXT NULL DEFAULT NULL,
`apartmentCount` INT(11) NULL DEFAULT NULL,
PRIMARY KEY (`name`) USING BTREE,
INDEX `name` (`name`) USING BTREE,
INDEX `id` (`id`) USING BTREE
)
COLLATE='utf8mb4_unicode_ci'
;
CREATE TABLE IF NOT EXISTS `player_houses` (
`id` INT(255) NOT NULL AUTO_INCREMENT,
`house` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`citizenid` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`owner` VARCHAR(46) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`keyholders` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`stash` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`outfit` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`logout` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`decorateStash` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`charge` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`credit` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`creditPrice` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`console` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`decorateCoords` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`rented` INT(11) NULL DEFAULT NULL,
`rentPrice` INT(11) NULL DEFAULT NULL,
`rentable` INT(11) NULL DEFAULT NULL,
`purchasable` INT(11) NULL DEFAULT NULL,
`vaultCodes` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
PRIMARY KEY (`id`) USING BTREE,
INDEX `house` (`house`) USING BTREE,
INDEX `owner` (`owner`) USING BTREE,
INDEX `citizenid` (`citizenid`) USING BTREE
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=3
;
CREATE TABLE IF NOT EXISTS `house_rents` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`house` VARCHAR(50) NOT NULL DEFAULT '' COLLATE 'utf8mb4_general_ci',
`identifier` VARCHAR(80) NOT NULL DEFAULT '' COLLATE 'utf8mb4_general_ci',
`payed` INT(11) NOT NULL DEFAULT '0',
`date` TIMESTAMP NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`id`) USING BTREE
) COLLATE = 'utf8mb4_general_ci' ENGINE = InnoDB AUTO_INCREMENT = 1;
CREATE TABLE IF NOT EXISTS `house_objects` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`creator` VARCHAR(50) NOT NULL DEFAULT '0' COLLATE 'latin1_swedish_ci',
`model` VARCHAR(50) NOT NULL DEFAULT '0' COLLATE 'latin1_swedish_ci',
`coords` TEXT NOT NULL COLLATE 'latin1_swedish_ci',
`house` VARCHAR(80) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`construction` VARCHAR(50) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`created` TIMESTAMP NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`) USING BTREE
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
AUTO_INCREMENT=1
;
ALTER TABLE `house_objects`
ADD IF NOT EXISTS `construction` VARCHAR(50) NULL DEFAULT NULL,
ADD IF NOT EXISTS `created` TIMESTAMP NULL DEFAULT current_timestamp()
;
DROP TABLE IF EXISTS `house_plants`;
CREATE TABLE IF NOT EXISTS `house_plants` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`building` varchar(50) DEFAULT NULL,
`stage` varchar(50) DEFAULT 'stage-a',
`sort` varchar(50) DEFAULT NULL,
`gender` varchar(50) DEFAULT NULL,
`food` int(11) DEFAULT 100,
`health` int(11) DEFAULT 100,
`progress` int(11) DEFAULT 0,
`coords` text DEFAULT NULL,
`plantid` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `building` (`building`),
KEY `plantid` (`plantid`)
) ENGINE = InnoDB AUTO_INCREMENT = 7123 DEFAULT CHARSET = utf8mb4;
ALTER TABLE `player_houses`
CHANGE COLUMN IF EXISTS `identifier` `owner` VARCHAR(46) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci';
ALTER TABLE `houselocations`
ADD IF NOT EXISTS `blip` TEXT NULL DEFAULT NULL,
ADD IF NOT EXISTS `upgrades` TEXT NULL DEFAULT NULL,
ADD IF NOT EXISTS `apartmentCount` TEXT NULL DEFAULT NULL,
ADD IF NOT EXISTS `creatorGotMoney` TINYINT(1) NOT NULL DEFAULT '0'
;
ALTER TABLE `player_houses`
ADD IF NOT EXISTS `rented` INT(11) NULL DEFAULT NULL,
ADD IF NOT EXISTS `rentPrice` INT(11) NULL DEFAULT NULL,
ADD IF NOT EXISTS `rentable` INT(11) NULL DEFAULT NULL,
ADD IF NOT EXISTS `purchasable` INT(11) NULL DEFAULT NULL,
ADD IF NOT EXISTS `console` TEXT NULL DEFAULT NULL,
ADD IF NOT EXISTS `decorateCoords` TEXT NULL DEFAULT NULL,
ADD IF NOT EXISTS `vaultCodes` TEXT NULL DEFAULT NULL
;
ALTER TABLE `houselocations`
DROP IF EXISTS `houseID`
;
ALTER TABLE `player_houses`
DROP IF EXISTS `houseID`,
DROP IF EXISTS `timer`,
DROP IF EXISTS `insideId`
;
ALTER TABLE `houselocations`
CHANGE COLUMN `tier` `tier` SMALLINT NULL DEFAULT NULL;
CREATE TABLE IF NOT EXISTS `house_decorations` (
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`house` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
`creator` VARCHAR(70) NOT NULL DEFAULT '0' COLLATE 'utf8mb3_general_ci',
`modelName` VARCHAR(50) NOT NULL DEFAULT '0' COLLATE 'utf8mb3_general_ci',
`coords` TEXT NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
`rotation` TEXT NOT NULL DEFAULT '' COLLATE 'utf8mb3_general_ci',
`inStash` TINYINT(1) NOT NULL DEFAULT '0',
`inHouse` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
`uniq` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
`created` TIMESTAMP NULL DEFAULT NULL,
`lightData` TEXT NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
PRIMARY KEY (`id`) USING BTREE,
INDEX `id` (`id`, `house`) USING BTREE
)
COLLATE='utf8mb3_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=1
;
QBCORE
DROP TABLE IF EXISTS `houselocations`;
DROP TABLE IF EXISTS `player_houses`;
DROP TABLE IF EXISTS `house_rents`;
DROP TABLE IF EXISTS `house_objects`;
DROP TABLE IF EXISTS `house_plants`;
ALTER TABLE
`players`
ADD
IF NOT EXISTS `inside` VARCHAR(50) NULL DEFAULT '';
CREATE TABLE IF NOT EXISTS `houselocations` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL DEFAULT '' COLLATE 'latin1_swedish_ci',
`label` VARCHAR(255) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`coords` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`owned` TINYINT(2) NULL DEFAULT NULL,
`price` INT(11) NULL DEFAULT NULL,
`defaultPrice` INT(11) NULL DEFAULT NULL,
`tier` TINYINT(2) NULL DEFAULT NULL,
`garage` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`garageShell` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`creator` VARCHAR(50) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`mlo` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`ipl` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`console` INT(11) NULL DEFAULT NULL,
`board` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`for_sale` INT(11) NULL DEFAULT '1',
`extra_imgs` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`description` TEXT NOT NULL DEFAULT '' COLLATE 'latin1_swedish_ci',
`creatorJob` VARCHAR(50) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`blip` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`upgrades` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`apartmentCount` INT(11) NULL DEFAULT NULL,
PRIMARY KEY (`name`) USING BTREE,
INDEX `name` (`name`) USING BTREE,
INDEX `id` (`id`) USING BTREE
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
AUTO_INCREMENT=1
;
CREATE TABLE IF NOT EXISTS `player_houses` (
`id` INT(255) NOT NULL AUTO_INCREMENT,
`house` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`citizenid` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`owner` VARCHAR(46) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`keyholders` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`stash` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`outfit` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`logout` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`decorateStash` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`charge` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`credit` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`creditPrice` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`console` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`decorateCoords` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`rented` INT(11) NULL DEFAULT NULL,
`rentPrice` INT(11) NULL DEFAULT NULL,
`rentable` INT(11) NULL DEFAULT NULL,
`purchasable` INT(11) NULL DEFAULT NULL,
`vaultCodes` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
PRIMARY KEY (`id`) USING BTREE,
INDEX `house` (`house`) USING BTREE,
INDEX `owner` (`owner`) USING BTREE,
INDEX `citizenid` (`citizenid`) USING BTREE
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=3
;
CREATE TABLE IF NOT EXISTS `house_rents` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`house` VARCHAR(50) NOT NULL DEFAULT '' COLLATE 'utf8mb4_general_ci',
`identifier` VARCHAR(80) NOT NULL DEFAULT '' COLLATE 'utf8mb4_general_ci',
`payed` INT(11) NOT NULL DEFAULT '0',
`date` TIMESTAMP NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`id`) USING BTREE
) COLLATE = 'utf8mb4_general_ci' ENGINE = InnoDB AUTO_INCREMENT = 1;
CREATE TABLE IF NOT EXISTS `house_objects` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`creator` VARCHAR(50) NOT NULL DEFAULT '0' COLLATE 'latin1_swedish_ci',
`model` VARCHAR(50) NOT NULL DEFAULT '0' COLLATE 'latin1_swedish_ci',
`coords` TEXT NOT NULL COLLATE 'latin1_swedish_ci',
`house` VARCHAR(80) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`construction` VARCHAR(50) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`created` TIMESTAMP NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`) USING BTREE
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
AUTO_INCREMENT=1
;
ALTER TABLE `house_objects`
ADD IF NOT EXISTS `construction` VARCHAR(50) NULL DEFAULT NULL,
ADD IF NOT EXISTS `created` TIMESTAMP NULL DEFAULT current_timestamp()
;
DROP TABLE IF EXISTS `house_plants`;
CREATE TABLE IF NOT EXISTS `house_plants` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`building` varchar(50) DEFAULT NULL,
`stage` varchar(50) DEFAULT 'stage-a',
`sort` varchar(50) DEFAULT NULL,
`gender` varchar(50) DEFAULT NULL,
`food` int(11) DEFAULT 100,
`health` int(11) DEFAULT 100,
`progress` int(11) DEFAULT 0,
`coords` text DEFAULT NULL,
`plantid` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `building` (`building`),
KEY `plantid` (`plantid`)
) ENGINE = InnoDB AUTO_INCREMENT = 7123 DEFAULT CHARSET = utf8mb4;
ALTER TABLE `player_houses`
CHANGE COLUMN IF EXISTS `identifier` `owner` VARCHAR(46) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci';
ALTER TABLE `houselocations`
ADD IF NOT EXISTS `blip` TEXT NULL DEFAULT NULL,
ADD IF NOT EXISTS `upgrades` TEXT NULL DEFAULT NULL,
ADD IF NOT EXISTS `apartmentCount` TEXT NULL DEFAULT NULL,
ADD IF NOT EXISTS `creatorGotMoney` TINYINT(1) NOT NULL DEFAULT '0'
;
ALTER TABLE `player_houses`
ADD IF NOT EXISTS `rented` INT(11) NULL DEFAULT NULL,
ADD IF NOT EXISTS `rentPrice` INT(11) NULL DEFAULT NULL,
ADD IF NOT EXISTS `rentable` INT(11) NULL DEFAULT NULL,
ADD IF NOT EXISTS `purchasable` INT(11) NULL DEFAULT NULL,
ADD IF NOT EXISTS `console` TEXT NULL DEFAULT NULL,
ADD IF NOT EXISTS `decorateCoords` TEXT NULL DEFAULT NULL,
ADD IF NOT EXISTS `vaultCodes` TEXT NULL DEFAULT NULL
;
ALTER TABLE `houselocations`
DROP IF EXISTS `houseID`
;
ALTER TABLE `player_houses`
DROP IF EXISTS `houseID`,
DROP IF EXISTS `timer`,
DROP IF EXISTS `insideId`
;
ALTER TABLE `houselocations`
CHANGE COLUMN `tier` `tier` SMALLINT NULL DEFAULT NULL;
CREATE TABLE IF NOT EXISTS `house_decorations` (
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`house` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
`creator` VARCHAR(70) NOT NULL DEFAULT '0' COLLATE 'utf8mb3_general_ci',
`modelName` VARCHAR(50) NOT NULL DEFAULT '0' COLLATE 'utf8mb3_general_ci',
`coords` TEXT NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
`rotation` TEXT NOT NULL DEFAULT '' COLLATE 'utf8mb3_general_ci',
`inStash` TINYINT(1) NOT NULL DEFAULT '0',
`inHouse` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
`uniq` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
`created` TIMESTAMP NULL DEFAULT NULL,
`lightData` TEXT NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
PRIMARY KEY (`id`) USING BTREE,
INDEX `id` (`id`, `house`) USING BTREE
)
COLLATE='utf8mb3_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=1
;