Installation

Welcome to the Quasar Housing installation guide, here you can learn how to completely install our asset, following each step we will achieve a clean and fluid installation where you will not find any problems, as long as the documentation has been completed in full.

For compatibility and security reasons, we request that WinSCP be used mandatorily to manage the script files instead of FileZilla. WinSCP offers greater stability and better integration with our work environment, ensuring a more efficient handling of assets and minimizing issues related to file transfers. We appreciate your cooperation in ensuring a better experience for everyone.

If you do not have programming experience, we recommend that you read each step completely without skipping any lines, since all documentation is important and should not be ignored under any circumstances. If you have a trusted developer, you can install this quickly, easily and safely if you complete this documentation step by step.

If at the end of this documentation you still have any problems, review each step again, after having checked that everything is correct, you can obtain more information about common errors in the Common Problems section within this same documentation to seek help independently.


Asset download

To find the asset, you must have made the purchase using your own keymaster account. Otherwise, you can use the transfer system to move the asset to a different keymaster account.

If you need to make an update you must also do this step again, download the asset and you will get the complete update.

Once the purchase is made on our official website, you will receive your asset directly in your Keymaster, in your own panel you can download the asset and install it following the following documentation.

If you have more problems regarding Fivem Escrow, accounts or asset startup errors you can go here and see if any of them match your case, since Escrow requires some basic things for its operation, such as your keymaster account, your licensekey , etc.

FiveM Asset Escrow System

Asset dependencies

Do not start the asset without having gathered all the dependencies on your server.

Please note that when downloading meta_libs, you will have another folder called meta_libs, properly unzip this asset so that it starts correctly.

This asset has some dependencies that are completely mandatory and important for the operation of the asset. If you do not have these dependencies, your asset will probably start and have some error or message in its command console.


Asset positioning

DON'T FORGET that K4mb1 maps (shells) are now located in the "Housing [props]" asset in your keymaster.

If you use a garage system, don't forget to start qs-housing first and then the other assets as your respective housing. Remember that not all garages are compatible with this system, check it in the next step.

DON'T FORGET that K4mb1 maps (shells) are now located in the "Housing [props]" asset in your keymaster.

For the execution of this asset, we will respect the respective order mentioned below. We recommend starting both dependencies and the same housing asset in the same [housing] folder. Otherwise we will have to start the dependencies first and then the qs-housing.

-- First we will start the cores, never below
ensure es_extended or qb-core

-- The inventory should be executed above
ensure [inventory]

-- Your phone system, important!
ensure [phone]

-- Run qs-advancedgarages here along with its dependencies
ensure [garages]

-- In the case of a housing system, we will always put it below
ensure [housing-props] -- Include in "Housing [props] asset"
ensure [housing] -- Put housing and props here!

Database

After patch 3.0, it is required to delete all the sql and install it completely from scratch to avoid problems, since now the home checks are completely different.

In this case, we will run the sql completely in our database following the documentation below, choose your framework depending on whether it is esx or qbcore.

For a fresh installation of the asset, execute this to clear any existing data, followed by running the SQL script below to set everything up from scratch:

-- ONLY USE THIS FOR A FRESH INSTALL IF NOT READ BELOW!
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`;

Note that the asset's SQL changed from version 4.0, with new columns added. You can run this SQL script to add those columns without losing any existing data:

Database for esx
ALTER TABLE
    `users`
ADD
    IF NOT EXISTS `inside` VARCHAR(50) NULL DEFAULT '';

INSERT INTO
    `addon_inventory` (name, label, shared)
VALUES
    ('propery', 'Property', 0);

INSERT INTO
    `datastore` (name, label, shared)
VALUES
    ('propery', 'Property', 0);

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',
	`decorations` 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
;

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`
;
	
Database for qbcore
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',
	`decorations` 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
;

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`
;
	

Items for plants

After patch 3.0 now the plants are part of a script called qs-weed that is included within the package, this is a dependency, you can not simply use the items, but you will have to start it.

Verify that your inventory does not already have these items inside before adding them.

Quasar Housing integrates a drug planting system in the homes or their exteriors. With this document we will give you the list of items to add to your inventory. Note that if you don't use any of these inventories, you can copy the item names to create them within your own.

Items for qs-inventory

Keep in mind that your default qs-inventory or qb-core already has these items, so check if you have these items so as not to add duplicates, that could cause problems.

Remember that if you use qbcore, the items must go in qb-core/shared/items.lua.

["weed_white-widow"] = {
    ["name"] = "weed_white-widow",
    ["label"] = "White Widow weed",
    ["weight"] = 150,
    ["type"] = "item",
    ["ammotype"] = nil,
    ["image"] = "weed_white-widow.png",
    ["unique"] = false,
    ["useable"] = true,
    ["combinable"] = nil,
    ["description"] = "It does not contain a description."
},

["weed_skunk"] = {
    ["name"] = "weed_skunk",
    ["label"] = "Skunk weed",
    ["weight"] = 150,
    ["type"] = "item",
    ["ammotype"] = nil,
    ["image"] = "weed_skunk.png",
    ["unique"] = false,
    ["useable"] = true,
    ["combinable"] = nil,
    ["description"] = "It does not contain a description."
},

["weed_purple-haze"] = {
    ["name"] = "weed_purple-haze",
    ["label"] = "Purple Haze weed",
    ["weight"] = 150,
    ["type"] = "item",
    ["ammotype"] = nil,
    ["image"] = "weed_purple-haze.png",
    ["unique"] = false,
    ["useable"] = true,
    ["combinable"] = nil,
    ["description"] = "It does not contain a description."
},

["weed_og-kush"] = {
    ["name"] = "weed_og-kush",
    ["label"] = "OG Kush weed",
    ["weight"] = 150,
    ["type"] = "item",
    ["ammotype"] = nil,
    ["image"] = "weed_og-kush.png",
    ["unique"] = false,
    ["useable"] = true,
    ["combinable"] = nil,
    ["description"] = "It does not contain a description."
},

["weed_amnesia"] = {
    ["name"] = "weed_amnesia",
    ["label"] = "Amnesia weed",
    ["weight"] = 150,
    ["type"] = "item",
    ["ammotype"] = nil,
    ["image"] = "weed_amnesia.png",
    ["unique"] = false,
    ["useable"] = true,
    ["combinable"] = nil,
    ["description"] = "It does not contain a description."
},

["weed_ak47"] = {
    ["name"] = "weed_ak47",
    ["label"] = "AK47 weed",
    ["weight"] = 150,
    ["type"] = "item",
    ["ammotype"] = nil,
    ["image"] = "weed_ak47.png",
    ["unique"] = false,
    ["useable"] = true,
    ["combinable"] = nil,
    ["description"] = "It does not contain a description."
},

["weed_white-widow_seed"] = {
    ["name"] = "weed_white-widow_seed",
    ["label"] = "White Widow seed",
    ["weight"] = 50,
    ["type"] = "item",
    ["ammotype"] = nil,
    ["image"] = "weed_white-widow_seed.png",
    ["unique"] = false,
    ["useable"] = true,
    ["combinable"] = nil,
    ["description"] = "It does not contain a description."
},

["weed_skunk_seed"] = {
    ["name"] = "weed_skunk_seed",
    ["label"] = "Skunk seed",
    ["weight"] = 50,
    ["type"] = "item",
    ["ammotype"] = nil,
    ["image"] = "weed_skunk_seed.png",
    ["unique"] = false,
    ["useable"] = true,
    ["combinable"] = nil,
    ["description"] = "It does not contain a description."
},

["weed_purple-haze_seed"] = {
    ["name"] = "weed_purple-haze_seed",
    ["label"] = "Purple Haze seed",
    ["weight"] = 50,
    ["type"] = "item",
    ["ammotype"] = nil,
    ["image"] = "weed_purple-haze_seed.png",
    ["unique"] = false,
    ["useable"] = true,
    ["combinable"] = nil,
    ["description"] = "It does not contain a description."
},

["weed_og-kush_seed"] = {
    ["name"] = "weed_og-kush_seed",
    ["label"] = "OG Kush seed",
    ["weight"] = 50,
    ["type"] = "item",
    ["ammotype"] = nil,
    ["image"] = "weed_og-kush_seed.png",
    ["unique"] = false,
    ["useable"] = true,
    ["combinable"] = nil,
    ["description"] = "It does not contain a description."
},

["weed_amnesia_seed"] = {
    ["name"] = "weed_amnesia_seed",
    ["label"] = "Amnesia seed",
    ["weight"] = 50,
    ["type"] = "item",
    ["ammotype"] = nil,
    ["image"] = "weed_amnesia_seed.png",
    ["unique"] = false,
    ["useable"] = true,
    ["combinable"] = nil,
    ["description"] = "It does not contain a description."
},

["weed_ak47_seed"] = {
    ["name"] = "weed_ak47_seed",
    ["label"] = "AK47 seed",
    ["weight"] = 50,
    ["type"] = "item",
    ["ammotype"] = nil,
    ["image"] = "weed_ak47_seed.png",
    ["unique"] = false,
    ["useable"] = true,
    ["combinable"] = nil,
    ["description"] = "It does not contain a description."
},

["empty_weed_bag"] = {
    ["name"] = "empty_weed_bag",
    ["label"] = "Empty weed bag",
    ["weight"] = 50,
    ["type"] = "item",
    ["ammotype"] = nil,
    ["image"] = "empty_weed_bag.png",
    ["unique"] = false,
    ["useable"] = true,
    ["combinable"] = nil,
    ["description"] = "It does not contain a description."
},

["weed_nutrition"] = {
    ["name"] = "weed_nutrition",
    ["label"] = "Weed nutrition",
    ["weight"] = 500,
    ["type"] = "item",
    ["ammotype"] = nil,
    ["image"] = "weed_nutrition.png",
    ["unique"] = false,
    ["useable"] = true,
    ["combinable"] = nil,
    ["description"] = "It does not contain a description."
},

["lockpick"] = {
    ["name"] = "lockpick",
    ["label"] = "Lockpick",
    ["weight"] = 100,
    ["type"] = "item",
    ["ammotype"] = nil,
    ["image"] = "lockpick.png",
    ["unique"] = false,
    ["useable"] = true,
    ["combinable"] = nil,
    ["description"] = "It does not contain a description."
},

["police_stormram"] = {
    ["name"] = "police_stormram",
    ["label"] = "Police Storm Ram",
    ["weight"] = 800,
    ["type"] = "item",
    ["ammotype"] = nil,
    ["image"] = "police_stormram.png",
    ["unique"] = false,
    ["useable"] = true,
    ["combinable"] = nil,
    ["description"] = "It does not contain a description."
},
Items for qb-inventory

Keep in mind that your default qb-core already has these items, so check if you have these items so as not to add duplicates, if that happens it could cause problems.

['weed_white-widow']      = { ['name'] = 'weed_white-widow', ['label'] = 'White Widow 2g', ['weight'] = 200, ['type'] = 'item', ['image'] = 'weed_baggy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'A weed bag with 2g White Widow' },
['weed_skunk']            = { ['name'] = 'weed_skunk', ['label'] = 'Skunk 2g', ['weight'] = 200, ['type'] = 'item', ['image'] = 'weed_baggy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'A weed bag with 2g Skunk' },
['weed_purple-haze']      = { ['name'] = 'weed_purple-haze', ['label'] = 'Purple Haze 2g', ['weight'] = 200, ['type'] = 'item', ['image'] = 'weed_baggy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'A weed bag with 2g Purple Haze' },
['weed_og-kush']          = { ['name'] = 'weed_og-kush', ['label'] = 'OGKush 2g', ['weight'] = 200, ['type'] = 'item', ['image'] = 'weed_baggy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'A weed bag with 2g OG Kush' },
['weed_amnesia']          = { ['name'] = 'weed_amnesia', ['label'] = 'Amnesia 2g', ['weight'] = 200, ['type'] = 'item', ['image'] = 'weed_baggy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'A weed bag with 2g Amnesia' },
['weed_ak47']             = { ['name'] = 'weed_ak47', ['label'] = 'AK47 2g', ['weight'] = 200, ['type'] = 'item', ['image'] = 'weed_baggy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'A weed bag with 2g AK47' },
['weed_white-widow_seed'] = { ['name'] = 'weed_white-widow_seed', ['label'] = 'White Widow Seed', ['weight'] = 0, ['type'] = 'item', ['image'] = 'weed_seed.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'A weed seed of White Widow' },
['weed_skunk_seed']       = { ['name'] = 'weed_skunk_seed', ['label'] = 'Skunk Seed', ['weight'] = 0, ['type'] = 'item', ['image'] = 'weed_seed.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A weed seed of Skunk' },
['weed_purple-haze_seed'] = { ['name'] = 'weed_purple-haze_seed', ['label'] = 'Purple Haze Seed', ['weight'] = 0, ['type'] = 'item', ['image'] = 'weed_seed.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A weed seed of Purple Haze' },
['weed_og-kush_seed']     = { ['name'] = 'weed_og-kush_seed', ['label'] = 'OGKush Seed', ['weight'] = 0, ['type'] = 'item', ['image'] = 'weed_seed.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A weed seed of OG Kush' },
['weed_amnesia_seed']     = { ['name'] = 'weed_amnesia_seed', ['label'] = 'Amnesia Seed', ['weight'] = 0, ['type'] = 'item', ['image'] = 'weed_seed.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A weed seed of Amnesia' },
['weed_ak47_seed']        = { ['name'] = 'weed_ak47_seed', ['label'] = 'AK47 Seed', ['weight'] = 0, ['type'] = 'item', ['image'] = 'weed_seed.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A weed seed of AK47' },
['empty_weed_bag']        = { ['name'] = 'empty_weed_bag', ['label'] = 'Empty Weed Bag', ['weight'] = 0, ['type'] = 'item', ['image'] = 'weed_baggy_empty.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A small empty bag' },
['weed_nutrition']        = { ['name'] = 'weed_nutrition', ['label'] = 'Plant Fertilizer', ['weight'] = 2000, ['type'] = 'item', ['image'] = 'weed_nutrition.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Plant nutrition' },
['lockpick']              = { ['name'] = 'lockpick', ['label'] = 'Lockpick', ['weight'] = 100, ['type'] = 'item', ['image'] = 'lockpick.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'No description' },
['police_stormram']       = { ['name'] = 'police_stormram', ['label'] = 'Police Storm Ram', ['weight'] = 2000, ['type'] = 'item', ['image'] = 'police_stormram.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'No description' },
Items for esx_inventory
INSERT INTO `items` (`name`, `label`, `weight`) VALUES
	('weed_white-widow', 'White Widow', 1),
	('weed_skunk', 'Skunk', 1),
	('weed_purple-haze', 'Purple Haze', 1),
	('weed_og-kush', 'OG Kush', 1),
	('weed_amnesia', 'Amnesia', 1),
	('weed_ak47', 'Ak74', 1),
	('weed_white-widow_seed', 'White Widow Seed', 1),
	('weed_skunk_seed', 'Skunk Seed', 1),
	('weed_purple-haze_seed', 'Purple Haze Seed', 1),
	('weed_og-kush_seed', 'OG Kush Seed', 1),
	('weed_amnesia_seed', 'Amnesia Seed', 1),
	('weed_ak47_seed', 'ak47 Seed', 1),
	('empty_weed_bag', 'Empty Bag', 1),
	('weed_nutrition', 'Weed Nutrition', 1),
	('lockpick', 'Lockpick', 1),
	('police_stormram', 'Police Storm Ram', 1)
;

Compatible Garage systems

If you don't have any of these systems, contact the garage creator to see if they can make compatibility, otherwise don't open a ticket for this type of thing.

Remember that Quasar Store has one of the most popular and recommended FiveM garages, with the highest Tebex rating, an incredible system, with an interior system, slots, impounds and creations within the game. You can find it in our store.

Quasar Housing includes an editable garage system, where you can add more or edit your own using client/custom/garage/*.lua and server/custom/garage/*.lua. This system will automatically detect your garage if you have the correct asset name.

If your system is not listed here, contact the garage creator to make compatibility.

If you are a qb-garages user, this does not require modifications as in previous versions.


Basic asset configuration

We do not recommend editing frameworks unnecessarily, since almost all assets depend exclusively on your framework and exports on the name of your framework. Otherwise and if you edited your framework, read these steps carefully.

If you still require more open codes for the configuration, you can check within client/custom and server/custom to adapt the asset to your personal taste.

Please expand each part to see information about the configuration of the asset, this way you will understand the general operation of the asset on the framework and editable files side.

Don't forget to configure the basics in the configuration, such as Config.Inventory or Config.Wardrobe, using the guide just above these configurations, there you will find all the compatible systems that you should add.

Basic framework configuration

The asset will work automatically if your framework is called es_extended or qb-core, it will automatically detect if any of them are started. In case your framework has been renamed, you can modify it in config.lua to edit the name of your framework.

Advanced framework configuration

If your framework is completely modified, both in events and name, you should access client/custom/framework or server/custom/framework to adapt the native events of your framework to the codes you have created. If this step doesn't work, we ask that you ask your framework modifier or trusted developer for help.

More general settings

This asset contains multiple configurations within the config folder. But you can also access more open source and configurations within client/custom or server/custom. We do not recommend using these configurations if you do not have the basics of programming.

Last updated