The beginning of someone new.
Character creator
Give a new character access to the configured creation sections: character, face, hair, clothing, accessories, and outfits. Saved characters’ access to the complete editor follows server permissions.
Every detail
defines you.
Explore the interface before making it part of your server.
YOUR NEXT CHARACTER STUDIO / IN PREVIEW
Every detail defines you.
Give players the space to create someone of their own. From their first character to the outfit they wear tomorrow, bring faces, hair, clothing, and personal style into one considered experience.
Planned one-time price · USD
Try the supplied interface now. Purchasing opens when the real package is available in our Tebex catalog.
Current build: 1.0.0-rc.2 · Release candidate
A PLACE FOR EVERY CHAPTER
A character evolves. The studio gives creation, shopping, hair appointments, and wardrobes their own place in that journey.
The beginning of someone new.
Give a new character access to the configured creation sections: character, face, hair, clothing, accessories, and outfits. Saved characters’ access to the complete editor follows server permissions.
Find the next look.
Open clothing, accessories, and outfits from a configured shop. The available categories, access, in-game prices, and payment methods come from that store’s configuration.
A fresh point of view.
Barber locations open the hair section for hairstyles and the applicable grooming controls, using the studio’s configured in-game pricing.
Keep the looks that matter.
Return to confirmed personal outfits, prepare a different clothing combination, or access temporary job uniforms when the configured job and permission rules allow it.
TAKE YOUR TIME. TRY THE DETAILS.
Open the supplied React/TypeScript studio right here. Explore the categories, change styles, adjust the controls, and get a feel for how the experience comes together.
Interface simulation. The browser does not render a GTA character, save live data, or execute payments. Its in-game amounts are illustrative.
ONE CHARACTER. EVERY DETAIL.
Six sections. A closer look at everything you can shape, style, wear, and keep.
Select a section to explore its controls.
Choose between the supported male and female GTA V freemode models, combine parent-based shape and skin blends, and establish the starting point for your character. The allowed model list and creation categories are controlled by your server.
Refine the face with all 20 native feature controls. Add the finishing details through 13 overlay categories, with style, opacity, and applicable color controls. Eye color completes the look. Available variations follow the active model.
Overlay color availability follows the native overlay type. Eye swatches represent iris selections; hair and makeup swatches use native color values in game.
Choose a hairstyle and texture, then work with a primary hair color and highlight. The hair studio also exposes the applicable facial-hair, eyebrow, and chest-hair controls. Native hair and makeup palettes are read from the game rather than represented as an unrelated browser palette.
Move through a continuous style sequence for each clothing category and select the texture for the chosen item. Players browse styles without having to select DLC collection names. Internally, saved looks retain their collection and local drawable addresses.
The catalog reflects the freemode model and clothing collections installed on your server. The resource does not include third-party clothing packs or photographed item thumbnails.
Choose the pieces that bring the outfit together: headwear, eyewear, earrings, watches, and bracelets. Style and texture controls follow the selected accessory; supported props can also be cleared.
Camera routing takes accessories into account: glasses frame the eyes, earrings use a side view, and watches and bracelets target their respective wrists.
Save your confirmed personal clothing, rename it, apply it to the current draft, or delete it. Clothing-only outfit changes preserve the face, genetics, and hair you are editing. Uniforms use separate server-owned sets and permissions.
Conceptual focus diagram
CLOSER TO THE DETAIL
The camera follows the part of the character you are working on. Six toolbar focuses put full body, face, upper body, lower body, feet, and wrist views within reach.
Adjust automatic focus, smoothing, field of view, zoom, sensitivity, and detailed camera profiles from configuration.
TRY. REFINE. MAKE IT YOURS.
A character creator should make experimenting feel natural. Local edit history and a clear confirmation step give players room to find the right look.
Preview a style, refine a facial feature, or change an accessory. Sliders, previews, camera movement, and undo work on the local editing state rather than writing every adjustment to the database.
Undo, redo, or reset your draft. The default history is 60 steps, configurable from 10 to 120. Keyboard shortcuts support Ctrl/Cmd + Z and Ctrl/Cmd + Shift + Z outside text fields.
Review the estimated in-game total and confirm. The server checks the session, permissions, and final price. Cancel restores the entry appearance instead of committing an unfinished look.
A WARDROBE WITH A MEMORY
Personal outfits store clothing and accessories, leaving genetics, facial features, and hair out of the outfit record. Applying a look to your current draft preserves those personal details.
Save a confirmed outfit, give it a name, rename it later, or remove it. New outfit saves use the confirmed personal appearance, so an unpurchased clothing preview does not become a saved outfit.
Configurable from 1 to 500. Outfit names support a configurable limit of up to 48 UTF-8 characters.
Define server-owned clothing sets with job, grade, duty, and optional ACE checks. Uniforms remain temporary and do not overwrite the persisted personal look.
Uniform entries start empty. Configure sets that match your server’s installed clothing assets.
TEN INCLUDED VISUAL IDENTITIES
Change more than an accent. Navigation, spacing, surfaces, borders, heading weight, buttons, and feedback come together in ten distinct presets.
Select a palette study above to open the complete interface in that style. The website preview lets you compare presets. In FiveM, the server owner chooses the style through configuration.
Switch included styles or use a custom six-digit accent without rebuilding the frontend. Restart the resource and reopen the editor to apply configuration changes. Contrast is a readability preset, rather than a whole-product accessibility certification.
A MORE FAMILIAR EXPERIENCE
Set your server’s default or enable the native-name language selector. The included packs cover interface controls, dialogs, clothing and feature labels, error messages, and local game notices.
Montserrat and the Chinese/Japanese fallback fonts are bundled locally. Number formatting follows the chosen language; changing language does not convert currency or alter in-game prices.
Language selection is remembered in the current client resource runtime and resets on restart or reconnect. Custom store, uniform, and outfit names retain the text you supply. Native-speaker editorial review remains pending for this build.
GIVE THE STUDIO A PLACE IN YOUR WORLD
The supplied base-map configuration gives clothing and grooming their own destinations. Move a point, change a radius, or tailor access to the way your server works.
Clothing, accessories, and outfits.
Hair studio sessions.
Configured separately, with hidden map icons.
Native interaction uses E by default, with a 2.5-metre default shop radius. Optional ox_target integration is available, with native fallback if it is unavailable. Exports-only interaction is also configurable.
Control map icons, sprite, color, scale, and range. Native ground markers are optional. Each shop can have its own prices, payment methods, categories, and job, grade, duty, ACE, or routing-bucket requirements.
| Store ID | Base-map location | Coordinates (X, Y, Z) |
|---|---|---|
ponsonbys_rockford | Ponsonbys · Rockford Hills | -709.45, -153.86, 37.42 |
barber_hawick | Hair Studio · Hawick | -32.91, -152.26, 57.08 |
ponsonbys_burton | Ponsonbys · Burton | -168.21, -298.70, 39.73 |
ponsonbys_morningwood | Ponsonbys · Morningwood | -1447.51, -242.81, 49.82 |
suburban_delperro | Suburban · Del Perro | -1192.94, -772.69, 17.33 |
suburban_hawick | Suburban · Hawick | 120.44, -227.38, 54.56 |
suburban_harmony | Suburban · Harmony | 617.89, 2766.79, 42.09 |
suburban_chumash | Suburban · Chumash | -3175.64, 1041.84, 20.86 |
binco_textile | Binco · Textile City | 429.50, -800.15, 29.49 |
binco_vespucci | Binco · Vespucci Canals | -829.72, -1073.33, 11.33 |
discount_strawberry | Discount Store · Strawberry | 71.06, -1399.17, 29.38 |
discount_grapeseed | Discount Store · Grapeseed | 1697.41, 4829.25, 42.06 |
discount_senora | Discount Store · Grand Senora | 1190.35, 2714.51, 38.22 |
discount_chaparral | Discount Store · Great Chaparral | -1108.95, 2709.37, 19.11 |
discount_paleto | Discount Store · Paleto Bay | 12.28, 6513.63, 31.88 |
barber_rockford | Hair Studio · Rockford Hills | -814.30, -183.80, 37.60 |
barber_davis | Hair Studio · Davis | 136.80, -1708.40, 29.30 |
barber_vespucci | Hair Studio · Vespucci | -1282.60, -1116.80, 7.00 |
barber_sandy | Hair Studio · Sandy Shores | 1931.50, 3729.70, 32.80 |
barber_mirrorpark | Hair Studio · Mirror Park | 1212.80, -472.90, 66.20 |
barber_paleto | Hair Studio · Paleto Bay | -278.10, 6228.50, 31.70 |
Coordinates are supplied game-map defaults. Custom MLOs, moved shops, and nonstandard maps need location adjustments. Actual in-game placement and clearance still require connected-client checks.
THE EXPERIENCE IS YOURS TO CONFIGURE
Keep the player-facing experience clear while defining the rules that belong to your server.
Configure in-game pricing by studio type and override it per shop. Price categories include character, face, hair, clothing, accessories, and outfits, plus an optional base fee when something changes.
Charges are calculated per changed slot or property. A drawable and its texture changed together count as one clothing slot. Choose cash, bank, or the configured subset available at a particular location.
Opening and confirming recheck the active character, session, permissions, store distance, and configured access rules. The server recalculates the final amount instead of accepting an amount supplied by the interface.
Outfit ownership, allowed models, collection policies, blocked item addresses, revision checks, and rate limits form part of the resource’s validation boundaries.
Personal appearance, outfits, and operation receipts have their own SQL records. The operation journal and duplicate-confirmation handling help distinguish pending work from a confirmed save.
Framework money and SQL do not share one atomic transaction. An ambiguous economic operation needs operator reconciliation rather than a promise of automatic, risk-free replay.
Choose presentation, language, permitted models, interaction mode, shops, wardrobes, in-game pricing, collection restrictions, camera behavior, history, deadlines, and integration profiles from the root configuration.
Routine settings changes do not require a React rebuild. Configuration validation reports invalid fields before the resource starts handling sessions.
Amounts inside the in-game studio are separate from the script’s store purchase price. No FPS, resmon, or universal performance figures are claimed for this build.
INSIDE THE PACKAGE
A freemode appearance engine, a configurable studio, and the materials needed to understand the integration.
Client/server logic, freemode appearance handling, camera, sessions, wardrobes, and framework adapters.
React/TypeScript source and the compiled NUI. A production server does not need Node to serve the included build.
Central configuration, SQL migration, collection restrictions, store rules, pricing, permissions, and camera profiles.
Preset visual identities, editable language sources, local Montserrat/CJK fonts, and bundled icon notices.
The supplied location catalog, versioned bridge tools, diagnostics, documented exports, and integration contracts.
Installation, configuration, updates, support, localization, camera, API, compatibility, and validation guides, with tests and release notes.
CHECK THE FIT BEFORE YOU COMMIT
One selected framework, a compatible FiveM environment, and an integration profile that matches your character selector.
ox_target is optional. Simply Appearance supplies its own appearance engine; another appearance resource is not a runtime dependency. Review competing appearance loaders and dependent resources during installation.
| Framework | Target selector profile | Connected FiveM acceptance |
|---|---|---|
| Qbox | qbx_core 1.24.0 built-in selector | Pending |
| QBCore | qb-multicharacter 1.5.0 | Pending |
| ESX | esx_multicharacter 1.16.3 | Pending |
The supplied source/contract checks passed for the pinned profiles. Bridge tools check source fingerprints and make backups. Customized selectors, modified spawn forks, and other vendors need a compatible contract or dedicated bridge.
This is a release candidate. Browser and automated checks are documented; connected FiveM acceptance and native-speaker editorial review remain pending. Tattoo editing, outfit sharing, legacy appearance imports, photographed clothing catalogs, and third-party clothing packs are outside the included scope.
FOR THE PEOPLE WHO READ EVERY DETAIL
Open the complete configuration reference below. Defaults and accepted ranges are drawn from the public configuration guide supplied with this build.
100 reference entries · 11 tables · 1.0.0-rc.2
| 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 |
Appearance version 1 stores model, blend, facial features, overlays, eye color, hair colors, components, and props. Outfit records contain clothing and accessories rather than genetics, face, or hair. Unknown versions and mismatched outfit models are rejected.
The resource uses its own schema. Existing third-party skins require an explicit migration or a new creation session; a legacy importer is not supplied.
OpenStudio reports whether opening succeeded. OpenCreatorAndWait can report the eventual saved, cancelled, interrupted, pending, or error outcome. Local application exports are temporary and do not grant save or purchase permissions. Server integrations remain responsible for their own authorization and ownership checks.
Automatic profiles route documented load, unload, and creation events. Custom event bindings support known vendor contracts. Read-only installation diagnostics are available through the documented sa_integrations command and GetIntegrationStatus export. The supplied versioned bridge tools back up supported source before applying a matching integration.
Keep the resource’s fixed name, third-party notices, and included licenses. Optional vendor bridge adaptations retain their documented GPL-3.0 terms.
A FEW GOOD QUESTIONS
The practical details that help you decide whether this studio belongs in your server.
The resource includes its own freemode appearance engine. Another appearance script is not a runtime requirement. Review and disable the previous appearance loader as part of an installation plan, because competing loaders can overwrite a character’s appearance.
The supplied allowlist supports GTA V male and female freemode models. This build does not advertise general support for arbitrary custom ped models. Clothing availability and textures follow the installed assets and active model.
The studio browses your installed clothing collections. Third-party clothing assets and a photographed catalog are not included. Uniform functionality is included, but its entries start empty so you can define clothing sets for your server’s actual assets and jobs.
An automatic legacy appearance importer is outside this build’s scope. Back up existing data and plan a compatible migration or new character creation before switching ownership of appearance loading.
The owner selects the in-game style and accent in configuration. The ten-style selector on this website belongs to the browser simulation so you can compare the presets. A player language selector is separately configurable.
Changing included styles, accent, language defaults, prices, stores, camera settings, and other supported configuration values requires a resource restart and reopening the editor, rather than a React rebuild. Editing the frontend source itself uses the documented development build process.
In-game charges are configured per changed slot or property, with an optional base fee when anything changes. The server recalculates the amount and checks the payment account. The estimate shown during editing is not a payment authorization. Script purchases through Tebex are separate from these game-economy amounts.
Use a documented export or supported event contract. The supplied versioned selector profiles target specific source versions. A vendor that requires its own completion callback or hardcodes another appearance API needs a dedicated compatible bridge. A wardrobe binding also needs a configured store and appropriate access/location rules.
The supplied interface, editing controls, categories, language choices, preset styles, local history, and simulated messages. A browser cannot render the live GTA character, access your server database, or run a real clothing payment. The preview is labelled accordingly.
The editor restores its entry appearance and releases its local camera, focus, rotation, and frozen state through session cleanup. Outfit selection is a draft until confirmation. Interrupted or ambiguous economic operations follow the operation journal and documented recovery procedure.
Tattoo editing, outfit sharing, and photographed catalogs are outside the supplied build. No FPS or resmon benchmark is claimed. The compatibility and validation guides explain the source checks and connected-client work that remains pending.
The supplied files identify version 1.0.0-rc.2 as a release candidate. Review its release and validation records, especially the pending connected FiveM acceptance, before treating a particular deployment as verified.
MAKE ROOM FOR THE NEXT CHARACTER
A character studio with the controls players explore and the configuration server owners need. Take a closer look at the interface and decide how it fits your world.
Planned one-time price · USD
The interactive preview is available now. Real purchase options appear when the package is published in our Tebex catalog.
Current build: 1.0.0-rc.2 · Release candidate