Clothing shops in FiveM typically hand players a menu and let them buy anything — there’s no access control, no preview, and no way to make a police uniform mean something. This script changes the model: outfits are purchasable items with job and grade restrictions baked in, players can try before they buy using a live character preview, and wearing the item applies the full uniform instantly without a separate wardrobe interaction.
How the Outfit System Works
Each outfit is configured with its clothing components, the jobs or gangs allowed to purchase it, the grade requirement, and whether it’s freely available to all players. Store locations, prices, and available stock are set in a single modular config file. When a player equips an outfit item from their inventory, the full clothing set applies in one step — no picking individual pieces from a wheel menu.
- Live character preview before purchase — players see the outfit on their actual ped
- Job, grade, and gang-based access restrictions per outfit
- Free-for-all flag available for civilian or universal uniforms
- Wearable inventory items — equip the full outfit from a single item use
- Dual UI support: ox_lib context menu or BDUK UI interface
- Configurable store locations, pricing, and stock in one config file
- Works with ox_inventory and qb-inventory
- Target system support via ox_target and qb-target
- Notification compatibility: ox_lib, mythic_notify, okokNotify, QBCore notify
Dependencies
Requires ox_lib and QBCore. Clothing rendering uses qb-clothing or illenium-appearance. BDUK is only needed if using the BDUK UI store option.
Where This Fits
Police locker rooms, EMS supply points, mechanic shop gear, gang-specific clothing vendors, civilian boutiques — anywhere uniform access should be controlled by role rather than just proximity to a store. The wearable item approach also integrates naturally with ox_inventory’s item system: the uniform lives in the player’s backpack until they need it, keeping the clothing experience consistent with how everything else on your server works.












