Crowds
Who the strangers in a venue are, from Crowds/*.ulcrowd files: weighted roles with a job, stats, personality and dress.
A room fills with strangers (the CROWD block of its recipe says how many). Without a crowd profile they are anyone: a random sex, random clothes, no job. A crowd profile gives a venue tag a weighted list of roles; every stranger the room fills with rolls one.
The base game ships one, for the back alley: 70% of the people there sell, use or prey, the rest cut through.
A profile
Crowds/<anything>.ulcrowd, JSON:
json{
"profiles": [
{
"tags": ["alley"],
"roles": [
{ "id": "street_sex_worker", "weight": 26, "sex": "female", "job": "Sex worker",
"presets": "age_groups/twenties", "min_sexiness": 4,
"stats": { "intoxication": 15 },
"vars": { "ul_vc_dep_opioids": 30 },
"facets": { "risk_tolerance": 0.75, "trust": 0.2 } },
{ "id": "user", "weight": 20,
"stats": { "intoxication": 45, "energy": 20 },
"vars": { "ul_vc_dep_opioids": 70 },
"facets": { "impulsivity": 0.85, "dependency": 0.8 } },
{ "id": "anyone", "weight": 30 }
]
}
]
}
tags(or a singletag): the venue tags this profile peoples.- Profiles replace by tag across mods: a later file with the same tag replaces the whole role list, so re-peopling a base venue is one file.
weightis relative; a role with weight 0 is never rolled.
A role
| Field | Meaning |
|---|---|
id |
A name for your own reading; nothing else uses it |
weight |
Relative weight among the profile's roles |
sex |
female, male or any (default) |
job |
The title the person sheet shows (what Actor:setJob writes). Empty: no job |
presets |
CharGen presets, comma-separated. The person is generated with them instead of taken from the pre-made filler pool, so the venue opens a little slower |
dress |
A context keyword for the auto-dresser (what Actor:dressUniform passes internally): Uniform, Nurse, Doctor, Police, Prison, Wedding unlock those pieces |
min_sexiness |
Re-dress (up to three times) until the outfit's sexiness reaches this; the scale is the clothes' Sexiness field, 1 to 5 per piece |
stats |
NPC stats set at spawn (intoxication, energy, mood, money, martial, …) |
vars |
Per-person variables, what Lua reads with Actor:getVar. A number or a string. ul_Vice reads ul_vc_dep_<track> (0-100, tracks alcohol, uppers, party, opioids) as a person's dependence, so these two lines make a stranger a user its scenes recognise |
facets |
Personality facets, 0 to 1, by the ids in Personality/*.ulpersonality (impulsivity, aggression, trust, rule_respect, libido, …). The rest of the personality is generated around them |
A stranger the player gets to know keeps all of this: the job, the dependence, the personality. A role is the person's starting point, not a costume.
The base vocabulary
The alley (alley, three per city on side streets) ships with: street sex workers (26 + 6), users (20), a dealer titled "Courier" like ul_Vice's (10), muggers (8), anyone (30).