{
  "id": "tutorial_codex",
  "title": "The Drowned Bell",
  "version": 1,
  "description": "A bell rings beneath the ruined belfry outside Greyhaven. Find a missing courier's warning, recruit a local seer, and descend into the flooded crypt before the echoes claim the town.",
  "intro": {
    "title": "A Bell Where No Bell Stands",
    "subtitle": "Greyhaven, before the fourth toll",
    "text": [
      "Greyhaven has stopped sleeping.",
      "For three nights, a bell has sounded beneath the hills north of town. The old belfry collapsed generations ago, and no bronze remains in its tower, yet each toll rolls through the wells and floorboards as though the earth itself were ringing.",
      "At dawn, you reach the town road. Somewhere beyond the roofs, a fourth toll begins.",
      "Begin at Greyhaven's tavern. Speak with Mara Vey, the innkeeper, about the missing courier."
    ],
    "canSkip": true,
    "startLocation": {
      "x": 112,
      "y": 98,
      "mapId": "overworld"
    },
    "showMessage": "Begin at Greyhaven's tavern. Speak with Mara Vey about the missing courier.",
    "playSFX": "quest_progress"
  },
  "towns": {
    "tutorial_codex:greyhaven": {
      "id": "tutorial_codex:greyhaven",
      "name": "Greyhaven",
      "near": {
        "x": 112,
        "y": 96
      },
      "mainLandMass": true,
      "services": [
        "tavern",
        "blacksmith",
        "shrine",
        "sage"
      ],
      "serviceMinRadius": 3,
      "serviceRadius": 6,
      "safetyRadius": 10,
      "personality": "waterside"
    }
  },
  "dungeons": {},
  "npcs": {
    "tutorial_codex:mara_vey": {
      "id": "tutorial_codex:mara_vey",
      "name": "Mara Vey",
      "role": "innkeeper",
      "bark": "If you hear the bell, count the tolls—and pray it stops at three.",
      "dialogueRoot": "tutorial_codex:mara_vey_dialogue",
      "appearance": {
        "ageGroup": "adult",
        "presentation": "feminine"
      },
      "placement": {
        "target": "map:112,96:tavern"
      }
    },
    "tutorial_codex:brother_oren": {
      "id": "tutorial_codex:brother_oren",
      "name": "Brother Oren",
      "role": "shrine_keeper",
      "bark": "Some warnings are late. That does not make them useless.",
      "dialogueRoot": "tutorial_codex:brother_oren_dialogue",
      "placement": {
        "type": "town",
        "townId": "tutorial_codex:greyhaven"
      }
    }
  },
  "companions": {},
  "items": {
    "tutorial_codex:sealed_letter": {
      "id": "tutorial_codex:sealed_letter",
      "name": "Sealed Courier Letter",
      "type": "QUEST",
      "value": 0,
      "desc": "A damp letter bearing the wax seal of a neighboring shrine.",
      "tags": [
        "QUEST",
        "CAMPAIGN_ITEM",
        "LORE"
      ]
    }
  },
  "monsters": {},
  "dialogue": {
    "tutorial_codex:mara_vey_dialogue": {
      "id": "tutorial_codex:mara_vey_dialogue",
      "npcId": "tutorial_codex:mara_vey",
      "greeting": [
        {
          "text": "Mara sets down a cup she has forgotten to fill. “You heard it too, then.”"
        }
      ],
      "topics": {
        "name": {
          "text": "Mara Vey. I keep the Greyhaven tavern open, even when nobody is sleeping."
        },
        "job": {
          "text": "I feed travelers, remember who came through town, and notice when one of them does not arrive."
        },
        "quest": [
          {
            "when": {
              "questActive": "tutorial_codex:missing_courier"
            },
            "text": "The courier should have come from the north road. Search near town and look for a satchel or shrine seal.",
            "actions": [
              {
                "endDialogue": true
              }
            ]
          },
          {
            "when": {
              "all": [
                {
                  "not": {
                    "questActive": "tutorial_codex:missing_courier"
                  }
                },
                {
                  "not": {
                    "questCompleted": "tutorial_codex:missing_courier"
                  }
                }
              ]
            },
            "text": "A courier from the eastern shrine never reached Greyhaven. Search near the north road and bring back whatever they carried.",
            "actions": [
              {
                "startQuest": "tutorial_codex:missing_courier"
              },
              {
                "completeQuestObjective": [
                  "tutorial_codex:missing_courier",
                  "hear_maras_request"
                ]
              },
              {
                "showMessage": "The Missing Courier begins. Search near Greyhaven for the courier's satchel."
              },
              {
                "playSFX": "quest_progress"
              },
              {
                "endDialogue": true
              }
            ]
          },
          {
            "text": "The north road is quiet now, but quiet and safe are not the same thing.",
            "actions": [
              {
                "endDialogue": true
              }
            ]
          }
        ]
      },
      "keywords": {}
    },
    "tutorial_codex:brother_oren_dialogue": {
      "id": "tutorial_codex:brother_oren_dialogue",
      "npcId": "tutorial_codex:brother_oren",
      "greeting": [
        {
          "text": "Oren watches the northern hills as though waiting for them to answer."
        }
      ],
      "topics": {
        "name": {
          "text": "Brother Oren. I keep Greyhaven's shrine and the records people prefer not to remember."
        },
        "job": {
          "text": "I tend the shrine, read its seals, and make certain old warnings are not mistaken for old superstitions."
        },
        "quest": [
          {
            "text": "The shrine has old records of the belfry, but no warning recent enough to explain tonight's toll.",
            "actions": [
              {
                "endDialogue": true
              }
            ]
          }
        ]
      },
      "keywords": {}
    }
  },
  "quests": {
    "tutorial_codex:missing_courier": {
      "id": "tutorial_codex:missing_courier",
      "title": "The Missing Courier",
      "summary": "Mara Vey is waiting for a courier who never reached Greyhaven. Search near the town and recover whatever the courier was carrying.",
      "objectives": [
        {
          "id": "hear_maras_request",
          "text": "Speak with Mara about the missing courier.",
          "detail": "Find Mara Vey inside Greyhaven's tavern and ask about the missing courier.",
          "marker": {
            "targetId": "tutorial_codex:mara_vey"
          }
        },
        {
          "id": "recover_letter",
          "text": "Recover the courier's sealed letter.",
          "detail": "Search near Greyhaven for the courier's satchel.",
          "marker": {
            "targetId": "tutorial_codex:courier_satchel"
          }
        },
        {
          "id": "show_letter_to_oren",
          "text": "Bring the sealed letter to Brother Oren.",
          "detail": "Brother Oren can identify the shrine seal and explain the warning.",
          "marker": {
            "targetId": "tutorial_codex:brother_oren"
          }
        }
      ]
    }
  },
  "spells": {},
  "shrines": {},
  "lootTables": {},
  "worldRules": {},
  "townServices": [],
  "safetyZones": [],
  "worldPlacements": [
    {
      "id": "tutorial_codex:courier_satchel_scene",
      "placement": {
        "type": "town",
        "townId": "tutorial_codex:greyhaven"
      },
      "contents": [
        {
          "type": "chest",
          "id": "tutorial_codex:courier_satchel",
          "name": "Courier's Satchel",
          "loot": {
            "gold": 0,
            "food": 0,
            "items": [
              "tutorial_codex:sealed_letter"
            ]
          }
        }
      ]
    }
  ],
  "triggers": []
}
