Commands & permissions
Everything goes through one chat command with subcommands, so it never takes a command name from another resource. /zappearance help lists the ones each player can use, and the chat suggests them as you type.
Chat commands
| Command | What it does | Who |
|---|---|---|
/zappearance help | Lists the commands you can use. | Everyone |
/zappearance reloadskin | Puts your saved clothes on again, if they look wrong or invisible. | Everyone |
/zappearance admin | Opens the admin panel, ZAIDERS Studio. | Admins |
/zappearance photos | The admin panel, on Catalog photos. | Admins |
/zappearance shops | The admin panel, on Shops. | Admins |
/zappearance prices | The admin panel, on the tattoo prices. Not there if the tattoo shop is off. | Admins |
/zappearance clothing | Opens the clothing store, wherever you are. | Admins (everyone with Config.CommandsForEveryone = true) |
/zappearance barber | Opens the barber shop. | Same as above |
/zappearance tattoos | Opens the tattoo shop. Not there with the tattoo shop off (Config.Tattoos.enabled = false). | Same as above |
/zappearance wardrobe | Opens the wardrobe: outfits and uniforms. | Same as above |
/zappearance creator [male|female] | Opens the character creator for you. Finishing it saves the new look on your character. | Admins |
/zappearance requests | The admin panel, on Height requests. Only with the character height and its requests on; height comes off out of the box, and then the command is nobody's, not even the admins'. | Admins and the height staff |
Every subcommand also works with its Spanish name (ropa, barberia, tatuajes, guardarropa, creador, panel, fotos, tiendas, precios, pedidos, recargar, ayuda) and with the name of Config.Locale's language, such as kleidung in German or vestiti in Italian. The help shows the names in the server's language.
Players use the map
Out of the box, opening a shop by command is for admins. Players walk into the shops on the map, so a store's location means something. Config.CommandsForEveryone = true lets everyone use those subcommands.
Renaming commands
Config.Command = 'zappearance'
Config.Subcommands = {
clothing = { 'clothing', 'ropa' },
wardrobe = { 'wardrobe', 'guardarropa' },
-- ...
}
Config.CommandShortcuts = {}Config.Commandrenames the main command. The console commands below follow it.Config.Subcommandssets the names of each subcommand. Every name in the list works.Config.CommandShortcutscreates commands of your own for a subcommand, with its same rules. It's empty by default so it never takes another resource's command:luaConfig.CommandShortcuts = { wardrobe = 'wardrobe', -- /wardrobe opens the wardrobe reloadskin = 'reloadSkin', -- /reloadskin, like other clothing menus have }The key is the new command and the value is the subcommand it runs. If a value isn't a subcommand, that shortcut isn't made and the server console says so when it starts.
A subcommand after a shortcut runs that one instead. With
{ clothing = 'clothing', tattoos = 'tattoo' },/clothing barberopens the barber shop and/tattoosthe tattoo shop, so radial menus and buttons made for another clothing menu's commands work untouched. A shortcut never takes a command another resource already has: F8 says so, and that command stays the other resource's.
Console commands
Run them in the server console (txAdmin's console works). They start with Config.Command's name.
| Command | What it does |
|---|---|
zappearance_migrate | Shows the outfits, uniforms and tattoos from another clothing menu that can be brought over. It only reads. |
zappearance_migrate outfits confirm | Brings the players' outfits (illenium-appearance's or qb-clothing's). |
zappearance_migrate uniforms confirm | Brings illenium-appearance's job uniforms. |
zappearance_migrate tattoos confirm | Brings the tattoos illenium-appearance or fivem-appearance kept inside each saved look. |
zappearance_clean_photos | Deletes the catalog photos that came out a single color. |
zappearance_tattoo_images [all] | Makes the pictures of your server's addon tattoos. With all, it makes them all again. |
zappearance_changes | Scans which garments changed since their photo and lists them per pack. Take them again in the panel: Clothing packs → Changes. |
zappearance_hair_swatches [all] | Prepares the swatches of the packs' hairs for the barber's color card (it also starts by itself after the server starts). With all, it makes them all again. |
See Coming from another menu and Catalog photos.
Admins
An admin opens the panel, opens any shop by command, uses the creator command and can paste a character's JSON. Anyone who has one of these is an admin:
Config.AdminAces = { 'zaiders_appearance.admin', 'clothing.admin' } -- ACE permissions
Config.AdminQbPermissions = { 'god', 'admin' } -- qb-core permissions
Config.AdminEsxGroups = { 'admin', 'superadmin' } -- ESX groupsThe recommended way is the ACE permission, in server.cfg:
add_ace group.admin zaiders_appearance.admin allowclothing.admin is the permission other clothing resources use, so admins of a server that came from one of them keep their access. Anyone without permission who tries the panel gets a message naming Config.AdminAce (zaiders_appearance.admin).
Don't use command
Many servers give the command permission to moderators. Keep the panel to the groups that should edit your catalog, shops and prices.
Catalog editors
Catalog editors can change garments from inside the clothing store, with a right click on a garment: rename it, mark it out of stock, give it its own price, or make it Only for… some jobs, gangs or groups. Admins are always editors. You can add more:
Config.CatalogEditors = {
qb = { 'god', 'admin' }, -- qb-core permissions
jobs = { clothingstore = 2 }, -- the clothingstore job, from grade 2
onDuty = true, -- jobs only while on duty
-- aces = { 'my.permission' }, -- other ACE permissions (without it, Config.AdminAces)
}Height staff
The height requests are answered by the admins and by Config.Height.requests.staff: out of the box, the ACE permission zaiders_appearance.height. For example, for your moderators:
add_ace group.mod zaiders_appearance.height allowIt also takes qb-core permissions, ESX groups or a job from a grade. See Character height.
VIP and other groups
Garments can be limited to a group of players by an ACE permission, such as VIP:
Config.GarmentGroups = {
{ name = 'vip', label = 'VIP', ace = 'zaiders_appearance.vip' },
}# server.cfg
add_ace group.vip zaiders_appearance.vip allow
add_principal identifier.fivem:123456 group.vipThen mark the garments: right click → Only for… → VIP, or many at once in the panel's Catalog editor. Players outside the group don't see those garments, and the server doesn't sell them. See Clothing store.
