Skip to content

Personal Space

Overview

Personal Space is the local separation behavior. Each agent looks at nearby neighbors and adds a push away from them, with stronger force for closer neighbors.

In motion, this keeps dense crowds from collapsing into the same point. It helps the swarm read as many bodies moving together instead of one jittering mass.

This is one of the main tools for horde density. It does not decide where the swarm wants to go; it only keeps nearby bodies from occupying the same local space.

Parameter Reference

Simple Parameters

Start here — most projects only need these three

Use Personal Space

  • Visible effect — Agents push apart locally instead of stacking.
  • Gameplay effect — Makes the swarm feel like separate bodies instead of one point mass.
  • Increase when — Almost all dense crowds.
  • Decrease when — Pure blob behavior or maximum cheapness for far-off filler swarms.
  • Pitfalls — Turning it on without enough approach pressure can make the crowd feel timid.
  • Technical effect — Adds the neighbor-separation pass. If SwarmSettings.AgentSpacingRadiusScale <= 0, the runtime skips this behavior entirely.

Spacing Strength

  • Visible effect — Higher values open the crowd and stop overlap faster.
  • Gameplay effect — More room around the player, clearer lanes, less crush pressure.
  • Increase when — Agents clump too tightly or body blocking alone is not enough.
  • Decrease when — The swarm becomes too airy or cannot maintain pressure.
  • Pitfalls — Weight 0 still leaves the neighbor query cost in place because the pass still runs while enabled.
  • Technical effect — Scales the averaged push away from sampled neighbors.

Spacing Radius

  • Visible effect — Larger values make agents react to a broader local bubble.
  • Gameplay effect — Spreads the crowd sooner and smooths dense packs.
  • Increase when — Big crowds compress before they start breathing apart.
  • Decrease when — Small packs overreact and look too sparse.
  • Pitfalls — Larger radii cost more because more grid cells are searched.
  • Technical effect — Sets how far the agent searches for neighbors and which neighbors contribute to separation.

Advanced Parameters

Power-user knobs — leave at defaults unless you have a reason

Spacing Samples

  • Visible effect — Higher values stabilize separation in dense packs.
  • Gameplay effect — Makes big swarms feel more consistent.
  • Increase when — Dense crowds show uneven spacing or directional bias.
  • Decrease when — Performance matters more than perfect spacing.
  • Pitfalls — Samples are capped in grid traversal order, not exact nearest-first order.
  • Technical effect — Caps the number of neighbors sampled per agent.

Practical Usage Guidance

Use Personal Space on almost every profile that needs a readable dense crowd: zombies, fodder melee enemies, survivor-like mobs, and any pack where individual bodies should stay visible.

It works especially well with Approach And Surround. That combination gives you strong target pressure plus enough repulsion to stop center collapse. It also pairs well with Close-Range Pressure, where it helps the queue ring stay legible.

Be careful when combining high Spacing Strength with high Group Pull. One pushes outward while the other pulls inward. That can create an indecisive, vibrating crowd if both are tuned too strongly.

Gameplay Interpretation

Higher values make enemies feel bulkier and easier to distinguish. Kiting also becomes slightly easier because the swarm cannot pack into a tight area.

Lower values feel more relentless and crush-heavy, but too low turns the swarm into a visual blob and makes melee pressure harder to follow.

Quickstart — tune in this order

Tune Spacing Strength first, then Spacing Radius, then Spacing Samples only if the result is noisy in dense tests. Validate with a small pack and a large pack; this behavior changes character with density.

Agent Spacing Radius Scale (in SwarmSettings → Body Blocking) gates the entire behavior: if it is 0, the runtime skips Personal Space entirely regardless of profile settings. Non-zero values change the effective separation radii used for body blocking and surround spread, which interacts with how crowded the spacing looks in practice.