GenericAISystem

System Boundaries and Collaboration

Map how GenericAISystem commands, squads, formations, StateTree, assignments, teams, and movement hand off data while preserving project ownership boundaries.

Table of contents

GenericAISystem consists of capabilities that can be adopted independently. A project does not need to enable every part at once; the important rule is that each decision, runtime truth, and execution layer has the right owner. This page first establishes the overall model with a relationship diagram, then explains the boundary at every important hand-off.

System relationship diagram

Arrows represent exchanged responsibility and results, not a fixed code-call sequence. Tactical Assignment participates only when AI must choose automatically; without it, a project can issue an explicit Command directly. Formation can likewise be used for spatial queries without creating a Squad.

UI, input, and game rules may initiate requests, but should not become a second runtime truth. GAIS outputs state and guidance for the project's movement, animation, networking, or GAS layers to execute under project policy.

What each system owns

SystemOwnsDoes not own
Command SystemValidation, scheduling, and execution hand-off for explicit commands.Automatically finding the best unit or target.
Tactical AssignmentCandidate units/targets, scoring, allocation, and resulting commands.Replacing the project movement backend.
Squad SystemMembers, roles, capacity, slot occupancy, and member Movement Intent.Slot geometry or project movement implementation.
Formation SystemFormation layout, final slot positions, and navigation adaptation.Membership, roles, or movement control.
StateTree orchestrationBehavior-layer override, recovery, and task scheduling.Replacing squad truth or bypassing command validation.
Team IdentityTeam semantics and the boundary to project faction rules.Tactical, formation, or behavior state on its own.

The three most common hand-offs

Explicit commands and automatic tactical selection

Command System receives an explicit request of who should do what to which target, and owns validation, scheduling, and execution hand-off. Tactical Assignment does not replace it: when AI must choose Units, targets, and intents, it gathers candidates, scores and allocates them, then hands resulting commands to Command System. When the project has already specified Unit and target, use Command System directly rather than creating a Tactical Assignment Plan.

Squad, Formation, and movement hand-off

FormationComponent produces final slot positions. SquadComponent assigns members and refreshes Movement Intent from those results. UnitComponent mirrors the member-side state, then the per-squad Driver or project movement layer consumes Intent. No later layer should rewrite the preceding layer's truth.

This permits a project to replace navigation, Mover, GMS, animation-driven movement, or networking policy without reproducing formation and squad organization. A valid Intent with no movement is a Driver/project-movement problem; a wrong slot is a Formation or Squad-assignment problem.

StateTree and Team Identity

StateTree Stack and Queue organize current Unit, Squad, or Command behavior layers and execution sequences. They can trigger formation selection or temporarily change Movement Intent consumption policy, while still submitting state through the owning subsystem. Team Identity provides commands, recruitment, filters, and project rules with shared faction vocabulary; it does not replace their authority, selection, or lifecycle.

Common cross-system mistakes

SymptomReturn to this boundary
A Driver decides membership or slot ownershipSquad System.
An authored formation offset is used as a unit destinationFormation's final slot world result.
Command, AIController, and Driver write movement togetherChoose movement ownership; pause, override, or combine Intent consumption explicitly.
Tactical Assignment is used for an already explicit player commandCommand System.
StateTree writes replicated containers directlySubmit changes through Squad, Formation, or Command public entry points.

Return to the Core Features map for a subsystem, or use Parameter Reference, Extension Guide, and Debugging and Troubleshooting for fields, customization, and diagnosis.