Skip to content

Story Template and Variation

Part of NPCs World Verbs Rewards and Living World

The story system combines:

NPC state + job state + world verb + learning activity + world object + relationship history

Template model

story_template:
  id: merchant_repair_labels_intro
  npc_id: merchant_mara
  relationship_stage: first_meeting
  world_verb: repair
  activity_type: missing_letter
  target_object: crate_labels
  opening_line: "Oh no! The wind blew the letters off my box labels."
  request_line: "Could you help me repair them?"
  success_line: "You did it! Now I know what goes where."
  reward_line: "You need to reach the lighthouse? Use my boat."

Repeat version uses trusted_helper stage and different target (wet_labels).


Variation rules

Each job should have multiple lines per slot:

  • opening_lines (3+)
  • request_lines (3+)
  • success_lines (3+)

Rotate lines; avoid same line too soon.


Location-based selection

Prefer NPCs at current destination:

Location NPCs
first_island merchant, boat_builder, child_explorer
old_lighthouse lighthouse_keeper, gull_watcher
whale_bay fisherman, marine_helper, whale

NPCs can later visit other locations ("Could you deliver this to Whale Bay?").


Returning to earlier islands

Intentionally send players back — web, not straight line:

  • Lighthouse asks for supplies from first island
  • Fisherman asks for rope from merchant
  • Harbour Master asks to revisit old signs
  • Grandpa clue connects two locations