SleepyCode
Home
AboutBlogSubscriptionDocs
Cart0
SleepyCode
Cart0
  • πŸ’£Documentation

Scripts

  • Multicharacter
    • Features
    • Installation
    • Framework Setup
    • Core Settings
    • Characters and Slots
    • Identity
    • Spawn Selector
    • Camera and Scene
    • Arrival and Welcome
    • Starting Items
    • Loading Screen
    • Discord
    • Logs
    • Theme and Branding
    • Translations
    • Commands and Permissions
    • Database
    • Integrations
    • Hooks
    • Exports and Events
    • Examples
    • Security
    • Troubleshooting
  • DevTool
  • Fishing
  • πŸ—ƒοΈGarages V2
  • 🚌Bus Job
  • πŸš—Vehicle Shop V1
  • πŸ—ƒοΈGarages V1
  • 🍁Selldrugs
  • πŸŽ…Advent Calendar
  1. Docs
  2. /Multicharacter
  3. /Integrations

Multicharacter

Integrations

Appearance resources, custom clothing adapters, inventories, and screenshot-basic.

On this page3 sections
  • Appearance resources
  • Inventory
  • screenshot-basic

Appearance resourcesLink copied

Appearance is always applied by your clothing resource, through its own function. SC Multicharacter never sets components by hand, because only the clothing resource knows its outfits, overlays, and extras.

KeyResourceFormatEditor on creation
illeniumillenium-appearanceappearanceYes
fivem_appearancefivem-appearanceappearanceYes
qb_clothingqb-clothingqbNo
op_clothingop-clothingqbYes
um_clothingum-clothingqbNo
rcorercore_clothingappearanceYes
esx_skinskinchanger + esx_skinskinchangerYes
Lua
Config.Appearance = 'auto'
  • 'auto' tries resources in the Order from bridge/client/appearance.lua and uses the first running one that understands the saved appearance.
  • A key such as 'illenium' forces one adapter.
  • false disables appearance handling.

The resource detects the saved format: nested components and headBlend, or a flat skinchanger table. Adapters that do not understand it are skipped. When nothing matches, skinchanger builds a full appearance from scratch with the right gender.

Custom clothing resource

bridge/client/appearance.lua is editable. Add an entry to Adapters:

bridge/client/appearance.lua
SC.Bridge.Appearance.Adapters.my_clothing = {    resource = 'my-clothing', format = 'appearance',    apply = 'export', applyName = 'setPedAppearance',    editor = 'export', editorName = 'openCreator',}

Then add 'my_clothing' to Order, first if it should win, or set Config.Appearance = 'my_clothing'.

FieldDescription
resourceResource that must be running for the adapter to be used. Without it, the adapter is always used.
format'appearance', 'skinchanger', or 'qb'. A saved appearance in another format skips the adapter.
apply, applyNameApplies the saved appearance. 'export' calls exports[resource][applyName](appearance), 'event' calls TriggerEvent(applyName, appearance).
editor, editorNameOpens the editor for a new character. Same kinds as apply. Gets a callback to call when editing ends. Optional.
load, loadNameFor systems that store appearance in their own table. Called with { citizenid, gender, source } instead of apply. Optional.
editorResourceWhen the editor lives in another resource than resource, such as esx_skin next to skinchanger.
shape'skinchanger' only. Builds a full appearance from scratch, which makes the adapter a fallback.

apply, editor, and load can also be functions when the resource API is more than one export:

Lua
SC.Bridge.Appearance.Adapters.my_clothing = {    resource = 'my-clothing', format = 'appearance',    apply = function(appearance)        exports['my-clothing']:setModel(appearance.model)        exports['my-clothing']:setAppearance(PlayerPedId(), appearance)    end,    editor = function(done)        exports['my-clothing']:openCreator({ onClose = done })    end,}

Every adapter call is protected. A wrong export name is printed in F8 with Config.Debug = true, and the character still spawns.

In the appearance editor, your clothing resource controls the camera, not SC Multicharacter. Check that resource's camera settings if the editor camera behaves oddly.

InventoryLink copied

Lua
Config.Inventory = 'auto'

After selection, the resource tells the inventory the character is ready, then grants starting items.

ValueResource
'auto'First running one of ox_inventory, qb-inventory, qs-inventory
'ox_inventory'ox_inventory
'qb_inventory'qb-inventory
'qs_inventory'qs-inventory
falseNo inventory notification

On ox_core, this step is skipped because ox_core creates the inventory itself.

When the inventory is ready

Once the inventory exists, the resource:

  1. 1.
    grants the picked starting items from Config.StartingItems
  2. 2.
    calls the GiveStartingItems hook
  3. 3.
    fires sc_multicharacter:inventoryReady on the server and client

Grant your own items in GiveStartingItems or on inventoryReady, not on characterCreated. The inventory does not exist yet at that point.

Starting item images

With Config.StartingItems.itemImages = 'auto', images come from the inventory:

InventoryPath
ox_inventorynui://ox_inventory/web/images/<item>.png
qb-inventorynui://qb-inventory/html/images/<item>.png
qs-inventorynui://qs-inventory/html/images/<item>.png

screenshot-basicLink copied

screenshot-basic (opens in a new tab) is the official Cfx.re screenshot resource. SC Multicharacter uses it only for automatic spawn location photos.

  1. 1.
    Download screenshot-basic from GitHub releases.
  2. 2.
    Upload it to resources.
  3. 3.
    Add ensure screenshot-basic before sc_multicharacter.
  4. 4.
    Make sure Config.SpawnSelector.photos = true.

Photos are stored locally for each player. They never reach the server or the internet.

Without screenshot-basic, everything works and locations show a monogram badge. See Spawn Selector.

← PreviousDatabaseMulticharacterNext β†’HooksMulticharacter

On this page

  • Appearance resources
  • Inventory
  • screenshot-basic
↑ Back to top
Ready when you are

Put your server on something that holds up

150+ servers run our resources - ESX, QBCore and standalone. Once the payment clears, the package is waiting in Keymaster.

Browse the catalogueAsk on Discord β†—
  • Delivered instantly
  • Support with no expiry
  • 100+ reviews
  • Payment via Tebex

SleepyCode

FiveM Scripts

Checkout is run by Tebex Limited- they handle payment, invoicing and refunds. Β© 2026

Community

  • Discord
  • YouTube
  • X (Twitter)

Navigation

  • Home
  • All Scripts
  • ESX Scripts
  • QBCore Scripts
  • Free Scripts
  • About
  • Blog
  • Documentation
  • Support

Legal

  • Privacy Policy
  • Tebex Privacy Policy
  • Terms of Service
  • Impressum

Β© 2026 SleepyCode. Not affiliated with Rockstar Games or Take-Two Interactive.

Powered byTebex