Custom clothing transforms FiveM from "everyone looks the same" to a server where every player, department, and faction has a unique visual identity. EUP (Emergency Uniforms Pack) is the foundation, but there's much more to explore.
Understanding FiveM Clothing
GTA V clothing uses a component system:
| Component ID | Body Part |
|---|---|
| 0 | Head/Face |
| 1 | Facial hair/masks |
| 2 | Hair |
| 3 | Upper body (torso) |
| 4 | Legs |
| 5 | Bags/parachute |
| 6 | Shoes |
| 7 | Accessories |
| 8 | Undershirt |
| 9 | Body armor |
| 10 | Badges/logos |
| 11 | Jacket/overshirt |
Addon clothing either replaces existing component variants or adds new ones using the FiveM streaming system.
Installing EUP
EUP provides detailed emergency service uniforms: police, fire, EMS, military.
Step 1: Download EUP
Get the latest EUP from official sources. The package includes:
eup-stream(clothing models)eup-ui(in-game wardrobe menu)
Step 2: Stream the Files
Place eup-stream in your server's resource folder and add to server.cfg:
ensure eup-stream
ensure eup-ui
Step 3: Configure Permissions
Restrict EUP access to authorized players:
Config.AuthorizedJobs = {
'police',
'ambulance',
'fire'
}
Only players with these job roles can access EUP clothing through the menu.
Custom Addon Clothing
Beyond EUP, you can add any custom clothing. The process:
- Model the clothing in Blender or similar 3D software
- Convert to GTA V format using OpenIV or CodeWalker
- Create a streaming resource:
resources/[custom]/my-clothing/
fxmanifest.lua
stream/
mp_m_freemode_01_mp_m_customshirt_0.ydd
mp_m_freemode_01_mp_m_customshirt_0_0.ytd
fxmanifest.lua
fx_version 'cerulean'
game 'gta5'
this_is_a_map 'yes'
client_script 'client.lua'
files {
'stream/**/*.ydd',
'stream/**/*.ytd'
}
Optimizing Clothing Streams
Custom clothing increases server download size. Each player needs to download all streamed clothing when they first connect.
| Optimization | Before | After |
|---|---|---|
| Compress textures (1024x1024 to 512x512) | 5MB/item | 1.5MB/item |
| Remove unused LOD models | 3 LODs/item | 1-2 LODs/item |
| Batch related clothing | 50 small files | 10 packed files |
| Use proper compression | Uncompressed | YTD compressed |
Total clothing stream size should ideally stay under 500MB. Servers with 2GB+ of custom clothing cause 5-10 minute loading times for new players.
Wardrobe Systems
Give players a way to save and load outfits:
-- Save outfit
RegisterCommand('saveoutfit', function(source, args)
local name = args[1]
local ped = PlayerPedId()
local outfit = {}
for i = 0, 11 do
outfit[i] = {
drawable = GetPedDrawableVariation(ped, i),
texture = GetPedTextureVariation(ped, i)
}
end
-- Save to database
TriggerServerEvent('wardrobe:save', name, outfit)
end)
Players love outfit saving. RP players often have 5-10 outfits for different situations (work uniform, casual, formal, tactical).
Department-Specific Configuration
| Department | Clothing Needs | Priority |
|---|---|---|
| Police | Patrol uniform, detective suit, SWAT gear | High |
| EMS | Paramedic uniform, doctor coat | High |
| Fire | Bunker gear, station uniform | Medium |
| Mechanics | Coveralls, shop outfit | Low |
| Civilians | Variety of casual/formal options | Medium |
For a polished RP server on Space-Node FiveM hosting, the NVMe SSD ensures fast clothing stream delivery. New players download custom clothing quickly instead of staring at a loading screen for minutes.
