Installation — lumo-clothing
Pick your framework below and follow only that section, then do the common steps and the test checklist.
Back up first. Copy your database and the clothing resource you are replacing somewhere safe. Rolling back is then just moving a folder back.
- QBCore
- Qbox (qbx_core)
- ESX (es_extended)
- Standalone (no framework)
- Common steps (every framework)
- Moving from the lumo-bridge edition
QBCore
- Copy
lumo-clothingintoresources/(any category, e.g.[lumo]). - Stop qb-clothing (and illenium-appearance / fivem-appearance if you run one). If your cfg says
ensure [qb], move the folder out of the category (see Disabling a resource). server.cfg:cfgensure oxmysql ensure ox_lib ensure qb-core ensure [qb] # qb-inventory, qb-target … (without qb-clothing) ensure lumo-clothing ensure qb-multicharacter # or lumo-multicharacter: after lumo-clothing- Restart. Console:
[lumo-clothing] ready — framework: qb.
lumo-clothing reads and writes the same playerskins table as qb-clothing, in the same format, so existing characters keep their look.
Qbox (qbx_core)
- Copy
lumo-clothingintoresources/. - Stop illenium-appearance (Qbox's default). It sits in
[standalone]or[qbx]on most recipes: move it to a disabled category. server.cfg:cfgensure ox_lib ensure [qbx] ensure lumo-clothing- Restart. Console:
[lumo-clothing] ready — framework: qbx.
Notes:
- Qbox's own character creation calls
qb-clothes:client:CreateFirstCharacter, which lumo-clothing answers, so new characters get the Lumo creator. - illenium-appearance also stores skins in
playerskins, but in its own format. Those are not converted: existing characters start in the default outfit once and save a new look at a shop. New characters are unaffected. - ox_inventory: add
install/ox_inventory_items.lua(see Items).
ESX (es_extended)
- Copy
lumo-clothingintoresources/. - Stop esx_skin and skinchanger. On ESX Legacy they sit in
[core], so move both into a category nothing ensures. lumo-clothing answers their events (skinchanger:getSkin,skinchanger:loadSkin,skinchanger:loadClothes,esx_skin:openSaveableMenu,esx_skin:getPlayerSkin) andprovides both names, so ESX job cloakrooms and resources that listesx_skinas a dependency (esx_ambulancejob …) keep working. server.cfg, with lumo-clothing before any resource that depends on esx_skin:cfgensure oxmysql ensure ox_lib ensure es_extended ensure lumo-clothing ensure lumo-multicharacter # or your ESX character selector, after lumo-clothing- Restart. Console:
[lumo-clothing] ready — framework: esx.
Notes:
- Skins are stored in
playerskinsunder the ESX character identifier (char1:…). ESX's ownusers.skincolumn is left untouched, so going back to esx_skin later is possible. Existing esx_skin looks are not converted: players save a new look at a shop once. - New characters: lumo-multicharacter opens the Lumo creator itself. Other selectors that open
esx_skin:openSaveableMenuget the Lumo creator too. - No target script needed. ESX ships without one, so shops, barbers, tattoo shops, job lockers and the laundromat show an [E] prompt when you walk up. If you install ox_target (free, works on ESX), lumo-clothing uses it automatically for the laundromat.
- Clothes as inventory items need an inventory that stores item metadata. ESX's own inventory cannot, so use ox_inventory for that feature or switch
Lumo.ClothingItems.enabledoff. Everything else works with ESX's inventory.
Standalone (no framework)
For servers without QBCore, Qbox or ESX. Details: Standalone.
- Copy
lumo-clothingintoresources/. server.cfg:cfgensure oxmysql ensure ox_lib ensure lumo-clothing ensure lumo-multicharacter # optional: characters; without it, one look per licence ensure lumo-spawn # optional add_ace group.admin lumo.clothing.admin allow add_principal identifier.license:YOUR_LICENSE group.admin- Restart. Console:
[lumo-clothing] ready — framework: standalone.
There is no money without a framework, so shopping is free by default. To charge, plug your economy into Standalone.Money in bridge/config.lua.
Common steps (every framework)
Database
Nothing to import: on first start lumo-clothing creates its tables (playerskins, player_outfits, lumo_shops, lumo_items, lumo_shop_items, lumo_shop_owners, lumo_tattoos, lumo_wardrobe, lumo_clothing_evidence) and adds 7 default shops if there are none. Works on MariaDB and MySQL 8.
If your database user cannot create tables, import sql/lumo_appearance.sql, sql/rp_features.sql and sql/framework_identifiers.sql in that order. sql/seed_data.sql is optional demo data.
Items
Only needed for clothes as inventory items, the hair tie and laundry detergent. Merge (do not replace your file):
| Inventory | File |
|---|---|
| ox_inventory | install/ox_inventory_items.lua → ox_inventory/data/items.lua |
| qb-inventory / lumo-inventory / ps / qs | install/qb_items.lua → qb-core/shared/items.lua |
Restart the inventory after changing items.
Thumbnails (optional): lumo-greenscreener
The shop's catalog pictures are taken in game by lumo-greenscreener, which is included with your download as its own zip (lumo-greenscreener-1.0.0.zip, free, GPL-3.0). It is only needed while you take pictures; without it the shop shows a placeholder. You can start it, make your pictures, and stop it again.
- Unzip
lumo-greenscreenerintoresources/next to lumo-clothing. - Have yarn (part of every FXServer) and screencapture (or screenshot-basic; only one of them) installed.
server.cfg, in this order, greenscreener before lumo-clothing:cfgWith screenshot-basic, the first permission line namesadd_ace group.admin lumo.greenscreener allow add_filesystem_permission screencapture write lumo-clothing add_filesystem_permission lumo-greenscreener write lumo-clothing add_unsafe_child_process_permission "lumo-greenscreener" ensure yarn ensure screencapture # or screenshot-basic ensure lumo-greenscreener ensure lumo-clothingscreenshot-basic.- Restart. The first start installs greenscreener's packages (needs internet, about a minute).
- In game:
/lumo_admin→ item editor → capture (one item, or bulk for a whole category)./cancelcapturestops a run. Pictures are saved tolumo-clothing/web/images/catalog/and show in the shop straight away.
Details and troubleshooting: the README inside the greenscreener zip.
Laundromat (optional)
The laundry feature's default location is the free Jerry's Laundromat MLO (lev_laundromat). Without it the laundromat prompt and blip simply stay hidden. See Laundry.
Disabling a resource inside a category
ensure [qb] starts everything in that folder, so deleting a line does nothing. Make a disabled category and move the old resource there:
resources/
[qb]/
[disabled]/ <- create this
qb-clothing/ <- move it hereMoving from the lumo-bridge edition
This edition carries its own copy of the framework layer in bridge/, so it no longer needs the separate lumo-bridge resource.
- Replace the whole
lumo-clothingfolder (do not merge). Copy yourshared.luachanges andweb/images/catalogthumbnails across. - Move any changes you made in
lumo-bridge/config.luaintolumo-clothing/bridge/config.lua. - Remove
ensure lumo-bridgeunless other Lumo resources still list it. - No database changes; the tables are checked on start.
Test checklist
- [ ] New character: the creator opens, saving keeps the look after a relog
- [ ] Clothing shop: preview, buy with cash and with bank; not enough money changes nothing
- [ ] Barber and tattoo shop: changes stay after a relog
- [ ] Outfits: save, wear, rename, delete; a second character has its own
- [ ] Job locker as the right job, and refused for others
- [ ]
/lumo_adminworks for an admin and is refused for a player - [ ] ESX: a job cloakroom (e.g. police) puts the uniform on and takes it off