Skip to content

Founder Bias

A founder is a villager with no parent who has a culture and no home village with a culture. A founder’s culture comes from a roll, and the roll uses the cultural_spawn_bias of the founder’s Root.

This is the only place where a Root affects culture. A villager with parents or a home village takes their culture from them. See Where a Villager’s Culture Comes From.

cultural_spawn_bias can be on an ancestry, a lineage or a root file:

"cultural_spawn_bias": [
{ "culture": "examplepack:fisherfolk", "rate": 6 },
{ "culture": "examplepack:hillfolk", "rate": 1 },
{ "culture": "any", "rate": 2 }
]
FieldDescription
cultureA culture ID, or any for any culture that is turned on.
rateThe weight of the entry. The default is 1. An entry with 0 or less is never picked.
  1. Townstead combines the bias of the ancestry, then the lineage, then the root. A more specific file replaces the rate of a culture that a less specific file names.
  2. It leaves out cultures that are not loaded, and cultures that the Switchboard turns off.
  3. It multiplies each rate by the culture’s rate in the Switchboard.
  4. It picks one entry by weight. For any, it then picks one top culture by its Switchboard rate.

The founder gets no culture when:

  • the Root has no cultural_spawn_bias;
  • no entry names a culture that is loaded and turned on.

So installing a culture pack does not give cultures to the founders of other Roots. A pack opts its Roots in with a bias.

When a founder gets a culture and their home village has no culture yet, the village takes the founder’s culture. Later villagers in that village take the village’s culture. See Where a Village’s Culture Comes From.

In a village with a founding profile, Townstead also uses cultural_spawn_bias to pick which Roots spawn there. This is the population strategy townstead:cultural_affinity, which is the default.

The strategy divides the residents into two groups:

  • Native Roots have a rate for the profile’s culture. Together they get the share 1 - outsider_baseline. Each native Root gets a part of that share, in proportion to its rate × multiplier.
  • Outsider Roots are all other Roots. Together they get the share outsider_baseline. Each outsider Root gets a part of that share, in proportion to (1 + its rate for “any”) × multiplier.

For example, with outsider_baseline 0.15, the native Roots make up about 85% of the residents. More installed Roots do not decrease this share. The biome and dimension bias of each Root still applies on top of these shares.

If no installed Root has a rate for the culture, each Root gets this weight:

Root weight = (outsider_baseline + the Root's rate for "any") × multiplier

The profile sets these values in its population block:

"population": {
"strategy": "townstead:cultural_affinity",
"outsider_baseline": 0.25,
"adjustments": [{ "root": "examplepack:merfolk", "multiplier": 2 }]
}
FieldDescription
outsider_baselineThe share of residents from Roots with no rate for the culture, from 0 to 1. The default is 0.1.
adjustmentsA multiplier for one root, 0 or more. The default multiplier is 1.