Skip to main content
Version: 0.13.0

Populating

Population is how the system turns your authored world into a living simulation.

The runtime combines regions, buildings, jobs, homes, and character pool data to decide which agents can exist and how they should be initialized.

Population regions

Population regions define where a group of agents belongs.

Each region can control things such as:

  • which character pool it uses
  • how spawning should work
  • which houses and workplaces are available to that region

Create a region from CIVIL-AI-SYSTEM -> Template and Actions.

Character pools

Character pools are the source of possible agent presentations and setup entries.

Use them to control the look and feel of a settlement. For example, a noble district and a rural village can use different pools even if they share some behaviour systems.

How spawning works

Spawning combines several pieces of data:

  • valid housing
  • valid workplaces and roles
  • region rules
  • character pool entries

The system can only create believable agents when those pieces line up.

Random spawning strategy

The built-in random strategy works broadly like this:

  1. select compatible housing and workplace data
  2. create an agent that can use both
  3. remove exhausted slots from the candidate pool
  4. repeat until limits are reached

In practice, the effective population is limited by the smallest important resource pool, usually housing or work capacity.

Why population can fail silently

If you expected more agents than you get, check:

  • not enough valid homes
  • not enough valid workplace roles
  • character pool entries failing their requirements
  • region setup not matching the world objects you created

Bespoke agents

Bespoke agents are hand-authored characters placed directly in the scene.

Use them when you want a unique NPC such as:

  • the village elder
  • the blacksmith master
  • a quest-giving innkeeper

How to set up a bespoke agent

  1. Place the character model in the scene.
  2. Make sure the root has an Animator and any required collision.
  3. Add the Bespoke Agent component.
  4. Assign its home and workplace information.
  5. Press Play and verify the runtime setup succeeds.

Bespoke agents are useful for story-critical NPCs, while random population handles the broader town simulation.