Files
settled-reach/docs/workshops/wiki-review/round1-nigel.md
T
jpmschweitzerandClaude Opus 4.6 0100b33635 docs(workshops): archive wiki review workshop (4 rounds + lead interview)
Long-term content strategy workshop: 300-world generator model,
cultural ingredients menu, three-system NPC architecture (9 patterns
x 6 motivations), Sacred/Profane/Middle Kingdom framework. 9 agents
across 4 rounds plus lead interview establishing the production path
from hand-authored Sova to generated 300 worlds.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:18:56 +01:00

19 KiB

Round 1 — Nigel (Sandbox & Replayability)

Topic 5: Mod Structure — "Add a new NPC to the bar"

The Replayability Thesis for Modding

Here's why I care about this topic even though it sounds like a Tyre question: mods are replayability we don't have to build. Every mod that adds to the content pools — new NPCs, new triangles, new Tier 1 modules — is another seed configuration nobody on this team designed. The modder creates one NPC. The randomizer creates a thousand new playthroughs.

So the mod structure isn't just "how does a modder add a file." It's "how does a modder add to the POOL that the randomizer draws from." If we get this right, the replayability EXPLODES beyond anything we can hand-author.

Concrete Proposal: "Add a New NPC to the Bar"

A modder creates a content pack — a directory with a manifest and content files. Here's the minimum viable set for one new bar NPC:

mods/
  my-bar-npc/
    mod.yaml                          # Manifest: mod ID, version, dependencies, load targets
    npcs/
      fynn.yaml                       # NPC definition (10-axis profile, all axes)
    dialogue/
      bar/
        fynn-dialogue.yaml            # Tagged line pool entries (access, trust, situation, topic, mood)
    monologue/
      bar/
        fynn-monologue-smuggler.yaml  # How the smuggler's inner voice reacts to Fynn
        fynn-monologue-detective.yaml # How the detective's inner voice reacts to Fynn

mod.yaml declares:

id: "my-bar-npc"
version: "1.0"
game_version: ">=0.1"
extends:
  - template: "bar"          # Which social site this NPC slots into
    role: "regular"           # Role slot (regular, staff, outsider, etc.)
    tier: 3                   # Content tier — modders can aim for Tier 2/3
adds:
  npcs: ["fynn"]
  dialogue_pools: ["bar/fynn-dialogue"]
  monologue_pools: ["bar/fynn-monologue-smuggler", "bar/fynn-monologue-detective"]

fynn.yaml uses the same 10-axis schema as our wiki NPCs:

id: "fynn"
name: "Fynn"
role: "Off-duty pilot"
social_site: "bar"
tier: 3
axes:
  want: "Find a reason to stay in Krenn System instead of taking the next cargo run"
  routine:
    schedule:
      - time: "16:00-20:00"
        location: "the-last-shift"
        activity: "drinking alone, watching the door"
  personality:
    primary: "restless"
    secondary: "observant"
  # ... remaining axes
entanglement: "flat"          # Not ring-connected (Tier 3 default)
pool_eligible: true           # KEY: can the randomizer include/exclude this NPC per seed?

The Critical Field: pool_eligible

This is where it gets exciting. If pool_eligible: true, the randomizer can:

  • Include or exclude this NPC from a given playthrough (some seeds have Fynn at the bar, some don't)
  • Swap this NPC into different role slots (Fynn is a regular in one seed, an outsider in another)
  • Assign this NPC to triangles if the modder defines triangle eligibility

This means a single modded NPC doesn't just add one experience. It adds VARIANCE. Player A has Fynn at the bar. Player B doesn't. Player A tells Player B about this weird pilot who kept watching the door, and Player B says "who's Fynn?"

And it nails replayability without us engineering it!

Additive Modding: The Content Directory Must Support Layering

The directory structure must support:

  1. Base game loads content/base/ — our shipped content
  2. Mods overlay from content/mods/{mod-id}/ — additive, never destructive
  3. Load order resolves conflicts via mod.yaml priority and dependency declarations
  4. Schema validation runs on all mod content at load time — reject malformed NPCs before they enter the pool

What modders can add (additive):

  • New NPCs to existing social sites (role slot system)
  • New dialogue/monologue lines for existing NPCs (extends the pool)
  • New triangles using existing + new NPCs
  • New social sites (entire new locations with NPCs and triangles)
  • New Tier 1 modules (NEW CONSPIRACIES for the pool — this is the holy grail of mod replayability)
  • New contraband types (connected to factions and moral dimensions)
  • New PC archetypes (new playable character types with their own monologue pools)

What modders can override (explicit, requires declaration):

  • NPC axis values (rebalancing)
  • Dialogue lines (voice overhaul)
  • Triangle relationships (restructuring drama)

What modders cannot do:

  • Silently replace base content (all overrides must be declared in manifest)
  • Modify engine schemas (content only, no code)
  • Break the tagged pool system (all lines must pass tag validation)

Scaling the Triangle System for Mods

A modder adding an NPC should optionally be able to add that NPC to a triangle:

# In mod.yaml or a separate triangles/fynn-triangle.yaml
triangles:
  - id: "pilot-tension"
    pattern: "mundane"        # Not conspiracy-connected
    members:
      - role: "outsider"      # Fynn
        npc: "fynn"
      - role: "regular"       # Existing NPC
        npc: "torek-lintar"
      - role: "authority"     # Existing NPC
        npc: "lera-sessik"
    tension: "Fynn is asking too many questions about cargo routes. Torek thinks he's a spy. Lera thinks he's just lonely."
    pool_eligible: true       # Randomizer can include/exclude this triangle per seed

Now we've got a modded NPC who creates a new triangle with EXISTING NPCs. One mod. Multiple new interaction patterns. The second playthrough where this triangle fires is different from the first where it didn't.

My Big Ask for Tyre

Template role slots need to be defined as part of the social site spec, not just implied by the NPCs we happen to have. The bar template should declare: "I have N regular slots, M staff slots, K outsider slots." Modders fill slots. The randomizer draws from pools to fill empty slots per seed. This means even without mods, different seeds populate templates differently from the base game pool.


Topic 6: Replay Variation — What Makes the Second Playthrough Different?

The Comparison Test

Two players sit down. Both play the smuggler. Same game version, same mods. They finish, compare notes. If they describe the same sequence of events with the same NPCs doing the same things — we've failed. If they describe the same STRUCTURE with different SPECIFICS — we've succeeded. If they can't even agree on what the game was ABOUT — we've created something special.

Three Concrete Things the Randomizer MUST Vary

1. WHO Is THE FRIEND (The Identity Shuffle)

Current state: Kael is always the smuggler's FRIEND. Sera is always the detective's FRIEND. This means playthrough 2 is already partially solved. "Oh, it's Kael again. I know his tell. I know about Corridor B-7. I know he's trying to exit."

Proposal: THE FRIEND is drawn from a pool. Kael is ONE possible smuggler FRIEND. The pool should contain 2-3 FRIEND candidates per character at launch. The FRIEND pattern (D-034) defines the STRUCTURE — relationship phases, contradiction discovery, tell progression, dual-lens notes. But the SPECIFICS change:

Seed A Seed B Seed C
Smuggler FRIEND: Kael Smuggler FRIEND: Renn Smuggler FRIEND: NEW NPC from pool
Secret: Exit attempt Secret: Skimming from ring Secret: Undercover Commission asset
Tell: Looks left when lying Tell: Touches ear when nervous Tell: Overexplains routine changes
Contradiction: Corridor B-7 meeting Contradiction: Money in wrong account Contradiction: Commission comm device found

Three seeds. Three completely different FRIEND arcs. Three different gut-punches. The pattern is identical (warmth > trust > doubt > conflict). The experience is unique.

And here's the beautiful part: if you played Seed A and learned "Kael's tell is looking left," that knowledge is USELESS in Seed B where your FRIEND is Renn and the tell is something else entirely. Metagaming defeated.

For the detective, same logic. Sera is one candidate. Others could be a Meridian tech, a bar regular who happens to work Commission contract shifts, a newly arrived security officer with a shared institutional history. Same FRIEND pattern, different person, different contradiction, different emotional payload.

Content cost: Each additional FRIEND candidate is ~70-100 authored lines (Tier 1 depth). Expensive per NPC. But the replayability ROI is enormous. Two FRIEND candidates per character = 4x the FRIEND experience space (2 characters x 2 candidates). Three candidates = 9x.

I know this is a stretch for v0.1 given we're already building Kael and Sera at full depth. But the ARCHITECTURE should support it from day one. Even if v0.1 ships with one FRIEND per character, the pool system means v0.2 can add more without restructuring anything.

2. WHAT Is Being Smuggled (The Moral Shuffle)

Current state: Always lattice components. The moral dimension is fixed: "access to capability."

Proposal: The PRIMARY contraband type varies per seed from a pool:

Contraband Moral Frame Investigation Feel Smuggler Feel
Lattice components Capability access — people want better minds Technical, manifest-focused "We're upgrading people"
Medical-grade replacements Healthcare — people's lattices are failing Sympathetic, desperate "We're saving lives"
Severance tech Political resistance — counter-surveillance Paranoid, ideological "We're freeing people"
Mixed cargo (2+ types) Complicated — moral lines blur Confusing, layered "I don't even know what I'm moving anymore"

The contraband type changes EVERYTHING downstream:

  • The detective's moral calculus shifts. Busting a healthcare ring feels different from busting capability dealers.
  • The smuggler's justification shifts. "We're saving lives" vs. "We're arming dissidents."
  • NPC attitudes shift. The bar owner who tolerates lattice components might refuse severance tech.
  • The investigation vectors change. Medical-grade has hospital connections. Severance has political connections. Lattice has tech connections.

Same triangle structures. Same social sites. Fundamentally different moral texture. On playthrough 1, you bust a healthcare ring and feel terrible. On playthrough 2, you bust a weapons pipeline and feel righteous. On playthrough 3, it's mixed cargo and you can't decide.

Content cost: Moderate. The NPC profiles and triangles work with any contraband type — the ROLES are the same (coordinator, handler, fence, wavering member). What changes is the dialogue flavor and the fact catalog progressions. This is exactly what the tagged pool system is designed for: same structure, different specifics via tag selection.

3. WHO Is Compromised (The Network Shuffle)

Current state: Fixed assignment: Drin has gambling debt to Harek, Voss takes a cut, Maret notices but doesn't report.

Proposal: The ROLES in the conspiracy are fixed, but WHO fills them varies per seed:

Role Seed A Seed B Seed C
Compromised inspector Drin (debt) Resha (blackmail) Maret (bribed)
Schedule manipulator Voss (cut) Maret (coerced) Voss (ideological)
Observant civilian Maret (worried) Drin (guilty conscience) Resha (too new to stay quiet)
Wavering member Pell Torek Renn
Ring courier Renn Tav Kael (dual role)

Now metagaming REALLY collapses. "Last time Drin was the compromised inspector. I'll pressure Drin again." But this seed, Drin is clean. It's Resha who's compromised. Your investigation follows the wrong thread for 10 minutes before you realize you're chasing a dead end.

The investigation becomes a genuine detective experience every time. You can't memorize the solution. You have to actually OBSERVE, NOTICE, FOLLOW, and DISCOVER — exactly what D-027 demands.

Content cost: This is mostly systemic, not content. The NPC profiles define axes. The randomizer assigns roles. The dialogue system selects from tagged pools based on the NPC's assigned role. A compromised Resha says different things than a clean Resha, but both draw from the same tagged pool filtered by role assignment. This is what the role-based template system was DESIGNED for.

Bonus Variation Axis: Evidence Placement

Where the evidence is should vary per seed:

  • Dead drop location: Locker 47 in one seed, maintenance panel C-12 in another, bar back room shelf in another
  • Observation opportunity: The Corridor B-7 meeting in one seed, the cargo bay handoff in another, the bar back room exchange in another
  • Timing windows: Shift transition gap at 14:00 in one seed, 22:00 in another

Same investigation structure. Different spatial puzzle. You can't walk to the same spot and find the same thing.

PC-as-NPC: The Emergent Story Machine

This concept is INCREDIBLE for replayability and I want to push it further than the workshop brief suggests.

The core idea: When you play the smuggler, the detective exists as an NPC in the world. When you play the detective, the smuggler exists as an NPC.

What this means for emergent stories:

Scenario 1: The Smuggler Sees the Detective NPC You're the smuggler. You're at the bar after a shift. A new face walks in — serious demeanor, institutional bearing, asking Lera about the district. Your monologue fires: "Commission. Has to be. Why are they here?"

That NPC is the detective. They're running their investigation routine as an NPC — visiting the bar, talking to regulars, building trust. You WATCH this happen from the smuggler's perspective. You see the detective NPC talking to Sera. To Hael. Getting closer to Kael.

And then you realize: that NPC is doing exactly what YOU did when you played the detective last time. But from this side, it's terrifying. That's not a player character. That's a threat.

Scenario 2: The Detective Sees the Smuggler NPC You're the detective. You're at the logistics hub, observing shift transitions. A dock worker — efficient, unremarkable, processes containers quickly. Your monologue: "Dock worker. Nothing unusual."

That NPC is the smuggler. They're running their routine — legitimate shifts, occasional ring operations during transition windows. From the detective's perspective, they're background noise. They're part of the wallpaper. You might not even notice them.

But on your second playthrough, when you play as the smuggler, you realize: you were standing RIGHT THERE while the detective NPC watched you. The detective you played as was looking right at you and saw nothing. That retroactive realization is a wow moment.

Scenario 3: The Second Playthrough Gut-Punch You played the detective first. You met Sera. You trusted her. You discovered her concealment. It was emotionally devastating.

Now you play the smuggler. You're at the bar. You see Sera — the Commission woman. Your smuggler monologue: "Commission. Avoid." You barely interact with her.

But YOU the player know. You know Sera is sitting on evidence. You know she's protecting Hael. You know the detective NPC is going to discover her avoidance pattern. And you can't do anything about it because your CHARACTER doesn't know any of this.

That tension — player knowledge vs. character knowledge — is the most powerful replayability mechanic in the game. And it's ENTIRELY EMERGENT. We don't script it. The systems produce it.

PC-as-NPC Implementation Implications

For this to work, each playable character needs:

  1. A full NPC profile (10 axes, routine, information inventory) — they exist in the world whether or not a player controls them
  2. NPC-mode behavior routines — what the smuggler does when no player controls them (works shifts, runs operations, visits the bar)
  3. Observability — the NPC-mode PC must be visible, with tells and patterns that the active player can observe
  4. Consistent with player experience — if the player saw Kael's B-7 meeting when playing as the smuggler, and then plays the detective, the detective should be able to observe the same kind of event (though timing/details may vary per seed)

The content cost is shockingly low because we're already building these characters as PCs. The smuggler already has a routine, a role, relationships. All we're adding is the NPC behavior layer — and that's exactly what the 10-axis model defines. Want, Routine, Tolerance, Tells — it's all already there. We just need to run it in NPC mode.

The Replayability Matrix

Putting it all together. Variation axes across playthroughs:

Axis Seed A (Playthrough 1) Seed B (Playthrough 2) Seed C (Playthrough 3)
Character Smuggler Detective Smuggler
FRIEND Kael (exit attempt) Sera (evidence concealment) Renn (skimming)
Contraband Lattice components Medical-grade Severance tech
Compromised inspector Drin Resha Maret
Wavering member Pell Torek Pell
Dead drop Locker 47 Panel C-12 Bar back room
PC-as-NPC visible? Detective NPC at bar Smuggler NPC at docks Detective NPC at bar

Six axes of variation. Two character choices. Even with just 2-3 options per axis, that's hundreds of unique configurations. Two players comparing notes will describe fundamentally different games.

But what about the SECOND playthrough? The magic is that player knowledge from playthrough 1 creates DRAMATIC IRONY in playthrough 2 — not solution shortcuts. You know more, but you can't act on it because your character doesn't. The tension between "I know" and "they don't know" IS the second playthrough.

And the third playthrough? New seed. New FRIEND. New contraband. New compromised NPCs. The structure is familiar — you know HOW the game works — but the specifics are fresh. You're a veteran detective who's never seen THIS conspiracy before.

Summary: What I Need From This Workshop

  1. Tyre: Confirm the content directory supports pool-based randomization (NPCs, triangles, contraband assigned per seed, not hardcoded)
  2. Gestalt: Validate that role-slot templates (N regulars, M staff, K outsiders per social site) create enough mechanical variety without exploding content requirements
  3. Paula/Mellanie: Confirm that tagged pools can handle role-assigned dialogue (same NPC, different role per seed = different line selection)
  4. Gore: Does the moral shuffle (contraband variation) serve the philosophical themes or dilute them?
  5. Everyone: Does the PC-as-NPC concept belong in v0.1, or is it a v0.2 architectural investment?

The test I keep coming back to: Two friends play the game. They sit down after. One says "I can't believe what Kael did." The other says "Who's Kael? My FRIEND was Renn." And both of them realize they played fundamentally different games from the same application.

That's not a feature. That's a reason to exist.