Peak Clothing Items Documentation
Official documentation for Peak Clothing Items, a FiveM resource that turns worn clothing into physical inventory items.
Overview
Peak Clothing Items lets players remove clothing from their character, store it as an inventory item with metadata, trade it, and wear it again later. Each item stores the original drawable, texture, model, and sex so clothing returns to the correct slot.
Key Features
- 15 supported GTA V clothing and prop slots.
- QBCore, QBox, ESX, and standalone framework support.
ox_inventory,qb-inventory,ps-inventory,qs-inventory, andcodem-inventorysupport.- Appearance save support for
illenium-appearance,rcore_clothing,fivem-appearance, andskinchanger. /clothing remove <slot|all>and/clothing listcommands.- Optional
ox_liborqb-radialmenuradial menu integration. - Admin item grant command with ACE/framework permission checks.
- Server-side pending wear tracking to block forged refund events.
- English, French, Spanish, and Arabic localization.
Installation
1. Resource Placement
Place the resource in your server resources folder:
textresources/[peak]/peak-clothingitems
2. Start Order
Start it after your framework, inventory, and appearance resources:
cfgensure ox_lib ensure qb-core ensure ox_inventory ensure illenium-appearance ensure peak-clothingitems
Use the equivalent resources for ESX, QBox, or your chosen inventory.
3. Inventory Items
Add the included item definitions before starting the resource:
| Inventory | File To Use |
|---|---|
ox_inventory | install/ox_inventory_items.lua |
qb-inventory / ps-inventory | install/qb_shared_items.lua |
| ESX inventory table | install/esx_items.sql |
Clothing items must be unique or non-stacking because each item has unique metadata.
Copy the included 256x256 transparent PNG icons from images/ into your inventory image folder, such as qb-inventory/html/images/, ps-inventory/html/images/, or the equivalent folder for your inventory.
4. Configuration
Most servers can leave detection on auto:
luaConfig.Framework = 'auto' Config.Inventory = 'auto' Config.Appearance = 'auto' Config.Notify = 'auto' Config.RadialMenu = 'auto'
If auto-detection picks the wrong resource, set the exact value in shared/config.lua.
5. Admin Permission
Add ACE permission for /clothingadmin:
cfgadd_ace group.admin command.clothingadmin allow
Configuration Reference
| Option | Default | Description |
|---|---|---|
Config.Framework | 'auto' | QBCore, QBox, ESX, or standalone detection. |
Config.Inventory | 'auto' | Active inventory bridge. |
Config.Appearance | 'auto' | Appearance save bridge. |
Config.Notify | 'auto' | Notification bridge. |
Config.RadialMenu | 'auto' | Radial menu bridge or disabled state. |
Config.Command | 'clothing' | Base player command. |
Config.AllowRemoveAll | true | Enables /clothing remove all. |
Config.Cooldown | 2000 | Client and server cooldown in milliseconds. |
Config.EnableRadialMenu | true | Registers supported radial menu entries. |
Config.Locale | 'en' | Active locale file. |
Config.Debug | false | Prints debug diagnostics. |
Default bare clothing values are stored in shared/items.lua under ClothingItems.DefaultValues. Update those values if your server uses custom base clothing.
Commands
| Command | Description |
|---|---|
/clothing remove <slot> | Removes one clothing slot and creates an inventory item. |
/clothing remove all | Removes all currently worn supported slots. |
/clothing list | Lists removable clothing currently worn. |
/clothingadmin give <id> <slot> <drawable> <texture> | Gives a player a clothing item. |
Available slots:
textmask, torso, pants, bag, shoes, accessory, undershirt, vest, decal, top, hat, glasses, earring, watch, bracelet
Validation Checklist
After installation:
- Confirm the server console shows the resource initialized with the expected framework and inventory.
- Confirm the console shows 15 usable clothing items registered.
- Wear a hat and run
/clothing remove hat. - Confirm the inventory item appears with metadata.
- Use the item and confirm it returns to the correct slot.
- Reconnect and confirm appearance persistence if an appearance resource is configured.
Troubleshooting
Items do not appear
- Confirm item definitions were added to your inventory.
- Confirm the inventory starts before
peak-clothingitems. - Enable
Config.Debug = trueand check console output.
Items cannot be worn
- Confirm item metadata exists.
- Confirm the player model matches the item model.
- Remove any clothing already occupying that slot.
Clothing does not persist
- Confirm a supported appearance resource is running.
- Set
Config.Appearanceexplicitly if auto-detection is wrong. - Check the appearance resource logs for save failures.
Radial menu does not show
- Confirm
Config.EnableRadialMenu = true. - Confirm
ox_liborqb-radialmenuis running first.
Developer API
Server exports:
luaexports['peak-clothingitems']:GetFrameworkName() exports['peak-clothingitems']:IsReady() exports['peak-clothingitems']:AddItem(source, itemName, count, metadata) exports['peak-clothingitems']:RemoveItem(source, itemName, count, slot) exports['peak-clothingitems']:HasItem(source, itemName, count)
Internal client helpers:
luaPeak.Client.RemoveClothingPiece('prop', 0) Peak.Client.RemoveAllClothing() Peak.Client.GetWornClothing()
Direct client helper calls should only be used by trusted resources.
Security Notes
Inventory changes are server-side. The server validates slot payloads, rate-limits conversion callbacks, and refunds failed wear attempts only when a matching pending wear action exists.
The player client still reads current ped clothing values before conversion, so new integrations should continue treating client-originated state as untrusted.