# Guide format reference

> Every header line, step line and goal the guide compiler takes, with the modifiers each accepts.

Page: https://polestar.guide/docs/reference/guide-lines (Polestar docs > Reference)

Every line the guide compiler takes, read from its own tables (`tools/lib/dsl/parse.js`): the header lines, the lines inside a step, and each goal with the modifiers it accepts. The words and examples are the cheatsheet's; the [full rules](https://polestar.guide/docs/authors/guide-format) are in the guide format.

Try them here: edit the guide on the left and the guide window on the right follows.

## Header lines

In column 0, before the first `step`: `guide`, `title`, `levels`, `zone`, `faction`, `race`, `class`, `next`, `category`, `folder`, `keywords`, `collects`, `reward`, `why`, `author`, `version`, `coords`, `pitch`, `pro`, `con`.

| Line | What it does | Example |
|---|---|---|
| `guide <id>` | First line: the guide's id, starting with your pack id and `/` | `guide joe-routes/goldshire` |
| `title <text>` | The name players see in the guide menu | `title Goldshire to Westfall` |
| `levels <min>-<max>` | The character levels the guide is for | `levels 5-10` |
| `zone <Name>` | The zone the guide's coordinates are in, until a step names another | `zone Elwynn Forest` |
| `zone map <uiMapID>` | The same, by map id | `zone map 1429` |
| `zone <Name>` / `zone map <uiMapID>` | Inside a step: the zone for coordinates from here on, also for the steps after it (after a step with `only` that sets one, name the zone again) | `zone Elwynn Forest` |
| `faction <Faction>` | Only for `Alliance` or `Horde` characters | `faction Alliance` |
| `race <Race>, ...` | Only for these races (see Conditions) | `race Human, Dwarf` |
| `class <Class>, ...` | Only for these classes | `class Warrior, Paladin` |
| `next <id>, <id>, ...` | Several guides after this one: the player picks one, the first is your suggestion | `next joe-routes/westfall, joe-routes/redridge` |
| `next <id> when <predicate>` | One guide per line, offered only while the predicate (as on a step's `when`) holds when this guide ends; `next` lines add up. One option left: Polestar goes on to it; none: the guide ends there | `next joe-routes/redridge when level>=15` |
| `next <id>` | The guide that follows when this one ends: one of yours or one of Polestar's (`polestar find --kind guide <zone>` lists them with who can follow them) | `next joe-routes/westfall` |
| `category <Category>` | The guide menu category: `Leveling` (default), `Class`, `Professions`, `Reputation`, `Legacy`, `Exploration`, `Collectibles`, `Miscellaneous` or `Dungeons` | `category Professions` |
| `folder <text>` | The guide menu folder to list it under | `folder Mounts · Level 40` |
| `keywords <word>, ...` | Extra words the guide menu search finds it by | `keywords wolf, meat` |
| `collects <item>, ...` | Items the guide obtains; Lookup opens this guide for them | `collects 750` |
| `reward item <item> ...` | What the guide's goal gives, shown with its icon in the guide menu; several items on one line are a choice of one; repeatable | `reward item 1251 2581` |
| `reward spell <id> "Name"` | A spell the goal teaches (a mount, a form, a demon) | `reward spell 5784 "Summon Felsteed"` |
| `reward text <words>` | A reward without an id | `reward text Shen'dralar reputation` |
| `choose <item> ...` / `reward <item> ...` | On `turnin`: the rewards to pick from, and the ones given outright | `turnin 5261 choose 159 2589 reward 4306` |
| `why <text>` | One short line in the guide menu: why the goal is worth doing (Class guides need it and `reward`) | `why Your own mount at 40.` |
| `author <name>` | Credits a guide to someone other than the pack's author | `author Joe` |
| `version <N>` | A whole number you raise when the guide changes (default 1) | `version 2` |
| `coords era` / `coords live` | The map frame of the coordinates you type (default `era`; `record draft` writes `live`) | `coords live` |
| `pitch <text>` | On a guide offered as a choice: one line on its card | `pitch Short walks between quests.` |
| `pro <text>` / `con <text>` | One advantage or drawback per line, under the pitch | `pro Ends at a flight point` |

## Step lines

Indented inside a step, beside its goals: `zone`, `only`, `tip`, `image`, `when`, `label`, `along`, `loop`.

| Line | What it does | Example |
|---|---|---|
| `zone <Name>` | The zone the guide's coordinates are in, until a step names another | `zone Elwynn Forest` |
| `zone map <uiMapID>` | The same, by map id | `zone map 1429` |
| `zone <Name>` / `zone map <uiMapID>` | Inside a step: the zone for coordinates from here on, also for the steps after it (after a step with `only` that sets one, name the zone again) | `zone Elwynn Forest` |
| `only <condition>, ...` | Inside a step: the step is only for matching characters | `only Hunter` |
| `only <condition>, ...` | After a goal: the goal is only for matching characters | `kill 299 only Hunter` |
| `tip <text>` | A note for the whole step, shown in the guide window | `tip Pull one kobold at a time.` |
| `image <path> [<w>x<h>]` | A picture (a `.tga` or `.blp` in the pack folder) shown under the step's tip, such as a screenshot of a cave mouth | `image media/fargodeep-mine.tga` |
| `when <predicate>` | Inside a step: the step is only for characters in that state when the route gets there (see Conditions checked during play) | `when level<6` |
| `when level<N` (`<=`, `>`, `>=`) | the character's level compares so; N may be a point inside a level (`12.5`, `12+2500`) | `when level>=10` |
| `when onquest <quest>, ...` | any of the quests is in the log | `when onquest 783` |
| `when complete <quest>` | the quest is ready to turn in | `when complete 7` |
| `when turnedin <quest>` | the quest is handed in | `when !turnedin 9201` |
| `when available <quest>` | the quest can be taken now | `when available 9200` |
| `when has <item> [xN]` | the bags hold N or more | `when !has 159 x5` |
| `when zone "<Name>"` / `when subzone "<Name>"` | the player is there | `when subzone "Goldshire"` |
| `when bound "<Location>"` | the hearthstone is bound there | `when !bound "Goldshire"` |
| `label <name>` | Inside a step: names it for an `along until` before it | `label camp` |
| `along [until <label>]` | Inside a step: the route never stops there; its goals are done along the way, listed under the next steps until done (or until the labelled step) | `along until camp` |
| `loop` | Inside a step: its `goto` points are the places to search, in order, for the step's kill, collect and interact goals without `@x,y` | `loop` |

## Goals

24 verbs, each a line inside a step: [`accept`](https://polestar.guide/docs/reference/guide-lines#accept) [`turnin`](https://polestar.guide/docs/reference/guide-lines#turnin) [`complete`](https://polestar.guide/docs/reference/guide-lines#complete) [`kill`](https://polestar.guide/docs/reference/guide-lines#kill) [`collect`](https://polestar.guide/docs/reference/guide-lines#collect) [`goto`](https://polestar.guide/docs/reference/guide-lines#goto) [`talk`](https://polestar.guide/docs/reference/guide-lines#talk) [`interact`](https://polestar.guide/docs/reference/guide-lines#interact) [`use`](https://polestar.guide/docs/reference/guide-lines#use) [`sethome`](https://polestar.guide/docs/reference/guide-lines#sethome) [`hearth`](https://polestar.guide/docs/reference/guide-lines#hearth) [`getfp`](https://polestar.guide/docs/reference/guide-lines#getfp) [`fly`](https://polestar.guide/docs/reference/guide-lines#fly) [`train`](https://polestar.guide/docs/reference/guide-lines#train) [`buy`](https://polestar.guide/docs/reference/guide-lines#buy) [`vendor`](https://polestar.guide/docs/reference/guide-lines#vendor) [`level`](https://polestar.guide/docs/reference/guide-lines#level) [`note`](https://polestar.guide/docs/reference/guide-lines#note) [`skill`](https://polestar.guide/docs/reference/guide-lines#skill) [`learn`](https://polestar.guide/docs/reference/guide-lines#learn) [`craft`](https://polestar.guide/docs/reference/guide-lines#craft) [`rep`](https://polestar.guide/docs/reference/guide-lines#rep) [`explore`](https://polestar.guide/docs/reference/guide-lines#explore) [`achieve`](https://polestar.guide/docs/reference/guide-lines#achieve).

### accept

| Line | What it does | Example |
|---|---|---|
| `accept <quest> ["Title"]` | Take a quest; the giver and title come from the data | `accept 783` |

Takes `"text"` `optional` `only` `group [N]` `@x,y` `map` `r` `era/live` `npc` `object` `item` `lvl`

### turnin

| Line | What it does | Example |
|---|---|---|
| `turnin <quest> ["Title"]` | Hand a quest in | `turnin 783` |

Takes `"text"` `optional` `only` `group [N]` `@x,y` `map` `r` `era/live` `npc` `object` `reward` `choose` `xp <N>` `money <amount>` `direct`

### complete

| Line | What it does | Example |
|---|---|---|
| `complete <quest> ["Title"]` | Finish every objective of a quest; give it a place (`@x,y`, or a `goto` before it) when its objectives have one, or the arrow has nowhere to point | `complete 7 @48.5,31.0` |

Takes `"text"` `optional` `only` `group [N]` `@x,y` `map` `r` `era/live`

### kill

| Line | What it does | Example |
|---|---|---|
| `kill <npc>` / `kill "<Name>"` | Kill a mob; `quest Q.O` ties it to a quest objective | `kill 6 x10 quest 7.1` |

Takes `"text"` `optional` `only` `group [N]` `@x,y` `map` `r` `era/live` `npc` `quest` `xN`

### collect

| Line | What it does | Example |
|---|---|---|
| `collect <item> ["Name"]` | Gather or loot items; without `quest`, counted in the bags | `collect 750 x8` |

Takes `"text"` `optional` `only` `group [N]` `@x,y` `map` `r` `era/live` `npc` `quest` `xN` `nearest`

### goto

| Line | What it does | Example |
|---|---|---|
| `goto <x>,<y> ["Label"]` | Walk to a spot; checked off on arrival, when a later goal of the step is done, or, ending its step, when the next step's quest work is done | `goto 47.6,35.1 "Kobold camp"` |

Takes `"text"` `optional` `only` `group [N]` `map` `r` `era/live`

### talk

| Line | What it does | Example |
|---|---|---|
| `talk <npc>` | Speak to an NPC | `talk 197` |

Takes `"text"` `optional` `only` `group [N]` `@x,y` `map` `r` `era/live`

### interact

| Line | What it does | Example |
|---|---|---|
| `interact <object>` | Click a game object | `interact 2843` |

Takes `"text"` `optional` `only` `group [N]` `@x,y` `map` `r` `era/live` `quest`

### use

| Line | What it does | Example |
|---|---|---|
| `use <item>` | Use an item | `use 1210 @47.6,35.1` |

Takes `"text"` `optional` `only` `group [N]` `@x,y` `map` `r` `era/live` `quest`

### sethome

| Line | What it does | Example |
|---|---|---|
| `sethome "<Location>"` | Bind the hearthstone at an inn, named as the game reports it | `sethome "Goldshire"` |
| `sethome nearest` | Bind at the nearest inn of the player's faction | `sethome nearest` |

Takes `"text"` `optional` `only` `group [N]` `@x,y` `map` `r` `era/live` `npc`

### hearth

| Line | What it does | Example |
|---|---|---|
| `hearth "<Location>"` | Use the hearthstone; done on landing there | `hearth "Goldshire"` |

Takes `"text"` `optional` `only` `group [N]`

### getfp

| Line | What it does | Example |
|---|---|---|
| `getfp "<Flight point>"` | Learn a flight path from its flight master | `getfp "Stormwind"` |

Takes `"text"` `optional` `only` `group [N]` `@x,y` `map` `r` `era/live` `npc`

### fly

| Line | What it does | Example |
|---|---|---|
| `fly "<Town>"` | Take a flight; done on landing there | `fly "Stormwind"` |

Takes `"text"` `optional` `only` `group [N]`

### train

| Line | What it does | Example |
|---|---|---|
| `train class` | Visit the nearest trainer of the player's class | `train class only Warrior,Mage` |
| `train <npc>` | Visit that trainer | `train 911 only Warrior,Paladin` |
| `train <Profession> [Rank]` | Learn a profession or its next rank (`Apprentice`, `Journeyman`, `Expert`, `Artisan`) at the nearest trainer | `train Mining Journeyman` |

Takes `"text"` `optional` `only` `group [N]` `@x,y` `map` `r` `era/live` `npc`

### buy

| Line | What it does | Example |
|---|---|---|
| `buy <item> ["Name"]` | Buy an item; `nearest` picks the closest vendor selling it | `buy 159 x5 nearest` |

Takes `"text"` `optional` `only` `group [N]` `@x,y` `map` `r` `era/live` `npc` `xN` `nearest`

### vendor

| Line | What it does | Example |
|---|---|---|
| `vendor nearest` / `vendor <npc>` | Sell and repair, at the closest vendor or that one | `vendor nearest` |

Takes `"text"` `optional` `only` `group [N]` `@x,y` `map` `r` `era/live` `npc`

### level

| Line | What it does | Example |
|---|---|---|
| `level <N>` | Reach level N, grinding if need be | `level 2` |
| `level <N>.<fraction>` / `level <N>+<XP>` | Reach a point inside level N: 12.5 is halfway through 12, 12+2500 is 2500 XP into it (to whole percent; needs Polestar 0.2.6) | `level 12.5` |

Takes `"text"` `optional` `only` `group [N]`

### note

| Line | What it does | Example |
|---|---|---|
| `note <text>` | A line of information; never holds the player up | `note The camp is busy at night.` |

Takes `optional` `only` `@x,y` `map` `r` `era/live`

### skill

| Line | What it does | Example |
|---|---|---|
| `skill <Profession> <N>` | Reach skill N (quote names of two words) | `skill "First Aid" 40` |

Takes `"text"` `optional` `only` `group [N]` `@x,y` `map` `r` `era/live`

### learn

| Line | What it does | Example |
|---|---|---|
| `learn <spell> ["Name"]` | Learn a recipe; from a trainer, or with `nearest` from the closest vendor of its recipe | `learn 3276` |

Takes `"text"` `optional` `only` `group [N]` `@x,y` `map` `r` `era/live` `npc` `item` `nearest`

### craft

| Line | What it does | Example |
|---|---|---|
| `craft <spell> ["Name"]` | Craft a recipe, `x<N>` times | `craft 3275 x5` |

Takes `"text"` `optional` `only` `group [N]` `@x,y` `map` `r` `era/live` `xN` `until <N>`

### rep

| Line | What it does | Example |
|---|---|---|
| `rep <Faction> <Standing>` | Reach a standing (`Neutral` to `Exalted`) with a faction, by name or id | `rep Stormwind Friendly` |

Takes `"text"` `optional` `only` `group [N]` `@x,y` `map` `r` `era/live`

### explore

| Line | What it does | Example |
|---|---|---|
| `explore <x>,<y> ["Area"]` | Discover the map area at these coordinates | `explore 41,65 "Goldshire"` |

Takes `"text"` `optional` `only` `group [N]` `map` `r` `era/live`

### achieve

| Line | What it does | Example |
|---|---|---|
| `achieve <id> "Name"` | Complete an achievement or Legacy Challenge | `achieve 9001 "Kobold Catcher"` |

Takes `"text"` `optional` `only` `group [N]` `@x,y` `map` `r` `era/live` `criteria <n>`

---

Next page: [Changelog](https://polestar.guide/docs/reference/changelog.md) · Every docs page: https://polestar.guide/llms.txt · All docs in one file: https://polestar.guide/llms-full.txt
