# Limitations

Crowd Toolkit aims to be honest about its current scope. These are the known constraints in
**1.0** - most are on the [roadmap](#on-the-roadmap).

## Current constraints

==- Single 2D plane
The simulation reasons on **one world X/Y plane**. Height is tracked per agent UE-side (see
[Ground Snapping](./06-ground_snapping.md)), which handles slopes and uneven terrain, but
**multi-floor or overlapping geometry** (two walkable surfaces above each other) is not
supported - agents can't be on a bridge and under it at once.
===

==- Global agent radius
All agents share one **radius** (`Agent → Radius`). Per-agent / per-type radius (and the
cross-type avoidance it enables) is on the roadmap. Per-agent **speed** is already supported.
===

==- No built-in replication
The crowd runs locally with no network replication built in. A **server-authoritative
pattern** (simulate on the server, replicate transforms) works today and is the documented
approach; lockstep determinism is being investigated as a longer-term feature.
===

==- Game-thread tick
The simulation advances on the **game thread**. It's built to handle large agent counts
there, but a **multithreaded tick** is the headline v2.0 item for pushing the ceiling higher.
===

==- Walls are add-only
Wall tiles can be added (and the whole grid reset), but individual tiles can't be removed yet.
Runtime obstacle removal and an actor-driven obstacle component land in v1.x. See
[Wall Generation](../get_started/04-wall_generation.md).
===

## On the roadmap

Briefly, in roughly the planned order:

- **Runtime obstacle removal** + an obstacle component (place a building → crowd reroutes)
- **Agent following** (move-to-moving-target), single-unit micro, ray/segment queries
- **Collision groups / team flags** filtering avoidance
- **Fixed tick + interpolation** (smoothness decoupled from frame rate)
- **Per-agent radius** with cross-type avoidance
- **Multithreaded simulation** and time-sliced flow-field builds (v2.0)

::: tip
Hitting one of these in your project? It helps to know which matter most - feature priority
is driven by what users actually ask for.
:::
