Clothing System
Core Inventory treats clothing as items — every hat, jacket, pair of shoes, and accessory is a real inventory item with metadata. Players equip and unequip clothes by dragging them in the inventory, and their outfit persists across sessions through the clothing holder system.
QB-CLOTHINGqb-clothing
ILLENIUM APPEARANCEillenium-appearance
CORE CLOTHINGcore_clothing
How It Works
Each clothing component (torso, pants, shoes, hats, glasses, etc.) is mapped to a GTA drawable/texture ID and stored as item metadata. When a player equips a clothing item, the system applies the correct drawable to their ped. When they unequip it, the default skin component is restored.
The system supports:
- Clothing holders — dedicated wardrobe slots separate from the main inventory
- Gender-aware items — each piece stores both male and female drawable IDs
- Outfit persistence — clothing loads automatically on spawn and character selection
- Locking — scripts can lock/unlock the clothing system during animations or events
Don't Want Clothes as Items?
Not every server needs clothing as inventory items. If you prefer a traditional clothing system, set this in your config.lua:
lua
DisableClothing = trueThis completely disables the clothing-as-items system — no clothing holders, no clothing items, no wardrobe slots. Players will use whatever standalone clothing script you have installed without any Core Inventory integration.
Compatible Clothing Scripts
We provide ready-to-go forks of popular clothing scripts that work with Core Inventory's clothing system out of the box. Just download the fork, drop it in your resources, and enable Core Inventory in the script's config — that's it.
qb-clothing
Our fork of qb-clothing has been converted to work with Core Inventory. Enable it by setting UsingCoreInventory = true in the qb-clothing config. When enabled, clothing purchases become inventory items and the standard clothing database storage is bypassed entirely.
qb-clothing
QB Clothing fork — converted for Core Inventory clothing system
illenium-appearance
Our fork of illenium-appearance is also converted. Enable UsingCoreInventory = true in the config and all appearance changes will flow through the inventory item system.
illenium-appearance
Illenium Appearance fork — converted for Core Inventory clothing system
Core Clothing
Core Clothing is our own standalone clothing shop script. It works with both QB and ESX and has a built-in UsingCoreInventory config toggle. When enabled, purchases are saved as inventory items with full metadata.
Heads Up
Core Clothing is functional but outdated — it was one of our earliest scripts and the UI and feature set reflect that. It still works fine as a basic clothing shop, but we're not actively updating it.
We're currently building a brand new appearance script from the ground up. It will feature automatic image generation for clothing items (no more placeholder icons), a modern UI, and the best clothes-as-items experience ever made. Stay tuned.
Clothing Exports
These client exports let any script interact with the clothing system — read what a player is wearing, save outfits to inventory, or save them to the dedicated clothing holders.
client
exports['core_inventory']:getClothingItemFromPedSkin(ped, notIncludeDefaultSkin)Extracts clothing data from a ped's current appearance. Returns a table of clothing components (torso, legs, shoes, hats, etc.) with their drawable/texture values. Supports both male and female models.
| Parameter | Type | Description |
|---|---|---|
ped | number | Ped handle (nil for local player) |
notIncludeDefaultSkin | boolean | If true, only returns clothing that differs from the default skin |
Returns:
tableExample
lua
-- Get all clothing the player is currently wearing
local clothes = exports['core_inventory']:getClothingItemFromPedSkin()
-- Get only non-default clothing (what the player actually changed)
local clothes = exports['core_inventory']:getClothingItemFromPedSkin(nil, true)client
exports['core_inventory']:addClothingItemFromPedSkinInInventory(ped, addAlreadyOwnCloth, notIncludeDefaultSkin, notCheckSpace)Reads the ped's current clothing and adds it as items to the player's main inventory. Useful for saving an outfit as inventory items after a clothing purchase.
| Parameter | Type | Description |
|---|---|---|
ped | number | Ped handle (nil for local player) |
addAlreadyOwnCloth | boolean | Add even if player already owns this clothing piece |
notIncludeDefaultSkin | boolean | Skip default skin components |
notCheckSpace | boolean | Skip inventory space check |
Returns:
voidExample
lua
-- Save current outfit to player's inventory
exports['core_inventory']:addClothingItemFromPedSkinInInventory(nil, false, true, false)client
exports['core_inventory']:addClothingItemFromPedSkinInClothHolder(ped, addAlreadyOwnCloth, notIncludeDefaultSkin, notCheckSpace)Reads the ped's current clothing and adds it to the player's clothing holder inventory — the dedicated wardrobe slots, not the main inventory.
| Parameter | Type | Description |
|---|---|---|
ped | number | Ped handle (nil for local player) |
addAlreadyOwnCloth | boolean | Add even if player already owns this clothing piece |
notIncludeDefaultSkin | boolean | Skip default skin components |
notCheckSpace | boolean | Skip inventory space check |
Returns:
voidExample
lua
-- Save current outfit to clothing holder (wardrobe)
exports['core_inventory']:addClothingItemFromPedSkinInClothHolder(nil, false, true, false)client
exports['core_inventory']:lockCloth()Locks the clothing system, preventing the player from changing clothes. Useful during animations, minigames, or restricted zones.
Returns:
voidExample
lua
exports['core_inventory']:lockCloth()client
exports['core_inventory']:unlockCloth()Unlocks the clothing system, allowing the player to change clothes again.
Returns:
voidExample
lua
exports['core_inventory']:unlockCloth()Connecting Your Own Clothing Script
If you're using a clothing script we don't have a fork for, you can integrate it yourself using the exports above. The basic flow is:
- Player finishes customizing their appearance in your clothing script
- Call
addClothingItemFromPedSkinInClothHolder()to save the new clothing as items - Core Inventory handles persistence, equipping, and unequipping from there
lua
-- After player confirms their outfit in your clothing script:
exports['core_inventory']:addClothingItemFromPedSkinInClothHolder(
nil, -- nil = local player ped
false, -- don't add duplicates
true, -- skip default skin pieces
false -- respect inventory space
)This is exactly what our qb-clothing and illenium-appearance forks do under the hood.
