Chronicles · Beginner · Tutorial 1 of 3

The Shape of a Quest

Write a quest the game can actually run — which means learning the one distinction that separates a quest from a paragraph about a quest.

AshForge ChroniclesNo prerequisites~20 min

Chronicles is the narrative editor — quests, branching dialogue, and lore, in three tabs that cross-reference each other. This tutorial stays in the first tab.

You don't need Ascent of Ashes installed. On a fresh project Chronicles seeds its own demo narrative, so there is something to read from the moment it opens.

Good news up front: Chronicles auto-saves. Edits are written out debounced as you type — the log confirms it with Auto-saved narrative changes. There is no unsaved-work trap here, and no habit you need to build. (If you came from the Sentinel tutorials, that warning does not apply to this tool.)

Read one before you write one

01 Open Chronicles and select First Contact

The Quests tab is already active. Two demo entries sit in the list: First Contact and The Lost Cache. Click the first.

The inspector fills with the whole quest: Title, Difficulty (Easy / Medium / Hard / Legendary), Status (Draft / Active / Complete), a free-text Description, Objectives, Rewards, Prerequisites / Conditions and Notes.

Most of those are prose and behave how you'd expect. The Objectives section does not, and it is the whole point of this tutorial.

An objective is a row, not a sentence

Press Add Objective and you don't get a text box. You get four fields:

Type Description Target Seconds the game reads the player reads the game reads the game reads nothing checks that these two agree
One objective, four fields. Three of them are machine-facing; one is not.

Type is a dropdown, and it offers exactly four options: elapsed, eliminate_faction, manual, deliver. That word is what the game enforces. Target names what it acts on. Seconds matters for timed types. Description is the sentence the player sees, and the game does nothing with it at all.

The description is a label on the box, not the thing in the box. Change the wording and the quest plays identically. Change the Type and the quest becomes a different quest, whatever the sentence still says.

The dropdown and the documentation disagree. The data model's own comment lists six types — it adds collect, talk_to and custom, and omits manual. Only the four above are selectable. Trust the dropdown: it is what you can actually author with.

See it come apart in the demo data

Look at First Contact's first objective. The inspector columns are narrow, so read the stored values rather than what fits on screen:

Type: elapsed   Description: "Speak with the village elder"   Target: (empty)   Seconds: 0

Read as prose that's speak to someone. Read as data it's wait for zero seconds, with nothing to wait on. The sentence says one thing; the fields say another. Nothing in the tool will tell you — it isn't an error, it's a quest that does something other than what it reads like.

The second objective is coherent by comparison: deliver / "Deliver the token" / elder_token — a type, a matching verb, and something to deliver.

★ And The Lost Cache goes further: its third objective ships as type manual — the option the model's documentation doesn't list. The demo content is authored against the dropdown, not against the docs.

Write your own

02 New, then fill the fields deliberately

Press New. You get New Quest 3 with Difficulty Medium, Status Draft, and — helpfully — one objective already scaffolded (elapsed, 60 seconds). It is a skeleton, not a blank.

Give it a title and a description, then make the objective mean something. Pick deliver, describe it as "Bring the sealed crate to the elder", and put the recipient's id in Target. Now the sentence and the data agree — and unlike the demo's first objective, the type is doing real work.

03 Rewards name things the game already knows

The Rewards box says it plainly: one per line, reference Items/Weapons by name. Basic Medkit in the demo isn't descriptive text — it's a lookup. Spell it the way the game spells it, or the reward silently isn't there.

Same idea as the objective Type: you are writing names into a vocabulary someone else defined.

What Validate does, and what it can't

04 Press Validate

You'll most likely get “Narrative validation passed — no issues found.” Worth knowing exactly what that sentence is promising, because it is narrower than it sounds. Validate checks:

AreaIt catches
Questsno title; no objectives at all; an objective with an empty description
Dialoguesno title; a node with neither text nor choices; a choice pointing at a node that doesn't exist
Lorean entry missing its title or its content

That's the list. It does not check that a Type matches its Description, that a Target exists, that a reward name is real, or that any of it is any good.

Validate is a broken-link checker, not an editor. A green result means structurally complete — every required field is filled and every dialogue choice points somewhere real. It says nothing about whether the quest works. The dangling-choice check is the one that earns its keep, and you'll meet it properly in tutorial two.