Installation

Quasar Multicharacter & Spawn is a modern character selection and spawn system for FiveM. It offers a clean, animated interface where players can create, delete, and select characters quickly. Integrated with housing, apartments, and job systems, it remembers last positions and spawns, ensuring smooth transitions. Designed for immersion, performance, and full compatibility with Quasar scripts.


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:

    • Multicharacter


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.


Removing Conflicting Assets

  • ESX Version: Remove esx_multicharacter.

  • QBCORE Version: Remove qb-multicharacter, and optionally qb-spawn if you want to use Quasar’s built-in spawn selector. The asset also supports qb-apartments if enabled in the fxmanifest.lua.

  • For QBX users: Go to qbx_core/config/client.lua and set useExternalCharacters = false.


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.


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.

DATABASE ESX/QBCORE
DROP TABLE IF EXISTS `clothing_stores`;
DROP TABLE IF EXISTS `clothing_player_outfits`;
DROP TABLE IF EXISTS `clothing_job_outfits`;
DROP TABLE IF EXISTS `management_outfits`;
DROP TABLE IF EXISTS `player_outfits`;
DROP TABLE IF EXISTS `playerskins`;

CREATE TABLE IF NOT EXISTS `clothing_stores` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`creator` VARCHAR(80) NULL DEFAULT '0' COLLATE 'utf8mb3_general_ci',
	`name` VARCHAR(50) NULL DEFAULT '0' COLLATE 'utf8mb3_general_ci',
	`type` VARCHAR(50) NULL DEFAULT '0' COLLATE 'utf8mb3_general_ci',
	`zone` TEXT NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
	`show_blip` TINYINT(1) NULL DEFAULT '0',
	`config` TEXT NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
	PRIMARY KEY (`id`) USING BTREE
)
COLLATE='utf8mb3_general_ci'
ENGINE=InnoDB
;

CREATE TABLE IF NOT EXISTS `clothing_player_outfits` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`owner` VARCHAR(80) NOT NULL DEFAULT '0' COLLATE 'utf8mb3_general_ci',
	`label` VARCHAR(80) NOT NULL DEFAULT '0' COLLATE 'utf8mb3_general_ci',
	`model` VARCHAR(80) NOT NULL DEFAULT '0' COLLATE 'utf8mb3_general_ci',
	`components` TEXT NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
	`props` TEXT NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
	PRIMARY KEY (`id`) USING BTREE
)
COLLATE='utf8mb3_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=1
;

CREATE TABLE IF NOT EXISTS `clothing_job_outfits` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`creator` VARCHAR(80) NOT NULL DEFAULT '0' COLLATE 'utf8mb3_general_ci',
	`label` VARCHAR(80) NOT NULL DEFAULT '' COLLATE 'utf8mb3_general_ci',
	`job` VARCHAR(50) NOT NULL DEFAULT '0' COLLATE 'utf8mb3_general_ci',
	`grades` TEXT NOT NULL COLLATE 'utf8mb3_general_ci',
	`model` VARCHAR(80) NOT NULL DEFAULT '' COLLATE 'utf8mb3_general_ci',
	`components` TEXT NOT NULL COLLATE 'utf8mb3_general_ci',
	`props` TEXT NOT NULL COLLATE 'utf8mb3_general_ci',
	PRIMARY KEY (`id`) USING BTREE
)
COLLATE='utf8mb3_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=1
;

CREATE TABLE IF NOT EXISTS `player_outfits` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `citizenid` varchar(50) DEFAULT NULL,
  `outfitname` varchar(50) NOT NULL DEFAULT '0',
  `model` varchar(50) DEFAULT NULL,
  `props` varchar(1000) DEFAULT NULL,
  `components` varchar(1500) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `citizenid_outfitname_model` (`citizenid`,`outfitname`,`model`),
  KEY `citizenid` (`citizenid`)
) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS `playerskins` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `citizenid` varchar(255) NOT NULL,
  `model` varchar(255) NOT NULL,
  `skin` text NOT NULL,
  `active` tinyint(4) NOT NULL DEFAULT 1,
  PRIMARY KEY (`id`),
  KEY `citizenid` (`citizenid`),
  KEY `active` (`active`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

Saving Clothing Images

When you finish generating and saving clothing images, you must disable the option:

Config.ImageSaver.enable = false

If you leave it enabled, your fivemanage.com token could be exposed and players may steal it.

How to use fivemanage.com

Now we’ll connect the phone’s photo system. Go to https://fivemanage.com, create an account, and generate a token.

Then open this file: qs-smartphone-pro/server/custom/webhooks/webhooks.lua and paste your token inside the section called Config.Webhook.

Simple guide for fivemanage.comg 🔗 https://www.youtube.com/watch?v=3MMCbAckK1M

Your token must be placed here:

-- qs-appearance/config/fivemanage.lua  
Config.FiveManageToken = "your_token_here"

Always make sure to keep your token private and disable the image saver once the process is complete.