Frameworks
| ESX Legacy | QBCore | Qbox | |
|---|---|---|---|
| Detected by | es_extended |
qb-core |
qbx_core |
| A character is | a users row keyed charN:<licence> |
a players row keyed on citizenid |
same |
| An account is | the bare licence | license:1a2b… |
license2:1a2b…, falling back to license: |
| Slot number lives in | the identifier prefix | players.cid |
same |
| Appearance stored in | users.skin + users.tattoos |
multicharacter_characters, mirrored to playerskins |
same |
playerskins format |
— | qb-clothing | illenium-appearance |
| Creator drives | skinchanger |
the ped directly | the ped directly |
Detection order is qbx_core → es_extended → qb-core, because a Qbox server
often keeps qb-core installed for legacy resources. Override with
Config.Framework ("auto", "esx", "qbcore", "qbox").
On QBCore and Qbox the account identifier is resolved per player — whichever of
their identifiers already owns characters wins — so a server that has run both
keeps everybody’s characters. Config.QB.identifier forces it.
