Skip to content
RPScripts

FiveM Multicharacter & Spawn

BB Multichar

BB Multichar (QB)

  • QBCore

Description

BB-MULTICHARACTER

BB Multichar replaces the multicharacter selection on QBCore servers. It comes with its own UI and lets you choose which clothing resource it works with.

Features

  • Character selection UI.
  • Clothing options for qb-clothing, raid-clothing and fivem-appearance, plus an "other" mode that you adapt yourself.
  • Extra character slots for a Discord role: for example, players get 2 characters by default and more if they have the Discord role you set in the config. All numbers can be changed.
  • Safe deletion: players must type their exact character name to delete a character.
  • Option to allow only English character names (char_english_only).

Requirements

  • QBCore (core name, trigger prefix and notify event are configurable)
  • One of the supported clothing resources, or your own adaptation

Installation

  • Drag and drop the resource to your server and stop qb-multicharacter or whatever multicharacter you're using.
  • Edit the config to fit your server.

Config

  • core = 'qb-core': your core name for the exports
  • prefix = 'qb-': your trigger prefix
  • notify = 'QBCore:Notify': your notification trigger
  • char_english_only = true: blocks character names that are not English
  • clothing_base = 'qb': "qb", "raid", "fivem-appearance" or "other"
  • clothing_name = 'qb-clothing': your clothing resource name

Clothing

Default support for 2 clothing stores: qb-clothing & raid-clothing.

  • If you're using qb-clothing, set clothing_base to "qb" even if your core name is different.
  • If you're using raid-clothing, paste the following function at the bottom of raid-clothing/client/client.lua: function SetPedMetadata(ped, data) for i = 1, #drawable_names do if data.drawables[0] == nil then if drawable_names[i] == "undershirts" and data.drawables[tostring(i-1)][2] == -1 then SetPedComponentVariation(ped, i-1, 15, 0, 2) else SetPedComponentVariation(ped, i-1, data.drawables[tostring(i-1)][2], data.drawtextures[i][2], 2) end else if drawable_names[i] == "undershirts" and data.drawables[i-1][2] == -1 then SetPedComponentVariation(ped, i-1, 15, 0, 2) else SetPedComponentVariation(ped, i-1, data.drawables[i-1][2], data.drawtextures[i][2], 2) end end end for i = 1, #prop_names do local propZ = (data.drawables[0] == nil and data.props[tostring(i-1)][2] or data.props[i-1][2]) ClearPedProp(ped, i-1) SetPedPropIndex(ped, i-1, propZ, data.proptextures[i][2], true) end Wait(100) if data.headBlend then SetPedHairColor(ped, tonumber(data.hairColor[1]), tonumber(data.hairColor[2])) SetPedHeadBlend(data.headBlend) SetPedHeadBlendData(ped, tonumber(data.headBlend['shapeFirst']), tonumber(data.headBlend['shapeSecond']), tonumber(data.headBlend['shapeThird']), tonumber(data.headBlend['skinFirst']), tonumber(data.headBlend['skinSecond']), tonumber(data.headBlend['skinThird']), tonumber(data.headBlend['shapeMix']), tonumber(data.headBlend['skinMix']), tonumber(data.headBlend['thirdMix']), false) for i = 1, #face_features do SetPedFaceFeature(ped, i-1, data.headStructure[i]) end if json.encode(data) ~= "[]" then for i = 1, #head_overlays do SetPedHeadOverlay(ped, i-1, tonumber(data.headOverlay[i].overlayValue), tonumber(data.headOverlay[i].overlayOpacity)) end SetPedHeadOverlayColor(ped, 0, 0, tonumber(data.headOverlay[1].firstColour), tonumber(data.headOverlay[1].secondColour)) SetPedHeadOverlayColor(ped, 1, 1, tonumber(data.headOverlay[2].firstColour), tonumber(data.headOverlay[2].secondColour)) SetPedHeadOverlayColor(ped, 2, 1, tonumber(data.headOverlay[3].firstColour), tonumber(data.headOverlay[3].secondColour)) SetPedHeadOverlayColor(ped, 3, 0, tonumber(data.headOverlay[4].firstColour), tonumber(data.headOverlay[4].secondColour)) SetPedHeadOverlayColor(ped, 4, 2, tonumber(data.headOverlay[5].firstColour), tonumber(data.headOverlay[5].secondColour)) SetPedHeadOverlayColor(ped, 5, 2, tonumber(data.headOverlay[6].firstColour), tonumber(data.headOverlay[6].secondColour)) SetPedHeadOverlayColor(ped, 6, 0, tonumber(data.headOverlay[7].firstColour), tonumber(data.headOverlay[7].secondColour)) SetPedHeadOverlayColor(ped, 7, 0, tonumber(data.headOverlay[8].firstColour), tonumber(data.headOverlay[8].secondColour)) SetPedHeadOverlayColor(ped, 8, 2, tonumber(data.headOverlay[9].firstColour), tonumber(data.headOverlay[9].secondColour)) SetPedHeadOverlayColor(ped, 9, 0, tonumber(data.headOverlay[10].firstColour), tonumber(data.headOverlay[10].secondColour)) SetPedHeadOverlayColor(ped, 10, 1, tonumber(data.headOverlay[11].firstColour), tonumber(data.headOverlay[11].secondColour)) SetPedHeadOverlayColor(ped, 11, 0, tonumber(data.headOverlay[12].firstColour), tonumber(data.headOverlay[12].secondColour)) end endend Then add export 'SetPedMetadata' at the bottom of the fxmanifest/__resource.lua of the raid-clothing resource.
  • If you're using any other clothing store, set it to "other" and edit all functions related to clothing: server/functions.lua (the getOtherClothing function) and client/main.lua (search for @other and change the functions there).

Support

Details

Frameworks
QBCore
File size
14.5 kB
Updated
Sep 27, 2026
How to install it

Installation

  1. Unzip the download into your server's resources folder.
  2. Add these lines to server.cfg, in this order:
    ensure bb-multichar

Checked: the one resource of this download.

From a static check of the files by the RPScripts Lab. It is not a test that your server starts.

BB Multichar (QB)

$20.99€18.99£15.99A$30.99R$106.99CHF 17.99¥3,320

Can't find the exact script? Generate it.

Describe a custom script. 3 free credits per day, up to 15 per calendar month; no card needed.

Try the FiveM AI Script Generator