Most problems with Multicharacter come from another resource doing the same job — a second character menu, a second appearance script, a spawn script — or from load order. Every message below is printed exactly as it appears in the server or F8 console, so search this page for the text you see. Turn on Config.Debug for a step-by-step log of the join.
Installation and Startup#
"No framework found, please ensure you have qs-core, es_extended, qb-core, or qbx_core installed"
Multicharacter started before your framework. Move ensure qs-multicharacter below the framework in server.cfg, or check the framework itself started without errors.
"Both es_extended and qbx_core are started; using the esx adapter"
Two frameworks are running — usually a compatibility bridge. If the chosen adapter is wrong, force the right one with Config.FrameworkOverride = 'qb' (or 'esx', 'qs').
A warning about @qb-apartments/config.lua on ESX
The manifest loads qb-apartments' config for QB servers. On ESX or qs-core, comment out '@qb-apartments/config.lua' in fxmanifest.lua.
"Failed to get database name from mysql_connection_string convar"
Multicharacter reads the database name from the connection string to clean up deleted characters. Use either the URI form (mysql://user:pass@host/database) or the key form with database=, as in the oxmysql guide.
The loading screen never ends, or the menu is invisible
If the console prints The multicharacter UI has not initialised after 120000 ms followed by Still waiting for the multicharacter UI, the interface failed to load. Check that the folder is named exactly qs-multicharacter, that the whole resource was uploaded (including web/), and open F8 for errors from qs-multicharacter.
Frameworks#
"[esx] Config.Multichar is not true"
ESX did not switch to multicharacter mode. On ESX 1.9 and newer the qs-multicharacter folder must exist when es_extended starts — check the folder name and that esx_multicharacter was removed. On ESX v1 set Config.Multichar = true in es_extended/config.lua.
"[qb] qbx_core characters.useExternalCharacters must be true"
Qbox is still opening its own character menu. Set useExternalCharacters = true inside characters in qbx_core/config/client.lua and restart.
Two menus open on QBCore, or qb-spawn appears after the selector
Remove qb-multicharacter, and remove qb-spawn while Config.EnableDefaultSpawnSelector = true. On Qbox, comment out the CreateFirstCharacter trigger in qbx_properties and qbx_core if the clothing creator opens twice.
A QB character disappeared after switching from qb-multicharacter
qb-multicharacter numbers slots from 1; Multicharacter from 0, with four slots (cid 0–3) by default. A character with cid 4 has no spot and is skipped:
[qb] Skipping character cid 4 (citizenid ABC12345) — no Config.CharacterPositions entry. QB slots stay 0-based.Add a fifth slot (see Adding more slots) or change that character's cid in the players table to a free slot.
"Character creation timed out" on ESX
esx_identity did not answer. On older versions of esx_identity set Config.UseDeferrals = false in its config so the registration callback exists, or raise Config.ESXIdentityTimeoutMs on a slow database.
"Character skin is missing for character" on ESX
A row in users has no skin — usually a character that was never finished. Delete that row by hand, or set Config.WipeIfThereIsNoData = true to delete such rows automatically. That option removes data — back up first.
Appearance and Clothing#
"Multiple appearance resources detected"
Two appearance scripts are started — for example qs-appearance and esx_skin. Keep one and remove the other's ensure line. The message names both.
"No appearance found"
None of the supported appearance scripts was started before Multicharacter. Ensure it earlier in server.cfg.
ESX: errors about esx_skin or skinchanger with qs-appearance
Older ESX scripts depend on esx_skin and skinchanger. Either remove every reference to them from your manifests, or let qs-appearance stand in for them by adding this at the end of qs-appearance/fxmanifest.lua:
provides { 'esx_skin', 'skinchanger' }Wrong clothes with illenium-appearance
Open illenium-appearance/fxmanifest.lua and remove provides { 'esx_skin', 'skin_changer' } if present, remove any dependencies { 'esx_skin', 'skin_changer' } from your other scripts, then clear the server cache and restart.
"Failed to load model. This not a script ERROR!"
A ped model from your clothing pack could not stream in — commonly a pack built for a newer game build. Try sv_enforceGameBuild 3095 or later. Once you know the cause, Config.DisableLoadModelLoopError = true stops the message repeating.
"Export missing, please update rcore_clothing to latest version."
Your rcore_clothing is too old for the integration. Update it from the Cfx.re portal.
Selection and Spawning#
Slow joins: "showing the scene with what is ready"
Messages such as Some selection peds were still streaming after N ms or playerSpawned did not arrive within N ms mean a player's PC or your server needed longer than the limits allow. The join continues; on servers with heavy clothing packs raise the timeouts listed in Performance and Timeouts.
"This slot already has a character. The list has been refreshed."
The player tried to create a character on a slot that is already taken — usually after a double click or a stale menu. The list reloads; pick an empty slot.
"You are unconscious, you must respawn at the last location."
The character logged out dead, and Config.DeathOnlyLastLocation stops it escaping by relogging. Set it to false to allow any spawn.
"No spawn location is available for this character, using Config.Spawn"
Every entry in Config.SpawnLocations has a jobs filter the character does not pass. Keep at least one entry without jobs.
New QB characters get no apartment choice
The console prints Missing the apps table so probably you have not set up the qb-apartments. Make sure qb-apartments starts before Multicharacter and the @qb-apartments/config.lua line in the manifest is not commented out.
"The spawn selector camera was destroyed from outside"
Another resource — often a tutorial closing late — removed the selector's camera. Multicharacter rebuilds it on its own; the message is informational.
No background music
Config.Music plays web/sounds/background.mp3, which you supply. Add the file, or rely on the YouTube music set in Config.YouTubeMusicUrl.
Slots and Tebex#
"You have enabled tebex in your character positions but you have not set your TEBEX_SECRET convar"
A slot has tebex = true but sv_tebexSecret is not in server.cfg. Add it to sell slots, or ignore it if you only give slots with /addslot [server id] (the message says /giveslot; the command is /addslot).
"The first slot cannot be managed by tebex"
Config.CharacterPositions[0] has tebex = true. Slot 0 is always free; set it to false.
A valid transaction ID is rejected
Check that sv_tebexSecret belongs to the same store the player bought from, that the payment is complete in Tebex, and that the ID starts with tbx-. An ID can be redeemed only once, and You have reached the maximum number of slots means every locked slot is already open.
A monthly slot never locks after cancelling
Its package ID is not in Config.TebexAccess.SubscriptionPackageIds, so it was treated as a one-time purchase. Add the ID; slots bought before that stay permanent.
"You do not have permission to do this." with /addslot
Your account is not an admin for your framework. See Who counts as an admin. On ESX, run the command in game rather than from the server console.
Still stuck? Turn on
Config.Debug, reproduce the problem, and open a ticket with the server console and F8 output from the join.



