Changelog
Navigation
- New Auto pathfinding mode (now the default) - picks Flow Field or Spatial A* per order: A* for small groups and clear straight lines, Flow Field for big groups routing around walls. Actors saved with an explicit mode keep it
- Spatial A* no longer searches when the goal is in plain sight, so open-ground orders start moving at once
- New
GetAgentPathfindingModes(Debug) - which backend moved each agent last tick - Wall changes now only re-route the orders near them instead of every route on the map
Following
- New
SetAgentsFollowTarget/SetAgentFollowTarget- make agents follow another agent in formation, placed like a move order to the leader with the same Anchor choice (Near Edge or Center). Followers don't fireOnAgentsReachedGoal; a normal move order ends the follow ClearAgentsFollowTarget/ClearAgentFollowTargetandGetAgentFollowTargets- New
OnAgentsLostFollowTargetevent - fires when a leader is removed - New FollowExample map with
BP_FollowProxyExample- a crowd following an actor
Teleport
- New
SetAgentsPositions/SetAgentPosition- move agents instantly to a position
Transforms
- New Transform Rotation Offset - a local-space rotation added to every agent transform before its facing, for meshes authored along a different axis
- New Transform Position Offset - a local-space offset added to every agent transform after its rotation, for meshes whose pivot isn't at their feet
- Transform Scale is now per-axis. Actors saved with the old uniform value reset to
1, 1, 1 - Transform Scale, Transform Rotation Offset and Transform Position Offset sit together in a new Transforms category
Runtime walls
- New
RemoveWallTileandClearWallTiles- walls are no longer add-only; removing a tile re-routes affected orders on the next tick - Nav-mesh wall sync: with Sync Walls With Nav Mesh on (default), a runtime nav mesh rebuild re-syncs the wall grid automatically - newly blocked cells become walls, freed cells are removed. Manually stamped tiles are never touched
GenerateWallTilesFromNavMeshnow removes stale nav-mesh walls too, and returns the number of tiles changed
Per-agent radius
- New per-agent radius - set it at runtime with
SetAgentsRadius/SetAgentRadius, read it back withGetAgentRadius. A negative value resets to the global Radius - Drives avoidance, wall collision, and formation slots - mixed groups size each slot to its agent, with big agents up front and centre. Pathfinding always uses the global Radius, whatever an agent's own size
- Debug drawing reflects each agent's radius
Teams
- New per-agent team id - set it at runtime with
SetAgentsTeam/SetAgentTeam, read it back withGetAgentTeams. Agents spawn on team0; the numbers are yours to define - Every selection query takes a
Teamsfilter:GetAgents,GetAgentsInRect,GetAgentsInRadius,GetAgentsInScreenRect. An empty array returns every agent, so existing graphs are unchanged - New
FilterAgents- narrow an index array you already have to certain teams - New
GetNearestAgent- closest agent to a point, optionally restricted to teams
Team avoidance
- New
SetTeamAvoidance(TeamA, TeamB, Strength, SettlePushStrength)- override avoidance for one team pair.TeamA == TeamBsets the rule within a team 0disables that push entirely (the pair walks through each other); a negative value follows the matching global slider and keeps tracking itClearTeamAvoidance,ClearAllTeamAvoidance,GetTeamAvoidanceto manage rules- Costs nothing when unused - with no rules set the avoidance loop does no team work at all
Formations
- Fixed: agents piled up when a move order landed on a wall. Slots blocked by geometry were each pushed to the nearest free spot independently, so many of them converged on the same patch of ground next to the wall. Slot placement now lifts the formation origin clear of the wall first and keeps slots a full spacing apart while repairing them
- Slots can also now escape walls over four times thicker than before
- New per-order
Anchorpin onSetAgentsTarget/SetAgentTarget:Near Edge(default, unchanged behaviour) puts the front of the formation on the ordered position;Centerputs the middle of the group on it
Debug
- New Show Teams overlay - a coloured dot above every agent, one colour per team, with team-id labels on the agents nearest the camera (Team Label Distance)
- Renamed
GetAgentsIndicestoGetAgentsFromIds(existing Blueprints keep working via CoreRedirects) - New
GetAgents- returns every agent's index in one call GetAgentTransformsparameter renamed toFilterIndicesfor clarity- Named return pins on Blueprint nodes for more readable graphs
Initial release.
- Group movement with shared pathfinding and formations (blob, box, wedge)
- Flow Field and Spatial A* pathfinding backends
- Local avoidance with separate settle-push tuning
- Runtime walls, seeded from the nav mesh or stamped at runtime
- Per-agent speed overrides on top of the global default
- Facing targets - steer agents' rendered facing toward a point, independent of movement
- Movement lifecycle events: reached-goal, stuck, order-canceled, spawned, removed
- Selection queries: screen rect (marquee), world rect, radius
- Ground snapping with per-agent Z tracking and slope alignment
- Stable per-agent ids that survive index reshuffles
- Bulk Blueprint math nodes for position/transform arrays
- Supported on Unreal Engine 5.5 (Win64)