Story
Locations
(Idea) What Act 1 adds to each location's JSON and scene.
| Location | Scene | Camera | Spawns | Exits | Landmarks |
|---|---|---|---|---|---|
overworld (The Sallow Road) | Overworld, extended | overworld | adds Spawn_from_halfway | adds Exit_to_halfway | The milestone (Road_1), the reed bed (Road_2), the last hill (Road_3), the high-water towpath (Road_4, Road_5), the Halfway landmark miniature (concept landmark-halfway-a). |
halfway (Halfway) | Halfway, new | town | Spawn_from_overworld, Spawn_split_loaf (waking), Spawn_from_ring, Spawn_from_pale_road, Spawn_from_amber_road | Exit_to_overworld, Exit_to_ring (if the Ring is its own scene), Exit_to_pale_road, Exit_to_amber_road | Truce Stone, the two Rows, the Split Loaf, the Market and Truce boards, the Barge Landing, the Quarry, the two gates. |
drowned_steps | DrownedSteps | town | unchanged | unchanged | Adds Event_steps_alone, Event_wyrm; the deep glyphs under the water after the Wyrm. |
sallowbank | Sallowbank | town | unchanged | unchanged | Aske back at Mark_aske_ferry from act1.stage >= 1; villagers get Act 1 lines. |
The overworld in order from Sallowbank: Sallowbank, Walk_1–_3, the Drowned Steps' turning, Road_1 (milestone), Road_2 (reeds), Road_3 (last hill), Halfway's bridge. Road_4 and Road_5 sit near the Steps' turning and only fire on the way back (act1.stage == 5).
A sketch of halfway.json in VEL-53's format (marker names as above; actors' tints are placeholders). As in sallowbank.json, an actor's marker is its Mark_ marker without the prefix (reeve stands on Mark_reeve), while interactables name the full Event_ marker. Tamsin and Rook have one entry per place they stand: the Rows at stage 3, the Ring at stage 4, the Split Loaf table at stages 5–6, the gates at stage 7.
{
"id": "halfway",
"scene": "Halfway",
"title": "Halfway",
"camera": "town",
"enter": [
{ "node": "Act1_Halfway_TruceStone", "when": { "flag": "act1.stage", "op": "==", "value": 1 } },
{ "node": "Act1_Halfway_Reeve_After", "when": { "flag": "act1.stage", "op": "==", "value": 6 } }
],
"actors": [
{ "id": "reeve", "name": "Reeve Hollin Tace", "marker": "reeve", "tint": "#B8A27A" },
{ "id": "orla", "name": "Sister Orla", "marker": "orla", "tint": "#B48CFF" },
{ "id": "quill", "name": "Quill", "marker": "quill", "tint": "#FFC66B" },
{ "id": "hob", "name": "Hob", "marker": "hob", "tint": "#A9744A" },
{ "id": "ulla", "name": "Ulla", "marker": "ulla", "tint": "#8A7F74" },
{ "id": "tamsin", "name": "Tamsin", "marker": "tamsin_pale_row", "tint": "#7FD4FF",
"when": { "flag": "act1.stage", "op": "==", "value": 3 } },
{ "id": "rook", "name": "Rook", "marker": "rook_amber_row", "tint": "#FFC66B",
"when": { "flag": "act1.stage", "op": "==", "value": 3 } },
{ "id": "tamsin", "name": "Tamsin", "marker": "tamsin_ring", "tint": "#7FD4FF",
"when": { "flag": "act1.stage", "op": "==", "value": 4 } },
{ "id": "rook", "name": "Rook", "marker": "rook_ring", "tint": "#FFC66B",
"when": { "flag": "act1.stage", "op": "==", "value": 4 } },
{ "id": "tamsin", "name": "Tamsin", "marker": "table_tamsin", "tint": "#7FD4FF",
"when": { "all": [
{ "flag": "act1.stage", "op": ">=", "value": 5 },
{ "flag": "act1.stage", "op": "<=", "value": 6 } ] } },
{ "id": "rook", "name": "Rook", "marker": "table_rook", "tint": "#FFC66B",
"when": { "all": [
{ "flag": "act1.stage", "op": ">=", "value": 5 },
{ "flag": "act1.stage", "op": "<=", "value": 6 } ] } },
{ "id": "tamsin", "name": "Tamsin", "marker": "tamsin_gate", "tint": "#7FD4FF",
"when": { "flag": "act1.stage", "op": "==", "value": 7 } },
{ "id": "rook", "name": "Rook", "marker": "rook_gate", "tint": "#FFC66B",
"when": { "flag": "act1.stage", "op": "==", "value": 7 } }
],
"interactables": [
{ "actor": "reeve", "verb": "Talk", "node": "Act1_Halfway_Reeve" },
{ "actor": "orla", "verb": "Talk", "node": "Act1_Halfway_Orla" },
{ "actor": "quill", "verb": "Talk", "node": "Act1_Halfway_Quill" },
{ "actor": "hob", "verb": "Browse", "node": "Act1_Halfway_Hob" },
{ "actor": "ulla", "verb": "Talk", "node": "Act1_Ring_Ulla" },
{ "actor": "tamsin", "verb": "Talk", "node": "Act1_Halfway_Tamsin" },
{ "actor": "rook", "verb": "Talk", "node": "Act1_Halfway_Rook" },
{ "marker": "Event_market_board", "verb": "Read", "node": "Act1_Halfway_Board" },
{ "marker": "Event_split_loaf_rest", "verb": "Rest", "node": "Act1_SplitLoaf_Rest",
"when": { "flag": "act1.stage", "op": "==", "value": 2 } }
]
}