Presets
.ulcharacter files: appearance and stats, blended onto generated people or used as a starting point.
A preset is a .ulcharacter file describing part or all of a person: morphs, skin, hair, makeup, stats. Scripts blend presets onto generated people (Game:generatePerson(false, "athletic_F"), Actor:blendPreset("tanned")), and the character creator loads and saves them.
Presets are found anywhere in any mod (the base game keeps them in Presets/); the id is the file name without extension, optionally with its folder: age_groups/twenties.
Format
One setting per line:
textCATEGORY Parameter: weight% value
text// A fit woman in her twenties
INFO Is_Male: 100% false
STAT age: 100% 22=>29
STAT fitness: 80% 70=>95
MORPH PBMFitness: 100% 0.3=>0.6
SKIN Tan_Strength: 100% 0.4
HAIR Hairstyle: 100% aprilyshLaylaHair_80821
| Category | Holds |
|---|---|
INFO |
First_Name, Last_Name, Is_Male, Body_Is_Male, Genital (Penis / Vagina / None), Interested_In_Men, Interested_In_Women, Interested_In_Transgender |
MORPH |
A body or face morph by name, 0–1 |
SKIN |
Skin_Color_R/G/B/A, Eye_Color_R/G/B/A, BHairstyle (body hair), FHairstyle (facial hair), Tan_Line, Tan_Strength, Tattoo_Arm, Tattoo_Torso, Tattoo_Leg, Makeup |
MAKEUP |
Makeup_Eyeshadow_Style, Makeup_Blush_Style, Makeup_Liner_Style, Makeup_Lipstick_Style, and their _Color_R/G/B/A |
HAIR |
Hairstyle (a hair id), Hair_Color_R/G/B/A, Hair_Thickness |
STAT |
Any stat |
SCALE |
X, Y, Z: the legacy stretch of the whole person (1 = as modelled, the creator's Scale and Build); Height: the height rig (0 = as modelled, 1 = about half height, negative = taller). Both apply together |
PENIS |
Anatomy adjustments |
Lines starting with // are comments. A preset only needs the lines it cares about: blending a preset changes those parameters and leaves the rest of the person as they were.
Weights and ranges
Every line is rolled for each new person:
50% John, 50% Josh: one of the options, by weight.0.2=>0.6: a value anywhere in the range.10% 0.7=>0.9, 20% 0.2=>0.3: an option by weight, then a value in its range.- Weights that add up to less than 100 leave the rest to chance:
INFO Genital: 80% Penissets it four times in five and leaves the person as they were otherwise.
A line with one value at 100% (what the character creator saves) always gives that value.
Morph names
MORPH lines use the Genesis 8 dial names (PBMFitness, PHMFaceRound, FBMVoluptuous…). The list the creator shows is in ul_Base/CharGen/FeatureMorphs.txt.
Presets made for the legacy game also use MakeHuman-style names (Torso_Mass-Tone_max-min). Those are translated to Genesis 8 dials through ul_Base/CharGen/MorphMap.txt, so old presets import with their shape, approximately. The original names are kept, so a re-exported preset stays readable by legacy tools.
Making presets
The easiest way is the character creator: shape someone, then save a preset. Saved presets go to Saved/CharacterPresets/; copy the ones you want to ship into your mod.
Faces
A preset in a Presets/faces/female/ or Presets/faces/male/ folder is a face: the creator shows it as a picture in the Face page's Faces grid (and not in the Load a preset list). Picking a face first clears every head the morph registry blends and every head the other faces set, then applies the file's morphs, so faces replace each other instead of stacking. Keep a face to its head: its MORPH lines, plus INFO Is_Male / INFO Body_Is_Male.
INFO Is_Male: 100% false
INFO Body_Is_Male: 100% false
// Morphs
MORPH Aine: 100% 1.000000
The tile's picture is Thumbs/<file name>.png beside it. The label is the file name without its Face_ prefix, underscores read as spaces. Render the pictures with the thumbnail mode (-CharThumbsOnly=face); existing pictures are kept unless you add -CharThumbsForce.
Using presets
| Call | Effect |
|---|---|
Game:generatePerson(isMale, "p1, p2") |
A new person with these presets blended in order |
Actor:blendPreset("p") |
Blend onto an existing person |
.ulshop SellerPresetName |
The look of a shop's seller |
The base folders are a good palette to combine: age_groups, phenotypes, phenotypes_daz, female, male, celebs, fantasy, situational, stats_only.