docs: add build spec, TODO, and encounter table sources

- vegvisir-spec.md: full build spec (core flow, chargen subsystem, GM
  layer, world model, journey flow, data compilation pipeline)
- TODO.md: spec broken into 8 sequential build phases
- docs/: Norse-flavoured and general random encounter tables (authoring
  source for the compile step)
This commit is contained in:
2026-07-04 20:06:03 +10:00
parent 6ff519760c
commit c0ef70d7fe
4 changed files with 3462 additions and 0 deletions
+494
View File
@@ -0,0 +1,494 @@
# Norse Journey Encounter Tables
Roll on **Layer 1** first. If you want more detail, roll on the relevant **Layer 2** table.
---
## Layer 1: What Happens? (d20)
| Roll | Event |
|------|-------|
| 13 | Nothing — uneventful travel |
| 45 | Weather turns |
| 68 | Encounter a person |
| 910 | Encounter a group |
| 1112 | Find something |
| 1314 | Natural hazard |
| 1516 | Signs of recent violence |
| 1718 | Pursuit or being followed |
| 19 | Physical hardship |
| 20 | Something uncanny |
---
## Layer 2A: Person Encountered (d20)
| Roll | Who |
|------|-----|
| 1 | Wounded traveller, won't say how |
| 2 | Thrall fleeing their master |
| 3 | Merchant with something hidden under the cart |
| 4 | Grieving widow, heading nowhere in particular |
| 5 | Lost child, won't say where they came from |
| 6 | Outlaw watching from the treeline |
| 7 | Skald collecting stories, too curious by half |
| 8 | Old woman who knows your name somehow |
| 9 | Disgraced jarl's son, armed and bitter |
| 10 | A healer with blood on their hands they can't explain |
| 11 | A fisherman far from any water |
| 12 | A young woman disguised as a man |
| 13 | A former thrall now free, with nowhere to go |
| 14 | A blind man navigating perfectly |
| 15 | A priest of the old ways, wary and watchful |
| 16 | A very old warrior with nothing left to prove |
| 17 | Someone who claims to know the protagonist's kin |
| 18 | A deserter from a nearby lord's warband |
| 19 | A young man running an errand he refuses to describe |
| 20 | A stranger in foreign dress, lost and afraid |
---
## Layer 2B: Group Encountered (d20)
| Roll | Who |
|------|-----|
| 1 | Raiders looking for easy prey |
| 2 | Funeral procession, silent and watchful |
| 3 | Displaced villagers with everything they own |
| 4 | Hunting party — purpose unclear |
| 5 | Mercenaries between contracts, drinking heavily |
| 6 | Settlers arguing loudly among themselves |
| 7 | A jarl's tax collectors with an armed escort |
| 8 | Pilgrims travelling to a sacred site |
| 9 | A warband returning home, fewer than they left |
| 10 | Slavers with a coffle of thralls |
| 11 | Fishermen sheltering from weather inland |
| 12 | A family fleeing a blood feud |
| 13 | Young warriors seeking their first raid |
| 14 | Traders from the east, nervously off-route |
| 15 | A lord's patrol, suspicious of lone travellers |
| 16 | Refugees from a burned settlement |
| 17 | Drunken men from a wedding, armed but unfocused |
| 18 | A group of thralls transporting goods without supervision |
| 19 | Outlaws who've mistaken the protagonist for someone else |
| 20 | A band of women — armed, organised, and saying little |
---
## Layer 2C: Weather Turns (d20)
| Roll | Weather |
|------|---------|
| 1 | Sudden blizzard — visibility drops to nothing |
| 2 | Ice storm — exposed skin at risk within the hour |
| 3 | Fog so thick landmarks vanish entirely |
| 4 | Flash flood from snowmelt upstream |
| 5 | Freezing rain turns every surface treacherous |
| 6 | Unseasonable warmth — ice gives way underfoot without warning |
| 7 | Wind strong enough to knock a person sideways |
| 8 | Sleet drives horizontally, stings like needles |
| 9 | Temperature drops sharply at nightfall — no shelter near |
| 10 | Heavy snow buries the trail ahead |
| 11 | Lightning storm with nowhere to take cover |
| 12 | Hail strips leaves, spooks animals, bruises skin |
| 13 | Mist rising off ice — beautiful and disorienting |
| 14 | Frost so hard the ground rings like iron underfoot |
| 15 | A thaw that turns solid ground to mud overnight |
| 16 | Darkness falls two hours early — unnatural-feeling |
| 17 | Wind that carries sound strangely — voices from nowhere |
| 18 | Snow so dry it shifts like sand, fills tracks instantly |
| 19 | A brief clearing — then worse than before |
| 20 | Sky turns green before the storm hits |
---
## Layer 2D: Find Something (d100)
| Roll | What |
|------|------|
| 0102 | Abandoned camp, fire still warm |
| 0304 | A corpse stripped of everything but its boots |
| 0506 | A child's toy in the middle of nowhere |
| 0708 | A boat run aground with no crew |
| 0910 | A cache of stolen goods, poorly hidden |
| 1112 | A runestone defaced recently |
| 1314 | A hanged man — still breathing |
| 1516 | A sword driven into the earth, no grave beneath it |
| 1718 | A bag of silver with no name on it |
| 1920 | A dead horse with all four legs broken |
| 2122 | A campfire surrounded by nine untouched seats |
| 2324 | A letter sealed and addressed, never delivered |
| 2526 | A pit dug and abandoned mid-task |
| 2728 | Fresh tracks leading off the path and then stopping |
| 2930 | A crude grave with a weapon laid across it |
| 3132 | Signs of a large camp, abandoned days ago |
| 3334 | A locked chest with no key and no owner |
| 3536 | A cart overturned, goods intact, horse gone |
| 3738 | A bundle of clothes belonging to a child |
| 3940 | A pile of ash where something large was burned |
| 4142 | A trap set on the trail — recently, and well |
| 4344 | A carcass half-butchered and left |
| 4546 | A carved idol left at a crossroads |
| 4748 | A shield split cleanly in two |
| 4950 | A door standing alone in a field, hinged to nothing |
| 5152 | Bloodstained snow leading in two directions |
| 5354 | A drowned man face-down in a shallow stream |
| 5556 | A fire laid but never lit |
| 5758 | An empty cage sized for a person |
| 5960 | A broken cart axle and scattered grain |
| 6162 | A wound dressing discarded on the trail |
| 6364 | A ring of stones too large to be a cooking fire |
| 6566 | A well with something tied to the rope that isn't a bucket |
| 6768 | A fresh cairn with no name |
| 6970 | Burnt offerings at a tree, still smouldering |
| 7172 | A pair of boots, side by side, perfectly placed |
| 7374 | A journal in a language the protagonist doesn't know |
| 7576 | A broken spear shaft — a fine one, from somewhere important |
| 7778 | A midden heap with something that doesn't belong |
| 7980 | A ford marked with warning signs ignored by someone recently |
| 8182 | A farmstead intact but completely empty |
| 8384 | A bell hanging from a tree with no rope to ring it |
| 8586 | Animal bones arranged in a deliberate pattern |
| 8788 | A cloak pinned to the ground with a knife |
| 8990 | A child's hiding spot — recently used |
| 9192 | A rope bridge cut from one side |
| 9394 | A message carved into living wood |
| 9596 | A body buried face-down — someone afraid of what it might do |
| 9798 | A ship's figurehead far from any coast |
| 99100 | A perfectly preserved meal laid out with no one to eat it |
---
## Layer 2E: Natural Hazard (d20)
| Roll | Hazard |
|------|--------|
| 1 | River crossing — current deceptively strong |
| 2 | Thin ice over deep water |
| 3 | Rockslide blocking the pass |
| 4 | Wolves — hungry, patient, following |
| 5 | Marsh that doesn't appear on any mental map |
| 6 | Trail disappears under fresh snowfall |
| 7 | A tree falls across the path in the night |
| 8 | Loose scree on a slope that looked solid |
| 9 | A frozen waterfall — must be climbed or bypassed at great cost |
| 10 | Bog hidden under a dusting of snow |
| 11 | A river swollen and impassable where it wasn't before |
| 12 | Ice fog — cold enough to freeze breath on a scarf |
| 13 | Bear newly woken, confused and aggressive |
| 14 | A cliff path with recent falls along its edge |
| 15 | Night catches the protagonist without shelter in an exposed place |
| 16 | A ford turned to deep water by rain upstream |
| 17 | Deadfall — a tangle of fallen timber blocks the wood path |
| 18 | A crack in the ice the protagonist nearly doesn't see |
| 19 | Ravens massing overhead — drawing attention |
| 20 | An avalanche track still moving |
---
## Layer 2F: Signs of Recent Violence (d20)
| Roll | What You Find |
|------|---------------|
| 1 | Burned farmstead, still smoking |
| 2 | Bodies left unburied — deliberate dishonour |
| 3 | Blood trail leading off the path |
| 4 | A survivor too shocked to speak |
| 5 | Livestock scattered, no people anywhere |
| 6 | A child hiding, refusing to move |
| 7 | A settlement intact but everyone inside is dead |
| 8 | A battlefield — small scale, very recent |
| 9 | Weapons abandoned mid-fight and not retrieved |
| 10 | A man dying slowly, won't say who did it |
| 11 | Tracks of many boots leaving in a hurry |
| 12 | A house torn apart from the inside |
| 13 | Drag marks leading to the water |
| 14 | A warning left by the attackers for anyone who follows |
| 15 | Looted grave goods scattered on the road |
| 16 | A woman alive among the dead, armed with what she could find |
| 17 | A child carrying something that belonged to someone else |
| 18 | Signs of a struggle with no bodies — just blood |
| 19 | A man hanged from a tree with a carved accusation around his neck |
| 20 | Heads displayed on stakes at the settlement boundary |
---
## Layer 2G: Pursuit / Being Followed (d20)
| Roll | Who or What |
|------|-------------|
| 1 | Debt collector with hired muscle |
| 2 | Someone who blames the protagonist for a death |
| 3 | A thrall-catcher — wrong target |
| 4 | Outlaw seeking to silence a witness |
| 5 | Unknown — never shows themselves |
| 6 | A dog that won't stop following |
| 7 | A boy who wants to come along |
| 8 | A woman who says she's been hired to watch |
| 9 | A wounded man trailing blood and asking for help |
| 10 | Two riders keeping distance but matching pace |
| 11 | Someone who knows the protagonist's destination |
| 12 | A man who claims to be following the same person |
| 13 | A local lord's men, claiming lawful business |
| 14 | A sworn enemy of someone the protagonist helped |
| 15 | A crow — too consistent to be coincidence |
| 16 | A group that disappears whenever checked but reappears at dusk |
| 17 | A young woman escaping a marriage arrangement |
| 18 | A former comrade who shouldn't be alive |
| 19 | Someone who says they're there for the protagonist's protection |
| 20 | A figure glimpsed only at the edge of firelight |
---
## Layer 2H: Physical Hardship (d20)
| Roll | Hardship |
|------|----------|
| 1 | Food runs out a day earlier than expected |
| 2 | Shelter falls through — night in the open |
| 3 | Injury from a stumble — nothing fatal, everything inconvenient |
| 4 | Equipment fails at the worst moment |
| 5 | Illness sets in slowly over the day |
| 6 | Exhaustion forces a stop in exposed terrain |
| 7 | Water source is frozen or fouled |
| 8 | Boots give out — blisters or worse |
| 9 | A fire won't start in wet conditions |
| 10 | Pack comes loose and gear is scattered in the dark |
| 11 | An old wound reopens |
| 12 | Hands too cold to grip properly |
| 13 | Stomach sickness from something eaten |
| 14 | Sleep impossible due to cold, noise, or dread |
| 15 | Frostbite threatening fingers or toes |
| 16 | Navigation error adds half a day to the journey |
| 17 | Horse or pack animal goes lame |
| 18 | Weight carried proves too much — something must be abandoned |
| 19 | A tool or weapon lost in a river crossing |
| 20 | Dehydration from sweating in cold gear |
---
## Layer 2I: Something Uncanny (d20)
| Roll | What |
|------|------|
| 1 | Tracks in snow that begin from nowhere |
| 2 | A voice calling a name — no source found |
| 3 | An animal behaving with deliberate intelligence |
| 4 | The same landmark passed twice on a straight road |
| 5 | A dream so vivid it bleeds into waking |
| 6 | A stranger who vanishes between one breath and the next |
| 7 | A fire that burns green for a moment |
| 8 | The protagonist's own reflection does something different |
| 9 | A sound like weeping from deep in the ice |
| 10 | Birds all flee at once, in silence |
| 11 | A path that wasn't there yesterday and isn't on any map |
| 12 | A figure standing very still on the horizon — gone when approached |
| 13 | Stars in the wrong positions for an hour |
| 14 | The smell of the sea miles from any coast |
| 15 | An old man who answers questions the protagonist didn't ask aloud |
| 16 | A handprint in frost on the inside of a sealed shelter |
| 17 | A sound of battle faint and distant — no source ever found |
| 18 | The protagonist wakes with soil under their fingernails |
| 19 | A raven speaks one word, clearly, and flies away |
| 20 | Time passes differently — a night feels like minutes, or hours |
---
---
## Layer 3A: What the Person Needs (d8)
*Roll after Layer 2A. What drives this scene.*
| Roll | They need... |
|------|-------------|
| 1 | To be heard — they haven't spoken to another person in days |
| 2 | Safe passage past something specific ahead |
| 3 | News of someone, and they will pay for it |
| 4 | A reason not to do something they have already decided to do |
| 5 | To hand something off — weight they have been carrying too long |
| 6 | Help they cannot ask for directly |
| 7 | To be followed, without being told |
| 8 | Nothing they will admit to |
---
## Layer 3B: How the Group Presents (d8)
*Roll after Layer 2B. The group's attitude when the protagonist arrives.*
| Roll | They are... |
|------|------------|
| 1 | Tense — something happened just before you arrived |
| 2 | Watching, not approaching |
| 3 | Openly suspicious, hands near weapons |
| 4 | Performatively calm |
| 5 | Arguing among themselves, briefly interrupted |
| 6 | Too welcoming, too quickly |
| 7 | Clearly afraid of something that is not the protagonist |
| 8 | Divided — half want help, half do not |
---
## Layer 3C: Weather Duration (d6)
*Roll after Layer 2C. How long it lasts and what it costs.*
| Roll | Duration |
|------|----------|
| 1 | An hour — bad and fast |
| 2 | Until dark |
| 3 | Through the night |
| 4 | Two days |
| 5 | Long enough to change the route entirely |
| 6 | Indefinitely — this is the new normal for now |
---
## Layer 3D: Who Left This? (d12)
*Roll after Layer 2D. The story behind the find.*
| Roll | It was left by... |
|------|------------------|
| 1 | Someone running from something they have not escaped yet |
| 2 | A group that did not all survive what came next |
| 3 | One person, alone, who made a decision here |
| 4 | A child, deliberately |
| 5 | Whoever was here last night |
| 6 | The same person the protagonist is looking for |
| 7 | Someone who knew this place would be found |
| 8 | A person now working against the protagonist |
| 9 | Nobody — it has been here longer than it looks |
| 10 | Two people who disagreed about leaving it |
| 11 | Someone who came back to retrieve it and could not |
| 12 | Nobody living can say |
---
## Layer 3E: How Dangerous? (d6)
*Roll after Layer 2E. The true stakes of the natural hazard.*
| Roll | The stakes |
|------|-----------|
| 1 | Minor — delay and discomfort only |
| 2 | Real — something could be lost or broken |
| 3 | A skill or smart decision will see it through |
| 4 | Someone in the group is at immediate risk |
| 5 | No safe path — all options have a cost |
| 6 | This could kill. And it is patient. |
---
## Layer 3F: Who Did the Violence? (d12)
*Roll after Layer 2F. The perpetrators.*
| Roll | Responsible... |
|------|---------------|
| 1 | Raiders — long gone, but not far |
| 2 | Men on someone's orders, not their choice |
| 3 | One individual, systematic |
| 4 | The victims themselves — it went wrong |
| 5 | A local family, decades of grievance finally spent |
| 6 | Soldiers returning from somewhere worse |
| 7 | Someone the protagonist has already met |
| 8 | Nobody who can be named — only described |
| 9 | The wrong people. They mistook their target. |
| 10 | Professionals. This was clean. |
| 11 | A single act of desperation, not a plan |
| 12 | Unknown. The survivors will not say. |
---
## Layer 3G: What the Pursuer Wants (d8)
*Roll after Layer 2G. The intent behind the pursuit.*
| Roll | They want... |
|------|-------------|
| 1 | To recover something that does not belong to the protagonist |
| 2 | Information — who the protagonist knows or spoke to |
| 3 | The protagonist dead, but not yet |
| 4 | To warn, not harm |
| 5 | To deliver a message from someone who could not send it openly |
| 6 | To follow, not intercept — someone else is waiting ahead |
| 7 | Nothing yet. They are measuring. |
| 8 | To make the protagonist afraid enough to stop |
---
## Layer 3H: How Bad Is It? (d6)
*Roll after Layer 2H. Severity of the physical hardship.*
| Roll | Severity |
|------|----------|
| 1 | Uncomfortable — morale hit, nothing more |
| 2 | Forces a rest and costs half a day |
| 3 | Something is damaged, lost, or consumed early |
| 4 | Someone is impaired until properly tended to |
| 5 | Progress halted until fixed — may take a full day |
| 6 | This will matter later, even after it is resolved |
---
## Layer 3I: What the Uncanny Thing Does (d8)
*Roll after Layer 2I. The nature of the event.*
| Roll | It... |
|------|-------|
| 1 | Communicates something — though not in any language |
| 2 | Leaves evidence that cannot be explained away |
| 3 | Draws the protagonist somewhere specific |
| 4 | Disappears if approached directly |
| 5 | Repeats exactly, later |
| 6 | Is recognised by someone nearby who will not discuss it |
| 7 | Means something that will not be clear until too late |
| 8 | Was waiting for the protagonist specifically |
---
## Layer 4A: Complication (d12)
*Roll after any Layer 3 result. A twist that deepens the scene.*
| Roll | Added complication |
|------|-------------------|
| 1 | Someone is watching this exchange |
| 2 | There is less time than it first appeared |
| 3 | Another party has an interest in the outcome |
| 4 | The simplest reading is wrong |
| 5 | Someone here is lying, but not about what matters most |
| 6 | This has already happened once before, nearby |
| 7 | A child is involved and should not be |
| 8 | Trust is the cost of progress, and it will not be offered freely |
| 9 | The right answer creates a new problem |
| 10 | Someone else made this decision already — recently |
| 11 | What is needed is something the protagonist has |
| 12 | It is connected to the last thing they found |
---
## Layer 4B: The Hidden Truth (d10)
*Roll after Layer 4A rows 4, 5, 9, or 12 — or whenever the scene demands it.*
| Roll | The truth... |
|------|-------------|
| 1 | Changes who is innocent |
| 2 | Implicates someone trusted |
| 3 | Is sadder than the worst interpretation |
| 4 | Was known by someone who said nothing |
| 5 | Was an accident that became a cover-up |
| 6 | Has a second thread — pull it and something else unravels |
| 7 | Was constructed to be found this way |
| 8 | Was meant to stay buried |
| 9 | Is exactly what it looks like. That is what makes it terrible. |
| 10 | Will cost more to know than not to |
---
*These tables are designed to layer. Roll Layer 1 to frame what kind of event occurs, then roll Layer 2 for specifics, Layer 3 for context, and Layer 4 for the complication beneath. Stop at any depth that fits the moment — not every scene needs all four layers.*
File diff suppressed because it is too large Load Diff