as of 04/02/2026
Standalone GTA Online-style appearance creator/editor for FiveM.
Current resource version: v2.0.0
- Standalone resource with no framework dependency
- Freemode male and female support through a configurable model allowlist
- Heritage blending, 20 face feature sliders, hair, eye color, overlays, clothing, and props
- Camera presets for
full,head,torso,feet,left, andright - Camera orbit and zoom from buttons, mouse drag, mouse wheel, and keyboard look input
- Server-side save validation, session nonces, and rate limiting
- Server-authoritative appearance reapply on spawn and resource sync
- Optional first-join auto-open when no saved appearance exists
- Optional extended editor mode for extra overlays, clothing components, and props
- Per-model drawable and texture clamping using synced runtime variation profiles
- Optional creator routing bucket isolation
- FiveM server with OneSync enabled
oxmysql
- Import sql/cbk-appearance.sql
- Place
cbk-appearancein yourresourcesfolder - Ensure
oxmysqlstarts beforecbk-appearance - Add
ensure cbk-appearanceto your server config
- Open the editor with
/appearance - Save writes a normalized appearance payload to the
cbk_appearancetable - Cancel restores the pre-editor baseline
- If
Config.AutoOpenIfNoSavedAppearanceis enabled, players without a saved record are prompted automatically once per session
- Section buttons switch editor categories
- Camera buttons switch between preset views
Orbitbuttons rotate the camera around the playerZoom InandZoom Outchange camera distance- Mouse drag or right-drag orbits the camera
- Mouse wheel zooms when not hovering the controls grid or form inputs
Esccloses the creator and cancels unsaved changes
Main settings live in shared/config.lua
Important options:
Config.Command: chat command used to open the creatorConfig.DefaultModel: fallback freemode modelConfig.AllowFemaleModel: disables female model selection when falseConfig.AllowedModelNames: allowed model names used for UI choices and variation syncConfig.SaveCooldownMs: save cooldown per playerConfig.ServerAuthoritative: enables server-owned appearance re-syncConfig.AuthoritativeReapplyMs: interval for periodic authoritative reapply outside the editorConfig.EnableVariationProfileValidation: clamps saves against runtime male/female drawable and texture limitsConfig.AutoOpenIfNoSavedAppearance: opens the creator automatically for players without a saved recordConfig.ShowExtendedEditorOptions: shows the extended overlay, clothing, and prop controlsConfig.BasicEditorOverlaySlots/Config.ExtendedEditorOverlaySlots: controls which overlay IDs appear in each modeConfig.BasicEditorComponentSlots/Config.ExtendedEditorComponentSlots: controls which clothing component slots appear in each modeConfig.BasicEditorPropSlots/Config.ExtendedEditorPropSlots: controls which prop slots appear in each modeConfig.EnableRoutingBucketIsolation: temporarily moves players toConfig.CreatorBucketwhile editing
- Data is stored by player identifier in the
cbk_appearancetable - Saves are validated and normalized on the server
- The server reapplies the saved appearance after spawn, resource start, and periodic authority checks
- The UI still previews locally, but persistence and final saved state remain server-owned
- Save requests are session-bound with a nonce
- Model choice is restricted to the configured allowlist
- Saves are rate-limited
- Per-model variation profiles clamp drawables and textures before persistence
- Saves can be rejected if the required variation profile has not been synced yet
More detail:
- docs/API.md
- docs/SECURITY.md
exports['cbk-appearance']:OpenCreator()exports['cbk-appearance']:ApplyAppearance(appearance)exports['cbk-appearance']:GetAppearance()
exports['cbk-appearance']:GetSavedAppearance(source)exports['cbk-appearance']:HasSavedAppearance(source)exports['cbk-appearance']:ApplySavedAppearance(source)
- Hair stays separate from clothing component slot
2 - Runtime variation profiles are synced per allowed model and cached per player session
- If extended editor mode is disabled, the UI falls back to the smaller curated slot set