Commands#
On a framework server Outfit Bag has no chat commands and no admin panel — the item is the interface, and everything else is in shared/config.lua. The one command exists for standalone servers, where there is no inventory to hold the item:
Command | Where | Description |
|---|---|---|
| In game, standalone only | Places a bag in front of the player, as using the item would. Its name follows |
Giving the item is done with your framework's or inventory's own command — /giveitem <id> outfitbag 1 on ESX, QBCore and ox_inventory, where <id> is the player's server id.
For diagnosing,
Config.Debug = trueprints every step — detection, placing, syncing to other players, pickups and clean-ups — prefixed with[Quasar Outfit Bag], in the server console and in F8.
Exports#
Outfit Bag registers no exports. Other resources drive it through one event, and read its data straight from the database — both below.
Events#
For placing a bag from your own scripts — a radial menu, a job locker, a shop that sells and drops a bag in one go.
Place a bag for a player
The client event the usable item fires. It runs the whole placement: the animation, the bag on the ground, its interactions for every player, and one Config.ItemName taken from the inventory.
-- Server side: the same thing using the item does
TriggerClientEvent('quasar_outfit_bag:use', source)
-- Client side, for the local player
TriggerEvent('quasar_outfit_bag:use')Reading Saved Outfits#
Saved outfits sit in one table, so a website, a Discord bot or another script can read them without going through Outfit Bag:
Column | Type | Holds |
|---|---|---|
| int | A random six-digit id, the primary key. |
| varchar(255) | The owner — which identifier depends on the framework, see Integrations. |
|
SELECT id, name, data
FROM outfitbag_outfits
WHERE identifier = 'char1:1a2b3c4d5e6f7a8b9c0d';data has the same structure a uniform bag uses, one entry per slot:
{
"torso2": { "item": 55, "texture": 0, "palette": 0 },
"t-shirt": { "item": 15, "texture": 0, "palette": 0 },
"pants": { "item": 35, "texture": 0, "palette": 0 },
"shoes": { "item": 25, "texture": 0, "palette": 0 },
"hat": { "item": 46, "texture": 0 },
"glass": { "item": -1, "texture": -1 }
}Clothing slots carry item, texture and palette; prop slots carry item and texture, with -1 meaning nothing is worn. Every key is listed in Usage → Writing an outfit.
Write to the table with care. A row added by another script appears in its owner's bag the next time a bag is opened, but its
idmust be unique — the column has no auto-increment, so pick one that is not taken.


