F.A.Q

4 min readUpdated Today

F.A.Q

Setup

ESX, QBCore, and QBox, through ml_bridge. The framework is detected at runtime, so the same build runs on any supported core with no framework option to set.

No. The advanced inventory ships bundled with the product and loads from the same package. Start it before ml_clothing in your server.cfg.

No. Worn appearance is saved through your detected appearance script, or through inventory item metadata in native mode. The only table the resource creates is ml_invadmin_audit, the admin panel audit log, and it is created automatically on first start.

Six locale files ship in the build: English, Italian, German, Spanish, French, and Portuguese (Brazil). Set the active one with Config.Language. If the chosen language has no file, the resource falls back to English.

The prop streams from a DLC_ITYP_REQUEST declared in the manifest. Restart the server after first install. A hot refresh can skip newly added stream assets, so a full restart is needed the first time.

Clothing, plates, and bags

Clothing pieces are inventory items. Using an item equips it into its fixed slot from Config.ClothingItems and updates the matching ped component or prop. Removing it restores the default state defined in Config.DefaultClothing.

The appearance script has to hand the saved outfit to ML Clothing. Add exports.ml_clothing:syncFromNUI(appearance) right after each save in your appearance script; for illenium-appearance that means InitializeCharacter, OpenShop, and the changeOutfit event in client/client.lua. For codem-appearance, call exports.ml_clothing:syncFromPed() inside the save callbacks it exposes. The exact lines to add are in Clothing Integration.

No. Each item in Config.ClothingItems must have a unique slot number. If two items map to the same slot, one is dropped on equip. Slots 11 to 25 are reserved for clothing.

Body armor uses slot 14 and acts as a plate carrier. Inserting plates into it sets ped armor from the sum of plate health, capped at 100. A heavy carrier holds up to two plates, a light one holds one. Removing a plate returns it to the inventory with its remaining health.

With Config.UseBrokenPlates = true, a plate that reaches zero health becomes the broken plate item (Config.BrokenPlateItem, default brokenplate). The broken plate provides no protection but can be repaired.

Yes, when Config.BagEffect = true. A worn bag slows the player based on the weight it carries, interpolated from Config.Bag.SpeedTable. A heavier bag means a lower speed multiplier.

By the worn bag drawable index and gender, looked up in Config.BagSizes. Each entry sets weight, columns, and rows. A drawable with no entry falls back to Config.Bag.DefaultWeight and the default grid.

Yes. Config.BagBlacklist blocks items by exact name (items) or by name prefix (prefixes), and can prevent nesting a bag inside a bag with denyBagInsideBag. The swap is refused when a match is found.

Configured drawables lose durability while worn. At zero durability the piece stays worn but stops protecting, and is flagged in the ml_clothingBroken statebag. The shipped entries target radiation masks and suits. Body armor is excluded because it has its own plate durability. Repair behavior is set per entry or by the defaults in Config.WearDecay.

Admin

Run the command set by Config.Command (default invadmin), or bind a key with Config.OpenKey. Access is checked server side.

A player who holds the ACE in Config.AdminAce, when it is set, or a player that Bridge.HasPermission recognizes as admin. Without either, the panel refuses to open with an insufficient permissions message.

Item edits, stash edits, and player give and remove actions are written to the ml_invadmin_audit table with the admin name, source id, action, and detail.

Updates

Replace the resource folder with the new version, keeping your edited shared/config.lua, shared/invadmin_config.lua, open/ files, and locales/, since those are left out of escrow. Restart the server so any new stream assets load. Check the changelog for new config keys to merge into your existing files.