Skip to content

15. Creation steps

Config.Creator is every step and every control on it. Controls bind to a skinchanger key, and min/max is read at runtime rather than duplicated here.

Field Notes
id Internal key
label / sub Step name and subtitle in the rail
icon crown dna body hair face shirt gem ink quill
panel Heading over the control panel
camera Which Config.Scene.creator shot the step is framed in
strip true drops the character to Config.TattooPreview while the step is open. Their own clothes go back on when they leave, and nothing set here is saved
controls The list below
Type What it draws
identity First/last name, date of birth, gender. No key
heritage The heritage preset dropdown
spinner < STYLE n >
slider Horizontal slider, shows a percentage
swatch Colour dropdown ("hair", "eye" or "makeup"). Shows STYLE n as well; the dot is the colour
skintone Skin tone. Drawn as a percentage slider, but mirrors its axis per heritage preset so 100% is always the darker end
outfit The suggested outfits from Config.Outfits
wardrobe The player’s own outfit slots (Config.OutfitSlots)
tattoo One zone of Config.Tattoos (takes zone, not key)
tattooset The starter tattoo thumbnails from Config.TattooSets
review The final summary card
Field Notes
key The skinchanger key it drives
label What it is called on screen
half Put two controls on one row
palette For swatch: "hair", "eye" or "makeup"
camera Frame a different shot while this control is in use
invert Mirror the on-screen axis of a slider

GTA’s face features do not agree about which end of -1.0 .. 1.0 is the raised/enlarged one, so roughly half read backwards bound straight to the raw value. invert mirrors the axis the player drags.

Only the on-screen axis flips — the value stored on the character is untouched, so existing characters keep their meaning. The sliders without the flag are the ones the game already runs that way round: NOSE WIDTH, EYEBROW DEPTH, JAW WIDTH/SHAPE, JAW LENGTH, CHEEKBONE WIDTH, EYE SQUINT, CHIN HEIGHT/LENGTH/WIDTH/ SHAPE and NECK THICKNESS. Opacity sliders are left alone deliberately.

If one still reads backwards in game, add or drop invert on that one line.

Every value picker is numbered — spinners, colour swatches, eye colour, tattoo zones — with no option to name a position, because clicking the value turns it into a box you type a style number into. See README.md under The creator.

  • Every appearance value lives on exactly one step. Duplicating a control onto two steps works, but the two read stale until the player moves between them.
  • Overlay colours use the "hair" palette, not "makeup". Every overlay colour is written with SetPedHeadOverlayColor’s colour type 1 (the hair palette), so CHEST HAIR COLOR, MAKEUP COLOR, BLUSH COLOR and LIPSTICK COLOR all use it — otherwise the colour on the button and the colour on the lips differ.
  • The OPACITY sliders are not optional. Head overlays draw at the opacity in their *_2 key, which starts at 0 — without a control for it, picking a lipstick changes the ped by nothing.
  • FACIAL HAIR is on the HAIR step. It is head overlay 1, drawn from the hair palette, and HAIR is the step framed on the head.
  • EYEBROW HEIGHT / DEPTH are on FACE. They are face features 6 and 7 — bone shape, not an overlay, and they keep working with EYEBROWS set to None.
  • Footwear is on CLOTHING, because a wardrobe slot saves shoes with the rest of the clothes. The shoe spinners carry their own camera.
  • DECALS is component 10 on the torso — a graphic on the garment. Real ink is on the TATTOOS step.
  • HAT, not HELMET — prop 0’s drawable list is every hat the model owns, helmets included.