This is how to sequence programming, not a calendar. Build in plugin order so nothing is written against missing contracts. Each plugin below has its own mini critical path; finish that plugin’s exit gate before dependents treat it as real.
Anchors: FS §21 phases, Architecture Map GFP enable order, 02-gfp-cookbook.md, 02b-plugin-dependencies.md, 18-phase-checklist.md, inventory/HAVE-NEED.md.
How-to chapters: Full game 25-howto-program-full-game.md · Demo 26-howto-program-demo.md.
Kanban board (ch. 21): interactive page tracker board — projects Full game + Demo; add/edit cards, tasks, subtasks; columns include In review. See 21-module-kanban.md.
Critical path Gantt: Gantt — Full game spine · Demo spine. Relative sequence (not calendar dates); linked from each Kanban project toolbar.
Demo product lock (ch. 22): Full multiplayer sandboxes (Ladder first, then Regular MP); all gun families/archetypes in with art marked; trees/monetary out — 22-demo.md.
Cinematic Benchmark (ch. 28): Entitled UE showcase + Motion Matching + Benchmark ingest — parallel product, not Ladder exit — 28-cinematic-benchmark.md.
- Walk the master plugin order top → bottom.
- Inside the current plugin, walk its A → E steps.
- Do not start a dependent plugin’s gameplay code until the dependency’s Exit gate is checked.
- Parallel tracks are marked — only those may run beside the critical spine.
flowchart TB
Host[0_Lyra_host_uproject]
ADDON[1_ADDON_SKG_glue]
Core[2_TFACore]
Money[3_MonetaryPlatform]
FE[4_TFAFrontend]
OV[5_TFAOmniVisor]
Combat[6_TFACombat_spine]
Melee[6b_TFAMelee]
Sing[6c_TFASingularity]
Weap[7_TFAWeapons]
Mod[7b_TFAModular_opt]
CharI[8_TFACharacterI]
Eco[9_TFAEconomy_adapter]
Prog[10_TFAProgression]
Craft[11_TFACrafting]
Vis[12_TFAVision]
World[13_TFAWorld]
Maps[14_TFAMaps]
Online[15_TFAOnline]
Host --> ADDON --> Core
Core --> Money
Core --> FE
Core --> OV
Core --> Combat
Combat --> Melee
Combat --> Sing
Combat --> Weap
Weap --> Mod
Combat --> CharI
Money --> Eco
CharI --> Eco
CharI --> Prog
Prog --> Craft
OV --> Vis
Core --> World
World --> Maps
FE --> Online
Combat --> Online
World --> Online
| # |
Plugin / module |
FS phase |
Blocked on |
Parallel OK with |
| 0 |
Lyra host + .uproject hygiene |
P0 |
— |
Docker DS ops |
| 1 |
ADDON (+ SKG registered) |
P0 |
0 |
AimAssist already on |
| 2 |
TFACore |
P0 |
1 |
— |
| 3 |
MonetaryPlatform (portable) |
P4b prep |
2 (identity interfaces) |
Can advance after Core while Combat starts |
| 4 |
TFAFrontend (Plugify boot GUI) |
P0 |
2 |
MonetaryPlatform |
| 5 |
TFAOmniVisor (Plugify HUD) |
P1 |
2, 4 (layout chrome) |
— |
| 6 |
TFACombat spine (camera/stance/vitality) |
P1–P2 |
2, 5 (HUD readouts help) |
MonetaryPlatform |
| 6b |
TFAMelee (Plugify) |
P2 |
6 |
Singularity (message-coupled) |
| 6c |
TFASingularity (Plugify Flow+climax) |
P2 |
6 |
Melee / Weapons (via messages) |
| 7 |
TFAWeapons (Plugify guns) |
P3 |
6 |
— |
| 7b |
TFAModular (optional Plugify split) |
P3+ |
7 |
— |
| 8 |
TFACharacterI |
P4 |
6 |
MonetaryPlatform finish |
| 9 |
TFAEconomy (adapter only) |
P4b |
3, 8 |
— |
| 10 |
TFAProgression |
P5 |
8 |
— |
| 11 |
TFACrafting |
P6 |
8, 10 |
— |
| 12 |
TFAVision |
P7 |
5 |
World content design |
| 13 |
TFAWorld |
P7–P8 |
2, 5 (locator) |
Vision |
| 14 |
TFAMaps |
P8 |
13 |
— |
| 15 |
TFAOnline |
P9–P9b |
4, 6, 13 |
Trust after social spine |
Hard rules
- Never put economy / inventory / combat GAS / OmniVisor into ADDON.
- Never fork MonetaryPlatform ledgers into TFA* gameplay modules.
- Cadence lock (FS-GUN-007) before “gunfeel done.”
TBD-* → data rows, not silent C++ defaults.
- Plugify: Melee · Singularity · Weapons · OmniVisor · Frontend are separate GFPs — Experience enables/replaces; no sibling
#include (02-gfp-cookbook.md).
Each plugin: A Scaffold → B Contracts → C Authority spine → D Minimum slice → E Exit gate.
| Step |
Work |
| A |
Keep Lyra_5p8.uproject as host; document Engine 5.8 |
| B |
Persist plugin enable list (ADDON, SKG, AimAssist, later TFA* + MonetaryPlatform) |
| C |
Solo vs Online realm pools (FE); EOS identity hooks available |
| D |
Boot to a known map; client ↔ Docker DS still connects |
| E |
Clean clone enables the same plugins without “local only” DLLs |
| Step |
Work |
| A |
GFP Active at boot; ADDONRuntime; SKG in .uproject |
| B |
ATerraFirmaCharacter subclass only — no inventory/HUD/economy |
| C |
SKG components attach; movement prediction still server-sim for custom modes |
| D |
Hero BP + Roll/Slide/WallRun playable on L_TestMap (Have today) |
| E |
Character is a valid Lyra pawn host for later TFA components; ADDON stays glue |
| Step |
Work |
| A |
GFP Active at boot; Runtime module |
| B |
Gameplay Tag roots; message structs; IMonetaryHost / shared interfaces; pawn data refs |
| C |
Message Router conventions; no upward deps |
| D |
Empty experience can enable Core; tags cook |
| E |
Every other TFA GFP may depend on Core only downward |
| Step |
Work |
| A |
Standalone .uplugin (not inside TFACombat): Runtime + public AntiCheat modules |
| B |
Config DA, grant/cash tables (empty OK), ledger types, Marketplace Wallet widget; EntitlementFlags store (CF / Founding Clubs, FS-ECO-012); UAntiCheatSubsystem public headers |
| C |
Server mint/spend/convert + entitlement upsert; fail-closed; host identity via IMonetaryHost; AntiCheat signal ingest + economy fraud + case-store hooks (worker path only) |
| D |
Smoke in a minimal map: mint Credits and call AntiCheat signal ingest without TFA GFPs / TFAEconomy |
| E |
Second project can enable plugin + host stub; TFA not required. Host enables platform early so TFACore / Online / Combat workers can submit signals without waiting on #9 TFAEconomy |
Detail: 14-economy-ledgers.md. AntiCheat is part of this plugin; cheap combat hit-auth stays in #6 / #7.
| Step |
Work |
| A |
GFP Experience-enabled |
| B |
CommonUI flows: intro, mode, create/select, Command Deck shell |
| C |
Realm pool write on create (FS-SES / FE) |
| D |
Create Character with Order→Faction, no subclass at create |
| E |
Enter-world handoff to gameplay experience works |
| Step |
Work |
| A |
GFP + widget map from FS-HUD |
| B |
Always-on vs contextual slots; ammo never bag; chat OV widgets |
| C |
HUD is presentation; no power authority |
| D |
Three bars + stance/weapon chrome + GUI locator seat (FE30 data later) |
| E |
Combat/Weapons can bind readouts without owning UI |
| Step |
Work |
| A |
GFP; depends Core (+ OmniVisor messages) |
| B |
Camera director, loadout/stance, vitality, ASC combat grants |
| C |
Hybrid hit auth (FS-ARCH-013); GE damage pipeline order |
| D |
Melee Drive + gun stance + vitality bars vs dummies |
| E |
Flow/Singularity hooks exist; Weapons/Character I may attach |
| Step |
Work |
| A |
GFP registered + experience-enabled (Have: scaffold/CSV) |
| B |
Cook UDA_TFA_GunFrames; parts DA; Firehand Bus API |
| C |
Cadence immutable from parts (FS-GUN-006/007); server damage from validated hits |
| D |
One family × two frames, distinct cadence, placeholder meshes |
| E |
AC-GUN cadence test green; SKG adaptors wrapped, not forked |
| Step |
Work |
| A |
GFP + UTFAInventoryComponent + W_TFA_CharacterI |
| B |
15 slots, bags, Inspect, Customizable dock, tree tabs |
| C |
Inventory mutations server-only |
| D |
Equip/unequip + Inspect on a test item; no ammo tiles |
| E |
Crafting/Progression/Economy adapter have a UI host |
| Step |
Work |
| A |
Thin GFP; enables MonetaryPlatform |
| B |
Map FS-ECO play grants; I chips CREDITS·BTUCOIN; Marketplace routes; CF / Founding Club entitlement apply (FS-ECO-012) |
| C |
No local ledger math — call platform only |
| D |
Play grant → Credits; Online task → BTUCOIN mint 51/49 path |
| E |
Vendors spend Credits; Marketplace uses LUMENAR only; CF flags never grant Combat power |
| Step |
Work |
| A |
GFP; tree DAs |
| B |
Level/XP/stats; Combat/Tentacles/Ordnance; Customizable→Ultimates |
| C |
Grants via ASC; Apex Invoke fail-closed (FS-PRG-009) |
| D |
Level-up grants a point; one tree node activates |
| E |
Crafting may gate on progression tags |
| Step |
Work |
| A |
GFP + Crafting subsystem |
| B |
Frame/Blueprint identity; Refit/Rewrite/Bore; Forge/OV18 |
| C |
Station-only; server mutators |
| D |
Salvage → typed Frame; fake Refit while bFakeModular |
| E |
Unique/Apex SetID cook rules enforced |
| Step |
Work |
| A |
GFP + UTFAVisionComponent |
| B |
Seven modes, one active; PP/stencil |
| C |
Unlock/relevancy server-gated (TBD-028 as data) |
| D |
Toggle two modes in PIE |
| E |
OmniVisor vision chrome bound |
| Step |
Work |
| A |
GFP + Objective subsystem |
| B |
Mission / sector / POI DAs; Online tasks dual-list |
| C |
Marker authority; Solo vs Online delivery split |
| D |
One mission flag + GUI locator target |
| E |
Maps content can author against stable APIs |
| Step |
Work |
| A |
Content-only GFP/experiences |
| B |
Earth hub + Part 1 slice layouts |
| C |
n/a (content) |
| D |
Playable hub → mission entry |
| E |
Online instance maps reference World markers |
| Step |
Work |
| A |
GFP on EOS sessions |
| B |
Fireteam/clan/friends; Match Results/History; Career; Trust |
| C |
Ladder normalization; report/ghost/ban studio rules |
| D |
2-player session + live results freeze |
| E |
Trust + Discord pager path (P9b) after social spine |
| Track |
May run beside |
Must not skip |
| Art: gun family SKs / reticles |
After Weapons contracts (B) |
Cadence validator |
| Monetization legal/ops |
Beside MonetaryPlatform |
Ledger authority design |
| Docker / DS ops |
Beside host |
Plugin registration |
| GDD content fill (affixes, uniques) |
Anytime as data |
Cooking types from FS §20 first |
Critical path is green when:
- Core + ADDON + Frontend boot Solo create → enter world.
- Combat + OmniVisor + one Weapons family cadence-locked.
- Character I equip loop + MonetaryPlatform smoke + TFAEconomy adapter grant.
- One World mission + locator; Online 2p session optional stretch.
Until then, treat later plugins as design-only or scaffold-only, not feature-complete.