01 / RESOURCE GUIDE
Player interactionsSimply Actions
Documents, transfers, player requests, and the details that bring people together.
Open documentationSIMPLY / DOCUMENTATION
Choose your resource. Find the answer.
From the first install to the finishing details.
Documents, transfers, player requests, and the details that bring people together.
Open documentationCharacter creation, clothing, grooming, accessories, and personal outfits.
Open documentationStart with Requirements, follow Installation, then make the resource yours in Configuration.
SIMPLY APPEARANCE / REFERENCE
Every documented setting, default, and accepted range.
Public configuration reference for Simply Appearance 1.0.0-rc.2. Edit the root config.lua, restart the resource, and reopen the editor after presentation changes. The source guides referenced in these tables are included with the resource.
| Option | Default | Behavior / accepted values |
|---|---|---|
locale | en | en, es, pt-BR, fr, de, it, ru, tr, zh-CN, ja; editor, notices and help text. See LOCALIZATION.md |
framework | auto | auto, qbox, qbcore, esx; auto tries them in that order |
models | Both freemode models | Nonempty list using only mp_m_freemode_01 / mp_f_freemode_01; this is a real server whitelist |
defaultModel | Male freemode | Must appear in models; used when a new unsupported ped needs a default snapshot |
command | appearance | Name without /, or false to disable the command; trusted exports remain available |
interaction | native | native, ox_target, or none for exports only |
sessionSeconds | 900 | Session duration, 60–7200 seconds; does not reset on each edit |
modelTimeout | 10000 | Model streaming deadline, 1000–60000 ms |
| Option | Default | Meaning |
|---|---|---|
interactionSettings.control | 38 | Native GTA input control (E by default), 0–360 |
.showHelp | true | Draw the native help prompt inside the store radius |
.helpText | false | false uses localized default text with E. Set a custom prefix when changing control; the store label is appended |
.detectionDistance | 20.0 | Nearby-store detection, 1–100 metres; must include every store radius and marker distance |
.idleSleepMs | 1000 | Poll interval far from stores, 100–10000 ms |
.nearSleepMs | 250 | Poll interval near stores, 50–2000 ms; interaction/visible markers still render each frame |
.targetIcons | Shirt / scissors / door | Font Awesome names keyed by clothing, barber, wardrobe |
blips.enabled | true | Global map icons for enabled stores |
blips.sprites | 73 / 71 / 366 | GTA sprite by store type; 0–1000 |
blips.colour | 3 | GTA blip colour index, 0–85 |
blips.scale | 0.65 | Map icon scale, 0.1–2 |
blips.shortRange | true | Short-range map icons |
marker.enabled | false | Ground marker in **native** interaction mode (including target fallback) |
marker.type | 27 | GTA marker type, 0–43 |
marker.distance | 10.0 | Draw distance, 1–100 metres, within detection distance |
marker.zOffset | -0.95 | Height relative to store coordinate, -5 to 5 metres |
marker.scale | {0.65,0.65,0.15} | X/Y/Z size, each 0.01–10 metres |
marker.colour | {59,130,246,120} | Red/green/blue/alpha, each 0–255 |
marker.bob, .faceCamera, .rotate | false | Native marker effects |
| Type | Allowed categories |
|---|---|
clothing | clothing, accessories, outfits |
barber | hair |
wardrobe | outfits |
| Field | Behavior |
|---|---|
enabled=false | Disables the store without deleting its configuration |
job='police' | Exact framework job name |
minGrade=2 | Minimum grade; requires a job field |
onDuty=true | Requires the current job's duty flag |
ace='my.store' | Requires that existing server ACE |
bucket=0 | Restricts routing bucket; zero is a valid value |
targetIcon='fa-solid fa-shirt' | Overrides that store's target icon |
blip={enabled=true,...} | Overrides global blip values; supports enabled, sprite, colour, scale, shortRange |
| Option | Default | Meaning |
|---|---|---|
adminAce | admin | Existing staff ACE checked for a saved character's complete editor and reconciliation. Does not grant roles |
allowSelfCreator | true | Allows new/unconfirmed characters to create their appearance; saved non-admins remain restricted |
creatorLabel | Simply Appearance Studio | Studio name in the creator header, up to 100 bytes |
creatorCategories | All six sections | Available creator categories; nonempty, unique values from character/face/hair/clothing/accessories/outfits |
prices | Creator free; clothing 75, accessories 35, hair 150 | Tables by creator, clothing, barber, wardrobe |
payments | {'cash','bank'} | Nonempty allowed account list; supported accounts are cash/bank |
storeOverrides | Empty | Overrides by existing store ID; keys prices and/or payments |
| Config.server option | Default | Meaning |
|---|---|---|
maxOutfits | 30 | Outfits per character, 1–500 |
outfitNameMaxLength | 48 | Maximum UTF-8 characters, 1–48; enforced by server and passed to the dialog |
uniformsEnabled | true | Enables configured job uniforms; server rechecks this at confirmation |
uniforms | Empty | Entries with unique id, label, job, model, clothing; optional minGrade/onDuty/ace |
allowedCollections | nil | nil permits installed collections; a table is an allowlist {['collection_name']=true} |
blockedItems | Empty | Exact item addresses mapped to true |
| Option | Default | Meaning |
|---|---|---|
style | simply | 10 presets: simply / minimal / atelier / ivory / arctic / noir / slate / sage / rose / contrast; complete visual identities, see STYLES.md |
accent | auto | Use the selected style's accent, or override with a six-digit hex color |
motion | true | Panel/control animations; system reduced-motion still takes precedence |
hoverShine | true | Simply Actions button sweep |
languageSwitch | true | Show the ten-language selector using native language names |
showTagline | true | Header/footer slogan |
showSignature | true | Sidebar signature text |
showCameraHints | true | Drag/wheel hint labels; camera controls stay available |
currencySymbol | $ | Nonempty label up to 12 bytes; presentation only |
currencyPosition | before | before or after the formatted integer |
historyLimit | 60 | Undo steps, 10–120; wardrobe selection authorization retains enough history |
defaultCategory | character | Initial section; falls back to the first allowed section in a store |
autoFocus | true | Focus camera for the selected section/item; false starts each selection at full body |
dragSensitivity | 0.35 | Degrees per horizontal pixel, 0.05–1 |
wheelStep | 0.08 | Zoom delta, 0.01–0.5 |
rotateStep | 20 | Rotation-button degrees, 1–90 |
zoomStep | 0.15 | Zoom-button delta, 0.01–0.5 |
| Config.cameraSettings option | Default | Range / behavior |
|---|---|---|
fov | 36.0 | Field of view, 20–60 degrees |
smoothing | 12.0 | Frame-rate-independent smoothing coefficient, 2–30; larger reacts faster |
transitionMs | 220 | Camera activation/restoration interpolation, 0–1000 ms |
zoomMin | -0.5 | Closest zoom offset, -0.5–0 |
zoomMax | 1.2 | Furthest zoom offset, 0–3 |
hideRadar | true | Hide the radar in the editor; prior visibility is restored |
allowVoice | true | Keep push-to-talk enabled while other game controls are locked |
| Option | Default | Meaning |
|---|---|---|
lifecycle.loadAppearance | true | Restore this resource's saved appearance on framework load/resource start |
.autoFirstCharacter | true | Open creator for Qbox's existing new-character event |
.loadDelayMs | 700 | Spawn/model settling delay, 0–10000 ms |
.creatorDelayMs | 500 | New-character event delay, 0–10000 ms |
timeouts.requestMs | 12000 | Ordinary client RPC deadline, 3000–60000 ms |
.commitMs | 40000 | Purchase RPC deadline, 10000–120000 ms |
.leaveMs | 1500 | Leave RPC deadline, 500–10000 ms; local cleanup remains available |
.nuiReadyMs | 10000 | Wait for NUI initialization, 1000–60000 ms |
server.startup.queryTimeoutMs | 10000 | Readiness query deadline, 1000–60000 ms |
.retryInitialMs | 1000 | First retry, 500–30000 ms |
.retryMaxMs | 30000 | Retry cap, 1000–120000 ms; must be >= initial delay |
| Config.integrations option | Default | Meaning |
|---|---|---|
profile | auto | auto/qbox/qbcore/esx/custom/off; automatic follows the identity framework |
diagnostics | true | Read-only server startup summary; sa_integrations remains available |
waitForSpawnMs | 20000 | Wait for another NUI focus or screen fade, 1000–120000 ms; never take that focus |
retryAttempts | 4 | Transient service/identity/transport attempts, 1–8; permission denial never retries |
retryDelayMs | 1500 | Delay between transient attempts, 500–10000 ms |
customEvents | {} | Up to 100 event bindings with resource/event/action; store actions require matching storeId; networked defaults false |
| Config.server.security option | Default | Range / behavior |
|---|---|---|
distanceTolerance | 1.5 | Extra metres beyond store radius, 0–5 |
maxPayloadBytes | 49152 | Encoded request maximum, 8192–65536 bytes |
rateWindowMs | 10000 | Per-source/per-action window, 1000–60000 ms |
openLimit | 8 | Open attempts per window, 1–60 |
commitLimit | 8 | Confirm attempts per window, 1–60 |
otherLimit | 35 | Other server actions per window, 5–300 |
cleanupMs | 30000 | Expired-session cleanup interval, 1000–60000 ms |
grantSeconds | 10 | One-use trusted server editor-grant expiry, 1–60 seconds |