How It Works#
Outfit Bag has two kinds of bag, and it helps to know which is which from the start:
Bag | Where it comes from | What is inside |
|---|---|---|
Personal bag | A player uses the | The owner's own saved outfits. The owner saves, deletes, locks and picks up; anyone else may only borrow while it is unlocked. |
Uniform bag |
| The outfits written in the config. Nobody saves or deletes; a job list decides who may open it. |
Either way the same window opens: the player walks up and kneels beside the bag, a camera frames the scene, and the list of outfits appears.
Placing and Picking Up a Bag#
Using the item plays a short animation, sets the bag on the ground one metre in front of the player, facing them, and takes one item from the inventory. A player can have several bags standing at once — each one costs an item — with a two-second pause between placements.
The bag appears for everybody. Players already online get its interaction straight away; players who join later receive every standing bag a couple of seconds after they load in.
Only the owner sees Pick Up Bag. Picking up plays the same animation, removes the bag for everyone and puts one item back in the inventory.
Target | Open the bag | Pick it up (owner) |
|---|---|---|
| Use Bag option | Pick Up Bag option |
| Use Bag option, within 2 m | Pick Up Bag option |
| E within 2 m | G within 2 m |
Built-in prompt | E within 2 m | G within 2 m |
The bag's lifecycle#
Placed bags live in the server's memory, not in the database. A bag disappears:
when its owner picks it up — the item comes back;
when its owner disconnects — the item does not come back;
when the resource or the server restarts — the item does not come back either.
The Bag Window#
Opening a bag walks the player to it, kneels them beside it and frames the scene with a camera. The window lists the outfits in the bag; under the list sit Save Outfit and a padlock.
Action | How | Who |
|---|---|---|
Preview | Click an outfit. The character appears beside the window wearing it; nothing changes on the player yet. Click it again, or anywhere else, to dismiss the preview. | Anyone who can see the list |
Apply | With an outfit open, click one of its four icons — see Apply modes below. | Anyone who can see the list |
Save | Save Outfit, type a name of up to 50 characters, then Enter or Confirm. It saves what the player is wearing right now. Escape cancels. | Owner, bag unlocked |
Delete | The bin icon on an open outfit. Immediate — there is no confirmation. | Owner |
Lock / unlock | The padlock. | Owner |
Close | ESC or Backspace. The camera returns and the player stands up. | Anyone |
Saving records what the character is wearing at that moment, so dress first — at a clothing store, a wardrobe, or by applying parts of other outfits — then open the bag and save.
Apply modes#
Every outfit can be worn whole or in parts, so a player can change a jacket without touching their trousers:
Icon | Mode | What it changes |
|---|---|---|
Person | Full Outfit | Everything below: torso, undershirt, arms, legs, shoes, mask, bag, accessory, vest, hat, glasses, ears, watch and bracelet. |
Shirt | Top Only | Torso, undershirt and arms. |
Socks | Bottom Only | Legs and shoes. |
Glasses | Accessories Only | Mask, bag, accessory and vest, plus hat, glasses, ears, watch and bracelet. |
An outfit never changes the face, hair or decals. Props the outfit does not wear — a hat, a pair of glasses — are taken off when a full outfit or its accessories are applied, so the result matches what was saved. The scuba undershirt brings its air tank with it.
Every value is checked against the player's own model before it is put on: a piece that model does not have is replaced by the nearest one it does. An outfit saved on a male character still applies to a female one, but it will not look the same — keep a separate outfit for each.
Locking and Sharing#
Every bag starts locked. A locked bag shows no list to anybody — the owner included — and has no Save button. The owner presses the padlock to unlock it, and from then on:
Unlocked bag | Owner | Anyone else |
|---|---|---|
See and preview the outfits | Yes | Yes |
Apply an outfit | Yes | Yes |
Save an outfit | Yes | No |
Delete an outfit | Yes | No |
Lock it again | Yes | No |
Pick up the bag | Yes | No |
An unlocked bag is how players lend clothes: a crew member drops one at the meeting point, unlocks it, and everyone picks a look from the owner's wardrobe. Locking it again hides the list from the next person who opens it. The lock belongs to that one bag — a newly placed bag always starts locked.
Uniform Bags#
Uniform bags are fixed bags written in Config.DefaultBags. Each one appears a second after the resource starts, frozen and indestructible, and opens on the outfits you wrote for it — made for a police locker room, an EMS station or a mechanic's garage.
Config.DefaultBags = {
{
pos = vector3(441.2, -981.9, 29.7), -- where the bag stands
pedpos = { x = 441.1165, y = -981.3917, z = 29.6896, heading = 180.9981 }, -- where the player kneels
outfits = {
{
name = 'Police Uniform',
data = {
['arms'] = { item = 30, texture = 0, palette = 0 },
['t-shirt'] = { item = 15, texture = 0, palette = 0 },
['torso2'] = { item = 55, 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 = 5, texture = 0 },
}
},
},
jobs = { 'police' }, -- who may open it
public = false, -- true opens it to everybody
},
}Field | What it does |
|---|---|
| The bag's position. It is dropped onto the ground beneath that point. |
| Where the player kneels and which way they face. Without it the player kneels on the bag's own position, so always set it. |
| A list of |
| The job names allowed to open it. Leave it out, or empty, to allow every job. |
|
|
A player who is not allowed sees You are not allowed to use this bag! and the window stays closed. In a uniform bag the list is always visible, and there is no Save button, padlock or bin.
A standalone server has no jobs, so a uniform bag with a job list opens for nobody there. Make it
public.
Writing an outfit#
data maps each clothing slot to its drawable (item), its texture and, for clothing, its palette. A clothing slot left out stays as the player has it; a prop slot left out is taken off.
Key | Slot | GTA id |
|---|---|---|
| Torso / jacket | Component 11 |
| Undershirt | Component 8 |
| Arms / gloves | Component 3 |
| Legs | Component 4 |
| Shoes | Component 6 |
| Mask | Component 1 |
| Bag / parachute | Component 5 |
| Chains, ties and scarves | Component 7 |
| Body armour | Component 9 |
| Hat / helmet | Prop 0 |
| Glasses | Prop 1 |
| Ear accessory | Prop 2 |
| Watch | Prop 6 |
| Bracelet | Prop 7 |
Saved outfits also record face, hair, decals and chain, which is why the shipped example lists them. They are accepted, but applying an outfit never uses them.
The quickest way to get the numbers is to let the script record them: dress the uniform on a character, save it in a personal bag, and copy its data column from the database:
SELECT name, data FROM outfitbag_outfits WHERE name = 'Police Uniform';The column holds JSON such as {"torso2":{"item":55,"texture":0,"palette":0}, ...}. Turn each "key":{...} into ['key'] = {...} and paste it under data.
Drawable numbers belong to a model. A uniform written for
mp_m_freemode_01shows the nearest available pieces onmp_f_freemode_01, so give each its own outfit — Patrol (M) and Patrol (F).
Persisting Outfits#
Applying an outfit changes what the character wears right now. Your clothing resource does not hear about it, so after a reconnect the character loads in whatever that resource last saved. Turn on Config.PersistOutfitToClothing to hand every applied outfit to it:
Config.PersistOutfitToClothing = trueFramework | Saved through |
|---|---|
Any | illenium-appearance, fivem-appearance or qb-appearance, when one of them is running — checked first. |
ESX | skinchanger and esx_skin. |
QBCore | qb-clothing. |
Qbox | qb-clothing or qbx-clothing. |
Previews are never saved — only an outfit that is actually applied. The full list of clothing resources and how each is called is in Integrations.
The Settings#
Everything on this page is driven by a handful of values in shared/config.lua; the full table is in Installation → Configuring the Resource.
The config is read when the resource starts, so restart it after a change — and remember that a restart removes every placed bag, without returning the items. Do it when nobody has a bag on the ground.



