The Velan Codex

Story

The Heart Pane and the deep Shardfield

Taller, cleaner glass, every shard reflecting a sky a little closer to the Pane's doubled one. The deep Shardfield opens in Act 3 east of Corran (shardfield_inner, the area or location Act 4 proposes); the Pane is Act 4's. After Act 4 the place follows act4.outcome: stilled, a ring of standing pieces, or cracked and held. Work comes from Dace's wagons on the north rim, from whoever keeps the peace at the rim, and from people trying to live with what the player chose.

The Cache-Mark (side_culet_cache)

{
  "id": "side_culet_cache",
  "title": "The Cache-Mark",
  "description": "A sigil cut into a shard east of Corran: a broken line inside a circle. Something stands guard under it.",
  "category": "side",
  "giver": "aske",
  "startWhen": { "flag": "act3.stage", "op": ">=", "value": 4 },
  "stages": [
    {
      "id": "mark",
      "text": "Follow the cache-mark east of Corran.",
      "completeWhen": { "flag": "side.culet_cache.stage", "op": ">=", "value": 1 }
    },
    {
      "id": "guard",
      "text": "Get past what guards the cache.",
      "completeWhen": { "flag": "side.culet_cache.stage", "op": ">=", "value": 2 }
    },
    {
      "id": "map",
      "text": "Take the map to Lanternfall's council, give it to the menders, or put it back.",
      "completeWhen": { "flag": "side.culet_cache.stage", "op": ">=", "value": 3 }
    }
  ]
}

The Other Seal (side_other_seal)

{
  "id": "side_other_seal",
  "title": "The Other Seal",
  "description": "Ondine sealed Corran. Hale's ledger says she wasn't the first to seal somewhere.",
  "category": "side",
  "giver": "hollis",
  "startWhen": {
    "all": [
      { "flag": "act3.done", "op": "!=", "value": 0 },
      { "flag": "composite.known.thaw", "op": "!=", "value": 0 }
    ]
  },
  "stages": [
    {
      "id": "ask",
      "text": "Ask Hollis about Saltglass.",
      "completeWhen": { "flag": "side.other_seal.stage", "op": ">=", "value": 1 }
    },
    {
      "id": "find",
      "text": "Find Saltglass in the deep Shardfield.",
      "completeWhen": { "flag": "side.other_seal.stage", "op": ">=", "value": 2 }
    },
    {
      "id": "decide",
      "text": "Wake Saltglass with Thaw, or leave it as it is.",
      "completeWhen": { "flag": "side.other_seal.stage", "op": ">=", "value": 3 }
    }
  ]
}

The Last Wagon (act4_side_last_wagon)

{
  "id": "act4_side_last_wagon",
  "title": "The Last Wagon",
  "description": "Dace's wagons are moving families away from both rites. One more needs an escort to the inner ring's edge and back before dawn.",
  "category": "side",
  "giver": "dace",
  "startWhen": { "flag": "act4.stage", "op": ">=", "value": 2 },
  "stages": [
    {
      "id": "escort",
      "text": "Escort Dace's wagon to the edge of the inner ring and back before dawn.",
      "completeWhen": { "flag": "act4.wagon_escorted", "op": "==", "value": 1 }
    }
  ]
}

The Next Wagon (side_next_wagon)

{
  "id": "side_next_wagon",
  "title": "The Next Wagon",
  "description": "Dace's wagons never stop. There's always one more that needs a hand on the road.",
  "category": "side",
  "giver": "dace",
  "repeatable": true,
  "startWhen": { "flag": "act4.stage", "op": ">=", "value": 8 },
  "stages": [
    {
      "id": "take",
      "text": "Take Dace's next wagon from the north rim.",
      "completeWhen": { "flag": "side.next_wagon.stage", "op": ">=", "value": 1 }
    },
    {
      "id": "escort",
      "text": "Get the wagon where it's going.",
      "completeWhen": { "flag": "side.next_wagon.stage", "op": ">=", "value": 2 }
    },
    {
      "id": "back",
      "text": "Come back to the north rim for your pay.",
      "completeWhen": { "flag": "side.next_wagon.stage", "op": ">=", "value": 3 }
    }
  ]
}

The Rim Truce (side_rim_truce)

{
  "id": "side_rim_truce",
  "title": "The Rim Truce",
  "description": "Both sides come to look at the Pane at dawn. Halfway's Reeve wants them to be able to do it without a fight.",
  "category": "side",
  "giver": "reeve",
  "startWhen": {
    "all": [
      { "flag": "act4.stage", "op": ">=", "value": 8 },
      { "flag": "act4.outcome", "op": "==", "value": 3 }
    ]
  },
  "stages": [
    {
      "id": "agree",
      "text": "Agree to help the Reeve keep a truce at the rim.",
      "completeWhen": { "flag": "side.rim_truce.stage", "op": ">=", "value": 1 }
    },
    {
      "id": "lantern",
      "text": "A Warden picket has taken a Facet's lantern. Settle it.",
      "completeWhen": { "flag": "side.rim_truce.stage", "op": ">=", "value": 2 }
    },
    {
      "id": "night",
      "text": "Someone is chipping at the rim at night. Find out who.",
      "completeWhen": { "flag": "side.rim_truce.stage", "op": ">=", "value": 3 }
    },
    {
      "id": "warp",
      "text": "A fresh warp at the rim, and both camps want it. Settle that too.",
      "completeWhen": { "flag": "side.rim_truce.stage", "op": ">=", "value": 4 }
    },
    {
      "id": "stones",
      "text": "Set the truce stones.",
      "completeWhen": { "flag": "side.rim_truce.stage", "op": ">=", "value": 5 }
    }
  ]
}

The Pieces of the Pane (side_pane_pieces)

PieceShows its glyphGuardian
EastAt dawndeep_shoal
WestOnly to a precise mirrored cast (85% or better, the Pane rule)none
NorthIn a glass stormglass_storm
SouthAt night, among the starsnone
LowOnly from below, from the Undercrackundercrack_outlaws
LeaningAfter the player beats their own reflection in itdeep_double
CentreWhen a fresh warp opens at the ring (a glyph hunt at pane_ring)pane_guard

Each piece holds one glyph from the warp-born pool (data, Data/PanePieces/<id>.json). Until new spells ship, a piece shows an optional reflected or whole glyph the player hasn't learned, or else leaves 2 × glyph_dust. The centre piece shows the First Pair to anyone who missed it at dawn (it needs Brace and Facet Seal).

{
  "id": "side_pane_pieces",
  "title": "The Pieces of the Pane",
  "description": "The Pane is a ring of standing pieces now, each with its own sky and its own glyph. The hunters have started chipping.",
  "category": "side",
  "giver": "iver",
  "startWhen": {
    "all": [
      { "flag": "act4.stage", "op": ">=", "value": 8 },
      { "flag": "act4.outcome", "op": "==", "value": 2 }
    ]
  },
  "stages": [
    {
      "id": "chart",
      "text": "Hear what Iver wants recorded.",
      "completeWhen": { "flag": "side.pane_pieces.stage", "op": ">=", "value": 1 }
    },
    {
      "id": "seven",
      "text": "Find the glyph in each of the seven pieces.",
      "completeWhen": { "flag": "pane.pieces", "op": ">=", "value": 7 }
    },
    {
      "id": "where",
      "text": "Give the chart to the Giving Steps, send it to Ondine, or keep it.",
      "completeWhen": { "flag": "side.pane_pieces.stage", "op": ">=", "value": 3 }
    }
  ]
}

The Same Sky (side_same_sky)

{
  "id": "side_same_sky",
  "title": "The Same Sky",
  "description": "Every shard shows the same sky now. The Table cut found their water by the difference, and three carriers haven't come back.",
  "category": "side",
  "giver": "nim",
  "startWhen": {
    "all": [
      { "flag": "act4.stage", "op": ">=", "value": 8 },
      { "flag": "act4.outcome", "op": "==", "value": 1 }
    ]
  },
  "stages": [
    {
      "id": "ask",
      "text": "Hear Nim out at the water-cache shard.",
      "completeWhen": { "flag": "side.same_sky.stage", "op": ">=", "value": 1 }
    },
    {
      "id": "carriers",
      "text": "Find the three water carriers.",
      "completeWhen": { "flag": "side.same_sky.found", "op": ">=", "value": 3 }
    },
    {
      "id": "way_home",
      "text": "Teach Nim Listen, or chalk door-marks on the caches.",
      "completeWhen": { "flag": "side.same_sky.stage", "op": ">=", "value": 3 }
    }
  ]
}

From Side Quests › The Heart Pane and the deep Shardfield