Skip to main content

Outfit Configuration

The outfit system controls:

  • job uniforms
  • gang uniforms
  • default outfits
  • grade-based outfits
  • fallback clothing states

Configuration is located inside:

shared/data/outfits.lua

System Purpose

The outfit system was designed for:

  • faction uniforms
  • department clothing
  • roleplay organizations
  • clothing rooms
  • fallback clothing systems

The system supports both:

  • freemode outfits
  • partial clothing states

Structure Overview

Main structure:

Config.Outfits = {}

Example:

Config.Outfits = {
['police'] = {
['male'] = {
[0] = {
{
outfitLabel = 'Uniform',
outfitData = {}
}
}
}
}
}

Group Names

The first key defines the outfit group.

Examples:

['police']
['ambulance']
['ballas']
['vagos']

This may represent:

  • jobs
  • gangs
  • factions
  • organizations

depending on server logic.


Gender Structure

Supported genders:

male
female

Example:

['male'] = { ... }
['female'] = { ... }

Grade System

The outfit system supports grade-based outfits.

Example:

[0] = { ... }
[1] = { ... }
[2] = { ... }

This allows:

  • rank uniforms
  • progression systems
  • department hierarchy clothing

Outfit Labels

Each outfit supports a custom label.

Example:

outfitLabel = 'Uniform'

Used inside:

  • clothing rooms
  • outfit menus
  • UI selections

Outfit Data

Actual clothing data is stored inside:

outfitData = {}

Example:

['pants'] = {item = 0, texture = 0},
['torso2'] = {item = 15, texture = 0},
['hat'] = {item = -1, texture = 0},

Supported Categories

Supported clothing categories:

pants
arms
t-shirt
vest
torso2
shoes
accessory
mask
decals
bag
hat
glass
ear
watch
bracelet

Item Values

Example:

item = 15

Represents the drawable/component ID.


Texture Values

Example:

texture = 0

Represents the texture variation of the drawable.


Prop Removal

Props may be removed using:

item = -1

Example:

['hat'] = {item = -1, texture = 0}

Used for:

  • hats
  • glasses
  • earrings
  • watches
  • bracelets

Fallback Clothing

The outfit system is also used internally by the clothes-off system.

Fallback states are loaded from outfit values.

Example:

['arms'] = {item = 15, texture = 0}

This defines what the player looks like after removing upper clothing.


Clothing Room Integration

Outfits integrate directly with:

shared/data/clothing_rooms.lua

The system automatically selects matching:

  • job outfits
  • gang outfits
  • gender outfits
  • grade outfits

based on player data.


Freemode Recommendations

Recommended for freemode compatibility:

mp_m_freemode_01
mp_f_freemode_01

These provide the most stable clothing support.


Partial Outfit Support

Outfits do not need to contain every category.

Example:

outfitData = {
['torso2'] = {item = 15, texture = 0}
}

Only specified categories are changed.

This is useful for:

  • tactical vests
  • jackets
  • accessories
  • partial uniform systems

Recommended Workflow

Recommended workflow:

1. Create clothing room
2. Configure outfit groups
3. Configure genders
4. Configure grades
5. Test synchronization

Developer Notes

The outfit system intentionally avoids framework-specific job handling internally.

Purpose:

  • easier framework integration
  • gang support
  • standalone compatibility
  • simpler override workflows