Avoidance

Avoidance is the local steering that keeps agents from stacking on top of each other. It is always on - without it, agents heading to nearby slots would pile into a single point - so there is no enable/disable toggle, only tuning. It works alongside navigation: routing decides where the group goes; avoidance decides how individual agents flow past each other and around standing units on the way.

The two forces

Property What it does
Strength (AvoidanceStrength) Mutual push between two travelling agents. Higher = more personal space, agents weave more to avoid contact; too high looks jittery.
Settle Push (SettlePush) How strongly a settled (arrived) agent steps aside for a passer-by, then drifts back. Lets a moving group thread through a standing formation without shoving it apart.

Splitting the two means you can keep moving crowds loose and responsive while keeping standing formations stable.

Interaction with walls

Avoidance handles agent-to-agent spacing. Walls are separate: with Has Collision on (bWallCollision), agents are physically stopped at wall tiles in the same integration step, so they don't get pushed through a wall by a crowd behind them.

What's tunable today

Avoidance treats every agent with the same radius (Agent → Radius) - there is one global agent size. Per-agent radius and collision groups / team flags (so avoidance can ignore or block specific units) are on the roadmap; see Limitations. Per-agent speed is already supported - see Per-Agent Speed.