Escrow & editable files
ZAIDERS Appearance is protected with Cfx.re Asset Escrow. Its Lua code is encrypted and only runs on servers whose license key belongs to the account that bought it. Cfx.re escrow encrypts Lua only: the menu's interface ships compiled, and a few helper scripts (.js) ship as they are. The things you are meant to change stay open: the config file, the language files and everything you set in the admin panel.
At a glance
In the zaiders_appearance folder:
shared/config.lua: every option of the script.locales/*.json: every text, in each language. You can also add a language.
And outside it:
zaiders_photos/fxmanifest.lua: only to change how players get the photos.Appearancez.sql: the tables, run once.
- Shops on the map: their blips, their E sign, and each one's own catalog and prices.
- Garment names, prices, stock, and who can buy each one.
- Tattoo prices and stock.
- The Peds shop: what's for sale, prices, owners and codes.
- The menu's colors, brand name, logo and side.
- The catalog photos and their framing.
- The Lua scripts of
client/,server/andshared/(all butconfig.lua): encrypted. - The menu's interface (
web/, one compiled file) and the helper.jsfiles inclient/,server/andzaiders_photos/: readable, but not meant to be edited. Every update replaces them. - The game data files (
data/) and the E sign pictures (prompt/). They are generated.
I want to change...
| I want to change... | Where |
|---|---|
| The prices of clothes and the barber | Config.Prices. For a single garment, right click it in the shop or use the panel's Catalog editor. |
| Tattoo prices | Panel → Tattoos → Prices. The defaults are in Config.Tattoos. |
| Where the shops are, their blips and their E sign | Panel → Shops. See Map shops & blips. |
| The menu's colors, logo, brand name or side | Panel → Theme. See ZAIDERS Studio. |
| Any text of the menu or the notices | locales/<language>.json. See Languages & texts. |
| The language | Config.Locale. |
| Who is an admin | Config.AdminAces, Config.AdminQbPermissions, Config.AdminEsxGroups and your server.cfg. |
| The command and its subcommands | Config.Command, Config.Subcommands, Config.CommandShortcuts. |
| VIP or job-only garments | Right click a garment → Only for…, with the groups of Config.GarmentGroups. |
| The notifications | Config.Notify, with your own notify function. |
| When the menu may open | Config.CanOpenMenu, with your own rule. |
| Hiding your server's HUD while a menu is open | Config.HideHud. |
| What a player wears when undressing | Config.Undress, Config.Naked, Config.UndressWithTop. |
| The camera and the pose | Config.Camera, Config.Poses. |
| Turning a feature off | Its switch in the config: Config.Tattoos.enabled, Config.PedShop.enabled, Config.Wardrobe.shareCodes, Config.Barber, Config.InvisibleButton, Config.AutoArms, Config.ConfirmOnExit, Config.Sounds and more. See the Config reference. |
| Opening a menu from another script | exports.zaiders_appearance:openShop(...). See Exports, events & hooks. |
The config file
shared/config.lua is listed in the resource's escrow_ignore, so it stays readable and editable after escrow:
escrow_ignore {
'shared/config.lua',
}- Every option has a comment in English and Spanish right above it.
- After editing it, restart the resource (
ensure zaiders_appearance) or the server. - The resource checks it on start. A missing option or a value written the wrong way (a number in quotes,
truewhere a table goes) doesn't stop it: the default is used and the console says what it fixed. See How the config is checked. - When you update, keep your
config.lua. Options added by a new version take their defaults even if your file doesn't have them.
The language files
locales/en.json, locales/es.json and the rest are plain JSON. Escrow doesn't touch them. Change any text by editing its line, or add a new language by copying en.json. See Languages & texts.
Keep a copy of your edited texts
An update brings new language files with any new texts. If you changed some, keep a copy of your file and put your lines back after updating.
What the admin panel saves
Everything you save in ZAIDERS Studio goes to the zaiders_appearance/saved/ folder. The server writes it. Don't edit it by hand, and keep the folder when you update.
| File | What it holds |
|---|---|
shops.json | The map shops: place, radius or drawn area, blip, E sign, what each clothing store offers, and each shop's own catalog and prices (percent, what it sells, which packs). Without it, the game's shops are used. |
tattoos.json | Tattoo prices per zone, each tattoo's own price and stock. |
garments.json | Garment names, prices, stock and who can buy each one (Catalog editor and right click). |
theme.json | The menu's look: colors, brand name, logo and side. |
peds.json | The Peds shop: what is for sale, prices, one-owner rules and your addon peds. |
identities.json | Which garment is behind each number. An admin's game sends it. |
language.json | The language the shops were named in, to rename them if Config.Locale changes. |
studio.json | The photo studio's choices: the hair color of the hair photos and each slot's Photo framing. |
scan/ | What each photo's garment files had inside: photos by content and the Changes step use it. |
hairswatch/ | The swatches of the packs' hairs for the barber's color card, made by the server. |
*.bak | The copy of each file before its last save. A broken file falls back to it. |
The catalog photos live in another resource, zaiders_photos, so updating the script never touches them.
What is protected, and why
- The Lua code is encrypted by Cfx.re. That keeps the product safe and makes updates simple: you replace the folder, keep your config and your
saved/, and everything you set up stays. - The menu's interface (
web/) is one compiled file, and a few helper scripts are JavaScript (.js). Cfx.re escrow encrypts only Lua, so these ship as they are, but editing them isn't supported and every update replaces them. To change the colors, logo, brand name or side, use the panel's Theme. To change a text, use the language files. - Keep the folder names. Other scripts call the menu by its name (
exports.zaiders_appearance), andConfig.Photos.resourcepoints atzaiders_photos. - Need something the config doesn't offer? Open a ticket and describe what you want to do. Many requests turn into a new config option.
Related
- Installation
- Updating
- Config reference
- Asset Escrow & Clothing: how Cfx.re escrow works in general, and entitlement errors.
