Builder's Manual · Chapter 3

Adding Approaches, Stunts, and the Rest

Every content type here has conventions the existing records follow. Match them and new content is indistinguishable from the originals; break them and the sheet's math quietly goes wrong.

Aspects

An aspect file is its name plus aspectKindcharacter, situation, issue, boost, or consequence — and the kind decides where it can be linked. Write invokeSuggestions and compelSuggestions on every one: an aspect the Narrator can compel from its own text needs no prompting, and the double edge is the whole point. @Missing file is the model — read how each suggestion names a concrete scene complication, not a vague mood.

Approaches

An approach file describes how that style of acting reads on each of the four actions — overcome, createAdvantage, attack, defend — plus special for anything it feeds structurally. @Missing file shows the register. Adding a new approach takes two edits: a file in Approaches/, and a row in the character schema's skills expression (the six keys are listed there). Miss the second and the approach exists but never appears on a sheet. Renaming one means touching the approach file, the schema keys, and the skillBonuses enum on the stunt type — chapter 5 walks the full path.

Stunts

A stunt is stuntKind (bonus, new-action, rule-exception), its rulesText, and — this is the load-bearing part — its mechanical plumbing: a skillBonuses entry (approach, bonus, label, circumstance) for bonus stunts, or extraMentalStressBoxes / extraPhysicalStressBoxes for the rule-exceptions that grant them. The sheet reads those fields; rulesText alone is just a promise. Keep the register narrow and flavorful — @Missing file bends one approach in one circumstance, and that's a whole stunt.

Extras

Extras carry the same bonus plumbing as stunts, plus the Fate-specific trio: permissions (the aspect that justifies it), costs (refresh or trouble — and if it costs nothing, say why in trouble terms), and rulesText. @Missing file is the worked example: one-box hull, borrowed, a standing compel magnet.

NPCs

The NPC type is deliberately lighter than Character: npcTier (nameless, supporting, main), approach ratings in skillRatings, aspects as plain strings, and stress tracked via stressState. Nameless NPCs are mooks: give them skilledApproaches (+2 at what they're good at), badApproaches (−2 at what they're bad at), and 0–2 boxes via stressBoxesCount — the stressBoxes expression shrinks the track to match, and the layout swaps the approach grid for the mook lists. Mooks take no consequences. Supporting NPCs use the standard 3-box track and can absorb a mild (or moderate) consequence. When an NPC graduates to a full Character sheet, that promotion is the statement that they now matter.

Scenes and zones

A scene is sceneKind (roleplay, challenge, contest, conflict), linked zones, situationAspects, opposition, and its campaign. Zones carry connectedZones, barriers, and their own aspects — @Missing file shows a barrier written as fiction with a difficulty in it. Give every situation aspect its freeInvokes up front.

The creation wizard

The character type carries a creationFlow — a five-screen wizard whose answers feed AI character generation: high concept, trouble, the fixed +3/+2/+2/+1/+1/+0 approach spread, a stunt family, and an optional line of appearance.

Two things about it are deliberate and worth keeping when you fork.

The approach screen is a statFixedArray, not a point buy. FAE's spread is fixed at nine points in that exact shape, every pregen in this project uses it, and a point-buy screen would let a player build a character the rest of the system doesn't expect. If you reskin the approach list — five approaches, seven, a set of professions — edit the stats array here at the same time as the skills expression and the stunt type's skillBonuses enum. That is the two-edit rule with a third edit attached, and the wizard is the one people forget.

The stunt screen asks for a family, not a stunt. It would be easy to curate the twenty-four Stunt files as options, and it would be wrong for a template: those stunts carry Corvenna and the range samples' genres with them, and every fork would inherit that flavor in its character creator. Instead the screen picks a shape — holding the line, finding the opening, working the room, knowing the thing nobody else knows — and the generation instructions write three stunts in the standard shape to fit. Once you have built a real setting with its own stunts, curating them into that screen by referenceId is a good change to make; it just isn't the right default for an empty engine.

settings.generationInstructions on the flow is where the arithmetic gets stated: baseRefresh 3, fate points 3, three stunts, computed fields left alone. If you change what a starting character looks like, change it there too, or the wizard will keep building the old game.

Manual updated Sep 2, 2026.