Architecture
The framework in one page. If you read nothing else, read this.
Four layers
Plugin names encode their layer, and the folder structure follows the same split.
AFS_ — Systems. The load-bearing pieces: the pawns, the interaction stacks (grip, select, gaze, overlap, teleport, laser, locomotion), the UI design system, spatial UI, highlighting, snapping and level loading.
AFM_ — Modules. Self-contained capabilities that attach to actors: state values, replication, spawning, spectating, panels, splines, visibility, teleporting, camera fade, widget interaction. The ability and interaction base classes also live here, in AFM_Abilities.
AFA_ — Assets. Shared colours, icons, materials and sounds, plus the sound class hierarchy the rest of the framework mixes through.
AFE_ — Environment. The Showroom: a demo shell with game mode, pawns, navigation and an idle screen.
AFU_ — Utilities. The debug overlay and the branded intro level.
AF_Examples — one map per feature, showing the intended use of each system.
Dependency direction
Dependencies point downward only. Assets depend on nothing. Modules depend on Assets. Systems depend on Modules and Assets. The Environment and Examples depend on everything above them. Nothing in a lower layer references a higher one, which is what makes it possible to take a subset of the framework.
AFM_Abilities and AFS_Libraries are the two roots — almost everything depends on one or both.
What to read next
- Abilities & interactions — the central contract.
- The blocker system — how activation is managed.
- Platforms & pawns — how one content set serves three targets.