Installation
Before you start, make sure you're logged into the CFX portal. This ensures you can download the asset and receive future updates.
Downloading Dependencies
Dependencies are very important — you need to install them before moving on to the installation of our script.
op-bot (optional)
Install this only if you want to fetch Discord ranks to assign character slots.
Server.cfg
All dependencies you’ve installed must be started before our script. Make sure to follow the correct start-up order in your server.cfg.
ensure ox_lib
ensure op-bot
ensure op-multicharacterAdditional Steps (Important):
Go to your
es_extendedFind config file located in
shared/config/main.luaChange line:
From:
Config.Multichar = GetResourceState("esx_multicharacter") ~= "missing"To:
Config.Multichar = true
Go to your qbx_core
Find config located in config/client.lua
Change
useExternalCharactersto true
Before:

After:

Find resource:
qbx_propertiesGo to
qbx_properties/server/apartmentselect.luaFind event
QBCore:Server:OnPlayerLoaded
Replace this:
RegisterNetEvent('QBCore:Server:OnPlayerLoaded', function() local playerSource = source --[[@as number]] local player = exports.qbx_core:GetPlayer(playerSource) local hasApartment = MySQL.single.await('SELECT * FROM properties WHERE owner = ?', {player.PlayerData.citizenid}) if not hasApartment then TriggerClientEvent('apartments:client:setupSpawnUI', playerSource) end end)With This:
RegisterNetEvent('QBCore:Server:OnPlayerLoaded', function() local playerSource = source --[[@as number]] local player = exports.qbx_core:GetPlayer(playerSource) local hasApartment = MySQL.single.await('SELECT * FROM properties WHERE owner = ?', {player.PlayerData.citizenid}) if not hasApartment then --TriggerClientEvent('apartments:client:setupSpawnUI', playerSource) end end)
Final Step
Make sure you deleted other Multicharacter scripts from your server, like esx_multicharacter or qb-multicharacter!
Last updated