Movement Systems¶
This controls how zombies move around on the virtual map. You can make different groups of zombies behave in different ways.
How Groups Work¶
The total population is split among the systems, and each system divides its share into groups of its own size.
- The total number of zombies comes from the map size and
PopulationDensity. - Each system gets a share of that population proportional to its Weight.
- Each system splits its share into groups of its own GroupSize.
For example, with 200 total zombies and two systems:
- System A with
Weight="3"andGroupSize="20"gets ~150 zombies → ~8 groups of 20 - System B with
Weight="1"andGroupSize="50"gets ~50 zombies → 1 group of 50
System Settings¶
Each system can have these settings:
Weight¶
What share of the total population this system controls, relative to other systems.
Weight="1"is the default- Higher values mean more zombies are assigned to this system
- If you only have one system, it gets the entire population regardless of its weight
GroupSize¶
How many zombies are in each of this system's groups.
GroupSize="100"is the default- The system's share of the population is divided into groups of this size (the last group may be smaller)
- Smaller groups mean more, more independent clusters; larger groups mean fewer, larger clusters
StartPosition¶
Where this system's agents spawn when the simulation begins.
- RandomBorderLocation: Around the edges of the map
- RandomLocation: Anywhere on the map (default)
- RandomPOI: At buildings and landmarks
- RandomCity: In cities
- Mixed: A mix of the above
StartBiome¶
Restricts the start location to a biome. Combined with StartPosition, so for example RandomCity + Snow places agents in cities that lie in the snow biome.
- Any: No biome preference, the whole map is used (default)
- Snow / PineForest / Desert / Wasteland / BurntForest: Only positions within that biome (falls back to the chosen location anywhere if the biome isn't present or is too sparse on the map)
RespawnPosition¶
Where this system's agents come back after they die.
- None: Dead agents don't come back (default)
- RandomBorderLocation: Come back at the edges of the map
- RandomLocation: Come back anywhere on the map
- RandomPOI: Come back at buildings
- RandomCity: Come back in cities
- Mixed: A mix of the above
RespawnBiome¶
Restricts the respawn location to a biome, the same way StartBiome constrains StartPosition.
- Any: No biome preference, the whole map is used (default)
- Snow / PineForest / Desert / Wasteland / BurntForest: Only positions within that biome (falls back to the chosen location anywhere if the biome isn't present or is too sparse on the map)
SpeedScale¶
How fast zombies move on the virtual map (not in the game).
- 1.0 = normal speed
- 2.0 = twice as fast
- 0.5 = half speed
This only affects the simulation, not how fast zombies move when they spawn in your game.
PostSpawnBehavior¶
What zombies do after they appear in your game:
- Wander: Zombies just walk around randomly
- ChaseActivator: Zombies chase whatever made them spawn (usually you)
- Nothing: No post-spawn order is given, zombies stand idle until the game's normal AI reacts to something
PostSpawnWanderSpeed¶
How fast zombies walk when they're just wandering (not chasing you):
- NoOverride: Use the game's normal setting
- Walk: Slow walking
- Jog: Faster walking
- Run: Running
- Sprint: Fast running
- Nightmare: Very fast
This only matters when zombies are wandering. When they see you or attack, they use the game's normal speed.
MapEdgeBehavior¶
What happens when an agent of this system reaches the edge of the simulated map:
- Warp: The agent wraps around to the opposite side of the map (default, original behavior)
- Bounce: The agent's velocity is nudged back toward the center and its position is clamped to the map bounds. Useful for keeping agents inside the playable area without them disappearing
- Clamp: The agent's position is simply clamped to the map bounds without changing velocity. The agent will pile up against the edge until other forces push it away
This is set per-system, so different groups can use different edge behaviors.
Color¶
What color to show this group in the Editor tool. This is just for viewing and doesn't affect the game.
Use colors like: #FF0000 (red), #00FF00 (green), #0000FF (blue)
Processors¶
You can add different processors to each system. Each processor has two settings:
- Power: How strong the behavior is (higher = stronger)
- Distance: How far away the behavior works (only some behaviors use this)
See the Processors page for all the different types you can use.
Simple Example¶
Here's a basic setup with one system that controls all groups:
<Systems>
<System Weight="1" SpeedScale="1.0" PostSpawnBehavior="Wander" Color="#FF0000">
<Processor Type="FlockSameGroup" Distance="15.0" Power="0.6" />
<Processor Type="WorldEvents" Power="0.8" />
</System>
</Systems>
This makes all zombie groups stick together and react to loud noises.
Multiple Systems with Weights¶
You can define multiple systems with different weights to create diverse behavior:
<Systems>
<System Weight="2" SpeedScale="1.0" PostSpawnBehavior="Wander" Color="#FF0000">
<Processor Type="FlockSameGroup" Distance="15.0" Power="0.6" />
</System>
<System Weight="1" SpeedScale="1.5" PostSpawnBehavior="ChaseActivator" Color="#00FF00">
<Processor Type="WorldEvents" Power="0.8" />
</System>
</Systems>
With 6 groups total:
- Groups 0–3: Use the first system (weight 2 → gets twice as many groups). Zombies stick together and wander randomly (red in Editor).
- Groups 4–5: Use the second system (weight 1). Zombies move faster, chase loud noises, and chase you when they spawn (green in Editor).
Equal Weights¶
If all systems have the same weight, groups are split evenly:
<Systems>
<System Weight="1" SpeedScale="0.8" PostSpawnBehavior="Wander" Color="#44AA44">
<Processor Type="Wind" Power="0.7" />
</System>
<System Weight="1" SpeedScale="0.8" PostSpawnBehavior="Wander" Color="#9E4244">
<Processor Type="WindInverted" Power="0.7" />
</System>
<System Weight="1" SpeedScale="0.8" PostSpawnBehavior="Wander" Color="#57A8BF">
<Processor Type="StickToRoads" Power="1.0" />
</System>
</Systems>
With 9 groups, each system gets 3 groups.