# Polestar: the docs in one file > Polestar is a free, open-source (GPL-3.0) leveling guide addon for World of Warcraft: Forever. This file holds its docs for players and guide authors and its reference, as of Polestar 0.2.6, followed by each faction's leveling road and the class guides. The index is https://polestar.guide/llms.txt. Each page starts with its title (a level-1 heading) and its address on polestar.guide; cite that address. Pages are separated by a line of dashes. Contents: 26 docs pages, then the Alliance road, the Horde road and the class guides. --- # Start here > Polestar is for World of Warcraft: Forever. It is a free leveling guide: install it, log in, and follow the arrow. Page: https://polestar.guide/docs/players (Polestar docs > Players) Polestar is for World of Warcraft: Forever. It is one addon for the whole game: leveling guides from 1 to 60 for every race's start, class quests, professions, reputations and collectibles, with a 3D arrow that walks real paths to your next goal. Goals tick themselves off as you play. It is free and open source. ## Install it ### CurseForge app 1. Search for **Polestar Guides** in the CurseForge app and install it. 2. Restart the game completely. A `/reload` does not load a new addon. 3. Log in. The guide window opens with a guide for your race, level and zone. ### Windows 1. Download `Polestar-.zip` from the newest release on the [Releases page](https://github.com/fitzforge/polestar/releases), under *Assets* (not "Source code"). 2. Unzip it into the game's AddOns folder, so the `Polestar` folders sit directly inside it. On the beta client: ```text title="AddOns folder" C:\Program Files (x86)\World of Warcraft\_classic_beta_\Interface\AddOns ``` From launch, `_forever_` takes the place of `_classic_beta_`. 3. Restart the game completely and log in. ### macOS 1. Download `Polestar-.zip` from the newest release on the [Releases page](https://github.com/fitzforge/polestar/releases), under *Assets*. 2. Unzip it into the game's AddOns folder, so the `Polestar` folders sit directly inside it. On the beta client: ```text title="AddOns folder" /Applications/World of Warcraft/_classic_beta_/Interface/AddOns ``` From launch, `_forever_` takes the place of `_classic_beta_`. 3. Restart the game completely and log in. ### Linux (Wine, Proton) 1. Download `Polestar-.zip` from the newest release on the [Releases page](https://github.com/fitzforge/polestar/releases), under *Assets*. 2. Unzip it into the AddOns folder inside the game's prefix, so the `Polestar` folders sit directly inside it: ```text title="AddOns folder" /drive_c/Program Files (x86)/World of Warcraft/_classic_beta_/Interface/AddOns ``` The prefix is wherever your launcher keeps it: `~/.wine`, `~/Games`, Lutris (`~/.local/share/lutris/prefixes`), Bottles, Faugus, or Steam's Proton prefixes under `~/.local/share/Steam/steamapps/compatdata`. From launch, `_forever_` takes the place of `_classic_beta_`. 3. Restart the game completely and log in. > **Tip:** > Building from a clone instead? `polestar install` finds the client in all of > these places by itself: see [Building from source](https://polestar.guide/docs/contributors/building). The full steps, with the folder for each client and what to know about updating and memory, are in [Install and first run](https://polestar.guide/docs/players/quick-start). ## Find your way round - [What Polestar is](https://polestar.guide/docs/players/what-it-is): the guides, the arrow and the hub, with screenshots from the game. - [Features](https://polestar.guide/docs/players/features): everything Polestar does, from the guide engine to gear advice, rares and the gamepad. - [Talent plans](https://polestar.guide/docs/players/talent-plans): a leveling plan for every spec, marked on the talent frame; each [class's page](https://polestar.guide/guides/class) lists its plans pick by pick. - [How the routes are made](https://polestar.guide/docs/players/how-routes-are-made): why the leveling routes are the ones they are. - [Community guides](https://polestar.guide/docs/players/community-guides): guides written by other players, installed beside Polestar, and who to ask when one goes wrong. - [Import strings](https://polestar.guide/docs/players/import-strings): a small community guide shared as one line of text. - [FAQ](https://polestar.guide/docs/players/faq): short answers to the questions players ask most. - [Using Polestar with AI assistants](https://polestar.guide/docs/players/ai-assistants): give ChatGPT, Claude or another assistant these docs, so it answers from them. > **Tip:** > Press ⌘K (or Ctrl K) on any docs page to search every > heading and every word of the docs. ## Something wrong? Click the bug in the guide window, beside Skip: say what went wrong, copy the report (it already holds the step, where you stand and the versions) and paste it on the [Polestar Discord](https://discord.gg/polestar). A wrong step in a community guide goes to that guide's author instead. --- # Install and first run > Install Polestar from the CurseForge app or a release zip, restart the game and follow the arrow. Page: https://polestar.guide/docs/players/quick-start (Polestar docs > Players) 1. **Install it with the CurseForge app** (search for [Polestar Guides](https://www.curseforge.com/wow/addons/polestar)), then skip to step 3. **Or download** `Polestar-.zip` from the newest release on the [Releases page](https://github.com/fitzforge/polestar/releases), under *Assets* (not "Source code"). 2. **Unzip it into the game's AddOns folder**, so the Polestar folders (`Polestar`, `Polestar_Guides`, `Polestar_QuestDB`, `Polestar_ItemDB`) sit directly inside it: `World of Warcraft/_classic_beta_/Interface/AddOns/` on the beta client, `_forever_` instead of `_classic_beta_` from launch. 3. **Restart the game completely** (a `/reload` does not load new addons) and log in. The guide window opens with a guide for your race, level and zone: follow the arrow, and the goals tick themselves off as you play. Good to know: - `/polestar guides` opens the hub: every guide, Lookup, Dungeons and Rares. `/polestar options` holds every setting; quest markers on the map are off until you turn them on under **Map**. - `/polestar skip` moves on for good; `/polestar next` and `prev` only look ahead or back. - **Updating:** delete the old Polestar folders, then unzip the new release the same way. - **Memory:** the arrow's walking routes (`Polestar_Nav`) load after login, never in combat: about 34 MB for the walking maps, and while a walk is being searched up to about 45 MB more for the stretch of map it crosses, released when the search ends. **Walk real paths** (Options, Arrow & routes) off never loads them. - **Optional:** `Polestar_Recorder-.zip` from the same release records your sessions to improve the routes. It does nothing until you turn it on. - **Community guides** are other people's guides for Polestar, each a separate addon from its own author: see [Community guides](https://polestar.guide/docs/players/community-guides). - Something wrong? Click the bug in the guide window, beside Skip: say what went wrong, copy the report (it already holds the step, where you stand and the versions) and paste it on the [Polestar Discord](https://discord.gg/polestar). `/polestar report` opens it too, and [issues](https://github.com/fitzforge/polestar/issues) are welcome as well. The release's `SHA256SUMS` holds the zips' checksums. --- # What Polestar is > One addon for the whole of WoW: Forever: 222 guides, a waypoint arrow that walks real paths, and the tools around them. Page: https://polestar.guide/docs/players/what-it-is (Polestar docs > Players) ## What it is Polestar is one addon for the whole of WoW: Forever. It carries 222 guides: 57 leveling guides that take both factions from 1 to 60 from every race's starting zone (Zephras Isle for the Skyborne included), 66 class guides for every class's quest chains, the twelve professions from 1 to 300, 17 reputations, 7 exploration guides, the Legacy challenges and 60 collectible guides, one per mount and per pet. Around the guides it adds a 3D waypoint arrow that walks real paths (on Polestar's walking maps, with a router that started from Shortest Path Forever's by Cillian Berragan) and a travel planner, quest markers on the map, an upgrade indicator on item tooltips, a search for where any item, mount or pet comes from, a dungeon quest journal, rare alerts and the quality-of-life helpers a long leveling session needs. Its interface and its guides read in English, German, French, Spanish (Spain and Latin America), Brazilian Portuguese, Russian, Korean and Chinese (simplified and traditional). The leveling routes are not hand-picked. A simulator models every quest Forever offers a faction, plays millions of complete 1-60 routes for each start, and keeps the one that reaches 60 soonest under its model; the guides are written from that route and scored under the same model ([How the routes are made](https://polestar.guide/docs/players/how-routes-are-made)). Other people can publish their own guides for Polestar as community addons: separate addons, made and supported by their authors ([Community guides](https://polestar.guide/docs/players/community-guides)). Each new character's first login opens a short welcome: a hello and what Polestar does; on the account's first character, quest automation, the guide at login and the color scheme, then the route style (Fastest, Balanced or Roads, with a line on what each does); then the guide Polestar suggests for that character, the Discord and community guides (`/polestar welcome` shows it again). > **Note:** > **Beta.** Every guide compiles, lints and plays to the end in a simulator > for every race and class it serves, but nothing has been play-tested on > Forever yet. Forever's new 30-60 content (Riverglades, Shen'dralas, Mount > Hyjal) is not in any data yet; the routes take it in at launch. ## A look inside Screenshots from the game: World of Warcraft: Forever (beta client) with Polestar 0.1.0 at its default settings. Click a picture for full size. *(Image: The Polestar hub on its Guides section: the section rail (Guides, Lookup, Dungeons, Rares, Options), guide categories with Leveling selected, the Horde leveling guides by level band with The Barrens (19-24) selected, and its details: a painting of the zone, levels, progress in tab 1, steps, quests, zones, the next guide and a Continue button)* **The hub.** Guides, Lookup, Dungeons and Rares on one rail, Options at its foot. Here the Horde leveling guides by level band, and the selected guide's zone, progress, quests and the guide after it. *(Image: The guide window on step 5 of 60 of The Barrens: Northwatch Hold, collect the Theramore Medal, kill Captain Fairmount and two cannoneers with a 4/10 counter, then Gilthares Firebough, 3620 XP per hour and 6 h 52 m to level)* **The guide window.** The step's goals with their counters, who comes next, XP per hour and the time to level. *(Image: The same guide window in transparent mode: no background, outlined text over the grass of the Barrens)* **Transparent mode.** Outlined text straight on the world; the controls appear under the cursor. *(Image: The 3D waypoint arrow over the sea: 34 yd, Collect Theramore Medal)* **The arrow.** Distance and the goal it leads to. *(Image: Lookup searching for Swift: 119 results across guides, mounts, items, recipes, quests, NPCs and rares, with the Swift Ram guide selected)* **Lookup.** One search over guides, mounts, items, recipes, quests, NPCs and rares, each with where it comes from. *(Image: The Dungeons section: 34 dungeons by level band on painted cards, with their levels, zone, quest count and a Your level mark)* **Dungeons.** Every dungeon by level, its quests counted for your faction, the ones for your level marked. *(Image: The Wailing Caverns page: Show on map, Guide me to the entrance and Pick up the quests buttons, and its quests with who starts and ends them and their chains)* **A dungeon's page.** Who starts and ends each quest and its chain; one button guides you round to pick them all up. *(Image: Wailing Caverns quests with their objectives and rewards: item choices with icons, experience and money)* **Objectives and rewards.** The items to choose from with their icons, the experience and the money. *(Image: The Rares section: a list of rares with their levels, and Aean Swiftriver selected with its drop, where it spawns and how far away, when it was last seen, and Mute alerts, Look up and Set waypoint buttons)* **Rares.** Every rare and treasure, its drops, where it spawns and how far, and when you last met it. *(Image: Options on the Appearance page: accent color, class color, color scheme, background color, brightness, background opacity, font set to Game font, and reduce motion)* **Options.** Every setting as one row, applied as you change it; here Appearance. Lookup, Dungeons and Rares read the Codex, a data pack that ships in the release as `Polestar_Codex` ([Lookup, Dungeons and Rares](https://polestar.guide/docs/players/features#lookup-dungeons-and-rares)). Not pictured yet: the rare alert, the upgrade marks on the quest reward panel and the quest markers on the world map. Renders of every window and state, drawn without the game, are in [docs/preview](https://github.com/fitzforge/polestar/tree/next/docs/preview). --- # Features > Everything Polestar does: the guide engine, navigation, quests and the map, gear advice, Lookup, Dungeons, Rares and more. Page: https://polestar.guide/docs/players/features (Polestar docs > Players) ## Guides and the engine - **One person at a time.** In a quest hub the window shows only who to talk to now and their quests, then "Then: *next person*" and "Person 2 of 8"; the arrow points at that person. Counters sit right after each goal ("Kill Zhevra Chargers 3/8") and a bar at the foot shows how far into the guide you are. - **Goals check themselves off** as you play: accepted and turned-in quests, kills, loot, places reached, trainers visited, skills and reputation. Your place in a guide is recomputed from your quest log, so it survives lost saved variables. - **It catches up.** With "Skip grey quests" on, a guide you open on a character who already did part of the route goes over what is done to where you are: grey quests are left out, and so are green ones behind your progress, unless a later quest needs them. A guide you are past, given to you when no guide is open or by Start guide, hands over to the next. Item, mount, reputation, profession and class guides do every step. - **A guide for where you are.** The window opens with a guide suggested for your race, class, level and location, and each guide hands over to the next one in its chain when you finish it. - **Tabs.** Up to six guides open at once (a leveling route and a profession, say); quests are auto-accepted for all of them. - **Professions** send you to the nearest trainer, vendor or inn of your own faction from where you stand, never into a city of the other faction; a goal's cycle button picks another. - **Class training reminder** every two levels (configurable): the nearest trainer of your class, unless your guide is about to take you there. - **Elite quests are optional.** Leveling routes use only quests a player can do alone; a quest that needs an elite appears as an extra marked "optional". ## Navigation - **A 3D waypoint arrow** points at the current goal, shifting from the accent to jade as you arrive, with distance and ETA. Distances read in yards, the game's unit, or in metres (Options, Arrow & routes). - **The travel planner** uses known flight paths, boats, zeppelins and your Hearthstone when they are faster. Each leg has its own caption on the arrow ("Fly to Crossroads", "Take the boat to Menethil Harbor", "Hearth to Razor Hill"). - **Trail dots** on the world map and the minimap crawl along the route between its waypoints (Map options can turn them off). - **Zone crossings.** Walks between zones go through the real tunnels, passes, bridges and gates (an Era map addon's zone connections), one waypoint at a time ("Go to Ashenvale"): from Sun Rock Retreat to Astranaar through the Talondeep Path, not over the ridge. - **`/polestar way [label]`** points the arrow anywhere on the current map. - **Go anywhere.** Shift-click the world map or the minimap and the arrow takes you there, routed like any goal; Alt-click works over map icons. Click the spot again to let it go. - **Nearby services.** `/polestar near repair` (trainer, a profession, class, weapon, reagents, vendor, innkeeper, bank, auction, flight, stable) points the arrow at the quickest one to reach; the map's tracking menu and the guide window's Nearby services button list them, the button with a page of the weapons a weapon master can teach you. Once you get there, the arrow is back on the guide. - **OpenMap.** On [OpenMap](https://www.curseforge.com/wow/addons/openmap)'s seamless world map the trail dots carry on across zone borders and show on the whole-world view too. OpenMap's menu has a "Polestar trail dots" switch. - **Other addons' waypoints** (Options, Integrations, TomTom). Without TomTom, "Let other addons set waypoints" (off by default) lets addons that set TomTom waypoints point Polestar's arrow and makes `/way` work; addons that expect TomTom's own settings may not work with it on. With TomTom, the arrow can follow TomTom's. Addon authors: `Polestar.Nav.API` (docs/ARCHITECTURE.md, "Nav API"). ## Pathing by Shortest Path Forever The arrow walks real paths: round cliffs, water and walls, through the town gate and down into the mine, not over the edge. That is the work of [Shortest Path Forever](https://github.com/cjber/shortest-path-forever) by **Cillian Berragan** ([cillian.dev](https://cillian.dev)), who baked walking maps of the continents from the game client and wrote a router that finds a route over them a couple of milliseconds at a time, so the game never stutters. It is beautiful work, and he generously said yes when we asked to use it. Polestar's travel planner still picks the flights, boats and Hearthstone; the router that started from his walks every leg between them. It keeps to roads where they are not much longer, round steep slopes, and out of the other faction's towns; when a walk must enter one (a quest inside Southshore for a Horde character), the arrow says "Hostile town: Southshore" once as the walk starts, and the walk's journey step reads the same when the route has more steps. **Route style** (Options, Guide, Arrow & routes) picks how it walks: Fastest takes the shortest way over hills and across fields, Balanced (the default) keeps to roads that aren't much longer and goes round hills, and Roads stays on roads even when they're longer. Every style keeps out of the other faction's towns. The router ships with Polestar as the `Polestar_Nav` folder. Polestar's walking router started from Shortest Path Forever v1.16.0 by Cillian Berragan, with thanks; Polestar maintains it since 2026-10-16. It runs on Polestar's own walking maps of Eastern Kingdoms, Kalimdor and Zephras Isle, made from the game's geometry in a format grown from his by a port of his map baker (GPL-3.0-or-later; what came from where is in [addon/Polestar_Nav/CREDITS.md](https://github.com/fitzforge/polestar/blob/next/addon/Polestar_Nav/CREDITS.md)). **Walk real paths** (Options, Arrow & routes) turns it off. If you like it, try his addon: [Shortest Path Forever on CurseForge](https://www.curseforge.com/wow/addons/shortest-path-forever) plans whole journeys with flights, boats, zeppelins, portals and live departure times. **Shortest Path Forever: an option.** With it installed, Polestar still guides by default. **Hand guiding to Shortest Path Forever** (Options, Integrations) hands it the route instead: each goal goes to Shortest Path Forever, whose arrow, route and journey take you there, and Polestar's own arrow, route lines, journey steps, travel button, transport alerts, map clicks and `/way` step aside, so the two never guide at once (Polestar's walking maps are not even loaded). The guide window and the map pins stay. A kill or collect area is handed over as an area, so it holds you there until the goal is done; if you clear or replace the journey, Polestar leaves it be until the guide moves on. With the option off, a journey you start in Shortest Path Forever itself still wins: Polestar steps aside the same way while it runs, and guides again when it ends. If Shortest Path Forever finds no way to a goal, or turns its journeys off, Polestar's own arrow guides you there instead. ## Quests and the map - **Quest markers**: givers, objectives and turn-ins on the world map and the minimap, with tooltip lines on the mobs and items a quest needs and quest levels in the log. Nameplate icons mark the mobs you still need, beside the health bar of EllesmereUI and other replacement nameplates too. - **Rare and treasure spawns, dungeon entrances, flight masters, docks and inns** can mark the map too. Every map icon is off by default and turns on under **Map** in the options; the arrow's target, its route and the regions the guide step's mobs and objects spawn in (shaded on the world map and the minimap) always show. - **A world map without fog of war**, with coordinates and zone level ranges. ## Gear advice - **Upgrade indicator** on item tooltips: by how much an item is an upgrade for your spec at your level, from stat weights per spec (detected from your talent points) and level band. - **On the game's reward panel** every choice that is an upgrade gets a green arrow, the one to take is framed, and a coin marks the one that sells for most. Turn-in goals name the best reward. - **In your bags** every item that is an upgrade gets the same green arrow, in the game's bags and in Baganator. ## Lookup, Dungeons and Rares - **Lookup** searches guides, items, mounts, pets, NPCs, quests, zones, dungeons and rares, and answers "how do I get that?" with the sources ranked for your character. "Guide me" opens the curated guide or builds one on the spot. Target or mouse over a player to see their mount and how to get it; Alt-click an item link for a guide. - **Dungeons**: a journal page per dungeon with every quest (where it starts and ends, its objective, chain and rewards), the bosses and the entrance. "Pick up the quests" builds a guide that collects every quest of the dungeon you can take, earlier quests first, on the shortest path from where you stand to the entrance; after the run, "Hand in the quests" guides you to where they are turned in and takes the follow-ups there. - **Rares**: rares and treasures by zone with their spawns and signature drop, and an alert when one shows up on your minimap, nameplates or target. Lookup, Dungeons and Rares read the Codex, a data pack built on your own machine from addons you have installed ([Data and licensing](https://polestar.guide/docs/reference/credits)); it is not part of the release. Without it Lookup still searches the guides, and each section says what is missing. ## Appearance and UI suites - **Colour schemes**: Dusk (the default), Night and Graphite, and EllesmereUI's own panel colour and accent while it is installed. On top of any scheme: your own accent or your class colour, background colour, opacity and brightness. Text stays legible whatever you pick: a ground too light for its text is darkened until it reads. - **Windows**: the border, its colour and thickness, the starlit header band and the shadow, each on or off; the guide window's style (standard, compact or transparent), scale, width and opacity; the menu scale; the arrow's style, scale, opacity and colours; reduced motion. Everything applies live, without a reload; right-click any setting to reset it. - **Fonts**: the game's own by default, or Inter, or EllesmereUI's. - **EllesmereUI** (Options, Integrations): Polestar follows its accent and font by default through its public skinning API, and where its Quality of Life or Friends module does the same job as a Polestar toggle, the toggle starts off. ## Quality of life Quest item, target and Hearthstone buttons; XP per hour and time to level; the level the guide wants you to reach, marked on the game's XP bar; selling greys and repairing (optionally from the guild bank first); buying what a step asks you to buy; learning new spells at class trainers; taking the best quest reward and wearing rewards that are upgrades; instant quest text, single-option gossip and faster auto-loot; hiding combat error spam; flight map and death helpers, and releasing at once in battlegrounds; setting your home at the inn the guide names when you talk to its innkeeper (off by default). Requests from other players: accept summons, resurrections and friends' or guildmates' party invitations; decline other party invitations, guild invitations and duels (friends and guild excepted). Hold **Shift** to skip auto-accept, auto-turn-in, auto-sell, training, binding or the flight helper once, or to answer a request yourself. ## With a gamepad Polestar plays with a gamepad on Forever (ported from the translated names database, @moust4ki). Open its options from the minimap button (or `/polestar gamepad` without the game's gamepad interface): their **Gamepad** page names the buttons (Xbox letters or PlayStation shapes, read off the gamepad by default), and its **Key bindings** tab binds every Polestar action: next and previous step, browse the guide, show or hide the guide window, the guide menu, the options, report a problem, and the quest item, target and Hearthstone buttons. Nothing is bound until you bind it. Press A on a row, then a button, or hold one button and press another for a combination: Polestar watches its combinations itself, keeps the second button from the game only while you hold the first, and never acts on one in a fight. With the game's gamepad interface on, LB and RB are its targeting buttons and every combination with them is the game's own: the row says so before it binds one. Tap B to cancel, hold B to bind B itself; Y unbinds. The rows take keys of the keyboard too. The guide window never takes a button away from the game. To browse it with the gamepad, bind **Browse the guide with the gamepad**: the D-pad picks a line (up from the goals: Skip, the bug, the menu and the tabs), A points the arrow there or uses the quest item on its line (not with the game's gamepad interface, whose own buttons Polestar leaves alone), X shows the line's details, LB / RB look at the previous and next step, Y minimizes the window, and B gives the gamepad back to the game. Every Polestar window you open (the guide menu with Lookup and Dungeons, the options, the welcome, the route choice, the report and copy windows, the drop-down menus) answers the gamepad while it is open: the D-pad moves the focus (an accent ring), A selects, B closes or goes back, LB / RB change tabs or pages, left / right adjust a slider or a drop-down, Y puts a setting back to its default. A window that opens by itself (the welcome on a new character, the choice of where to level next) takes no button until you press the Browse the guide button, which its bar shows. A bar under the window lists the buttons no button on screen shows; B sits on the window's close button. The gamepad goes back to the game when the window closes or a fight starts, and returns after it. Turn the bar off, or the windows' navigation altogether, on the Gamepad page. Without a gamepad plugged in, none of it shows: everything works with the mouse and keyboard as before. ## Recorder `Polestar_Recorder` is an optional companion addon that records your sessions to improve the routes. It is off until you turn it on (`/psrec on`, or Options > Recorder > Start recording) and writes nothing while off. Recordings replace the Classic Era estimates with Forever facts (quest XP, NPC and object positions, trainers, flight paths and times), feed the Codex what only play shows (rares and treasures, drops and how often they fall, dungeon entrances and bosses), and `record report` turns them into per-step timings: passes, median and p75 time, XP per hour, time in combat, deaths and travel, then the slowest steps and detours, the steps to fix first. ## Slash commands `/polestar` (or `/pole`) shows or hides the guide window; settings live in `/polestar options`, grouped by what you came to do: Guide, Appearance, Map, Questing, Discovery, Quality of Life, Integrations (settings for other addons Polestar works with, such as the community quest database, shown while they are installed), Guide packs, Gamepad, Recorder and About, with a search that finds any setting. With the game's gamepad interface on (Options, Gamepad, Enable Gamepad UI) there are no slash commands: the game blocks gamepad actions after any addon command typed in chat, until the game freezes. Polestar's minimap button (on by default then) and its key bindings open the guide and the settings instead, and Polestar keeps out of the game's own windows. ### Every slash command | Command | What it does | |---|---| | `help` | List every command | | `show`, `hide` | Show or hide the guide window | | `guides` | Open the hub on Guides | | `options [page]` | Open the settings, optionally on a page | | `next`, `prev` | Look at the next or previous step (nothing is skipped) | | `skip` | Skip the step shown, for good (the window offers Undo) | | `status` | Current guide and step | | `guide ` | Switch to a guide by id | | `tabs`, `tab `, `close` | List, switch and close guide tabs | | `path` | Choose where to level next, where a guide offers a choice of route | | `route` | Show the travel route to the current target | | `way [label]` | Point the arrow at x y on your current map (no argument clears it) | | `arrow show\|hide\|reset` | The waypoint arrow (drag it to move it) | | `reset` | Clear ticks and skips for the current guide | | `xp` | XP per hour, time to level and level splits | | `gear [item link]` | Gear advice: the weights in use, or compare an item | | `instances [clear]` | Instance limits, runs and lockouts | | `dungeons [name]` | Open Dungeons, or a dungeon's page | | `lookup [search]` | Open Lookup, optionally searching | | `mount` | Look up the mount of your target (or mouseover) and how to get it | | `rares [test]` | Open Rares, or show a sample rare alert | | `questdb` | Quest database status | | `packs` | Open Options > Community guides | | `gamepad` | Open Options > Gamepad: button names and key bindings | | `welcome` | Show the welcome again | | `where` | Print your map and position as guide lines (`zone map `, `goto x,y live`), in a box to copy | | `report` | Report a problem with the step on screen (the guide window's bug button) | | `discord` | The invite to the Polestar Discord, to copy | | `debug` | Toggle debug output | The Recorder has its own: `/psrec on | off | mark | clear` and a few more listed by `/psrec`. --- # Talent plans > Polestar's leveling talent plans for every class and spec: pick one, follow the marks on the talent frame, and get a reminder when a point waits. Page: https://polestar.guide/docs/players/talent-plans (Polestar docs > Players) Polestar has a leveling talent plan for every spec of every class in WoW: Forever: three per class, 27 in all, each an ordered list of picks from level 10 to 60 with short notes on why. A plan never spends a point for you. It shows you the next talent, and you spend it. ## Pick a plan Type `/polestar talents` to open your plan, or pick **Talents** on the hub's rail (`/polestar guides` opens the hub). Choose one of your class's three plans, or leave it on automatic: Polestar then follows the spec your gear advice uses, else the talent tree where you have spent the most points. The choice is kept for each character. ## On the talent frame With a plan chosen, the game's talent frame shows it: - **A ring** on the next talent in your plan while a point is unspent. - **Pick numbers**: where each talent comes in your plan's order (#1, #2, ...). - **A flag** on points the plan does not spend, so a misclick stands out. - **A line in each talent's tooltip**: where it comes in the plan, or that it is off the plan. When a point is waiting, a chat line names the plan's next talent. A plan is an order, not a schedule. The plans are written one point a level from 10, but Forever can hand out points sooner (a Legacy talent can grant them from level 5), so the levels in a plan's notes read "around level N", and the marks always follow the next pick whatever your level. Each plan was checked against Forever's own talent tree; if an update moves or renames a talent the plan uses, the Talents section says the plan is out of date and the frame shows no marks. ## Settings Under **Options, Questing, Talents** ([every option](https://polestar.guide/docs/reference/options#talents)): | Option | Default | What it does | |---|---|---| | Talent plans | On | Follow a talent plan for your class and spec | | Mark the talent frame | On | The ring on the next talent and the flag on points the plan does not spend | | Pick numbers | On | Each talent's place in the plan's order | | Plan in tooltips | On | The plan's line in each talent's tooltip | | Remind me of unspent points | On | The chat line naming the next talent when a point is waiting | ## Every class's plans Each class page lists its three plans pick by pick, with their notes, beside the class quests and the class steps on the leveling routes. | Class | Plans | |---|---| | [Warrior](https://polestar.guide/guides/class/warrior) | Arms, Fury, Protection | | [Paladin](https://polestar.guide/guides/class/paladin) | Holy, Protection, Retribution | | [Hunter](https://polestar.guide/guides/class/hunter) | Beast Mastery, Marksmanship, Survival | | [Rogue](https://polestar.guide/guides/class/rogue) | Assassination, Combat, Subtlety | | [Priest](https://polestar.guide/guides/class/priest) | Discipline, Holy, Shadow | | [Shaman](https://polestar.guide/guides/class/shaman) | Elemental, Enhancement, Restoration | | [Mage](https://polestar.guide/guides/class/mage) | Arcane, Fire, Frost | | [Warlock](https://polestar.guide/guides/class/warlock) | Affliction, Demonology, Destruction | | [Druid](https://polestar.guide/guides/class/druid) | Balance, Feral Combat, Restoration | ## Where the plans come from The Paladin plans are adapted from a community talent site's leveling builds. The Warrior and Rogue plans adapt that site's builds up to level 30, and the Druid and Warlock plans follow them to level 30 and are Polestar's own after. The Hunter's Beast Mastery and Marksmanship plans follow the site's builds to level 20; Survival, and the Mage, Priest and Shaman plans, are written for Polestar, with the site used only as a reference for Forever's new and changed talents. Every note is Polestar's own wording. [Credits & data sources](https://polestar.guide/docs/reference/credits) names the site. --- # How the routes are made > A simulator plays millions of complete 1-60 routes for every start and keeps the fastest; the guides are written from it. Page: https://polestar.guide/docs/players/how-routes-are-made (Polestar docs > Players) *(Diagram: How the routes are made, https://github.com/fitzforge/polestar/blob/next/docs/media/diagrams/players-how-routes-are-made.svg)* 1. **World model.** Every quest the faction can do, with its level, prerequisites, givers and enders, and the work its objectives take: kills at the mob's spawn clusters, item drops at their recorded rates, objects, escorts. Dungeon, raid, PvP and elite quests are filtered out, so a route is something one player can do alone. 2. **Search.** For each start (Orc, Tauren, Undead and Skyborne for the Horde; Human, Dwarf, Night Elf and Skyborne for the Alliance), randomised greedy construction, local search and simulated annealing evaluate millions of complete 1-60 routes, restarting until the best route stops improving or a cap on evaluated routes is reached. 3. **Route rules.** When routes are compared, grinding counts 2.5 times and every move into another zone counts 7.5 minutes, so a route takes a hub's quests, does them in one loop and moves on rather than chasing a few experience points across the map. Reported hours stay real. 4. **Consensus.** Each start keeps its own route to level 12 (the starting zone guides); from there one shared route per faction is searched, so the guides join into one chain. 5. **Guides.** The consensus route is exported as skeleton guides, one per zone visit, and the guides are written from them by hand. They drop side trips for one or two small quests behind a flight, boat, hearth or long ride; where that leaves the level short, a step names a camp to grind at (with an optional dungeon for the long ones). The finished guides are scored under the same model, next to the best route found. ## The numbers Hours to 60, solo, under the model. The routes were searched four times, independently: the first search is the one the guides were written from; each later one used another random seed, more routes and newer data. Each search is scored on its own world. The guides are scored on the world of the data this release ships with (`5eef72140b61`), beside those of the first release. The guides are scored on what they require. Their optional extras (quests started by rare drops such as the OOX beacons, the Green Hills of Stranglethorn pages, profession and bag quests, rares) are left out, because most players will not get them; the last column counts them as done, which is how these hours were published before 0.2.4 (issue [#30](https://github.com/fitzforge/polestar/issues/30)). | Start | Search 1: best / consensus | Search 2 | Search 3 | Search 4 | Guides 0.2.4 (grinding) | Guides 0.1.0 (grinding) | Guides 0.2.4 with every optional extra | |---|---:|---:|---:|---:|---:|---:|---:| | Orc | 119.4 / 120.5 | 120.7 / 117.8 | 117.7 / 116.8 | 119.6 / 117.3 | 131.1 (34.2) | 128.5 (29.7) | 122.8 | | Tauren | 120.4 / 120.2 | 119.1 / 117.4 | 118.3 / 116.5 | 117.1 / 116.8 | 130.1 (34.2) | 127.8 (29.1) | 121.9 | | Undead | 120.8 / 120.6 | 119.0 / 118.1 | 119.3 / 117.0 | 118.8 / 117.4 | 131.5 (33.8) | 128.9 (29.1) | 123.3 | | Skyborne (Horde) | 120.2 / 120.1 | 117.3 / 117.3 | 116.3 / 116.3 | 116.8 / 116.8 | 130.1 (32.8) | 128.3 (28.2) | 122.3 | | Human | 119.6 / 119.1 | 120.7 / 118.8 | 119.2 / 116.8 | 119.3 / 118.9 | 132.5 (37.0) | 132.1 (35.5) | 127.5 | | Dwarf | 119.5 / 119.5 | 120.8 / 118.8 | 117.4 / 117.3 | 119.8 / 118.8 | 133.1 (36.9) | 132.6 (35.5) | 128.2 | | Night Elf | 120.0 / 119.5 | 120.9 / 118.9 | 119.0 / 117.5 | 119.1 / 119.1 | 133.0 (37.1) | 132.6 (35.6) | 128.1 | | Skyborne (Alliance) | 121.2 / 119.6 | 118.6 / 118.6 | 118.2 / 117.3 | 119.0 / 118.4 | 133.5 (36.2) | 132.5 (34.5) | 129.0 | So a Horde character following the guides should expect about 130-132 h, an Alliance one about 132-134 h; doing the optional extras as they come can save up to about 8 h (Horde) and 5 h (Alliance). With every optional extra counted, the guides of 0.2.4 and 0.1.0 are within 0.6 h (Horde) and the Alliance guides of 0.2.4 are 0.8-1.6 h faster; counting only what each requires, 0.1.0 comes out 1.8-2.6 h faster for the Horde because the later guides marked more of their quests optional. *(Image: Chart: hours to 60 and hours of grinding per start, for what the guides require. The guides of 0.2.4 reach 60 in about 130 to 132 hours for the Horde and 132 to 134 for the Alliance; those of 0.1.0 in about 128 to 129 and 132 to 133. The guides of 0.2.4 grind about 33 to 34 hours for the Horde and 36 to 37 for the Alliance.)* *(Image: Chart: level against hours played for each faction, for what the guides require: the guides of 0.2.4 and those of 0.1.0 as curves, with a strip showing the hours the guides of 0.2.4 are ahead of (or behind) those of 0.1.0 at each level.)* The charts show only the guides: the searches' best and consensus routes were searched on earlier worlds, and a chart draws only numbers from one world. **How close to the best?** Nobody can prove a route is the best one possible, so the claim is narrower and checked: - **The searches land in the same place.** Four independent searches (3.5 to 30 million complete routes per start) find routes within 116.3-121.2 h to 60, and their consensus routes within 116.3-120.6 h. The top of the search space is flat: many different routes finish within about 2% of each other, and most searches were still finding small improvements when they reached their cap on routes, so later searches keep shaving minutes, not hours. - **The winners hold up when the model is wrong.** Re-scored under 2000 random draws of the model's parameters, the best route found stays within 1% of each draw's best in 76-100% of draws (fourth search), and no route wins every draw: "best found" names one of several near-equal routes. - **The guides trade hours for a smooth, safe run.** For what they require they take 13.3-14.1 h (Horde) and 13.6-15.1 h (Alliance) longer than the fourth search's consensus (scored on its own world). Almost all of that is grinding the guides choose: side trips for one or two small quests behind a flight, boat or hearth are left out, and quests that need a group, a rare drop or a level the route has not reached are optional or gone, so the guides grind about 33-34 h (Horde) and 36-37 h (Alliance) where the searched routes grind under 1 h and about 8 h. The Alliance mid-40s have few solo quests left once those trips are gone. - **Dungeons do not beat questing solo** under the model: searched with dungeons allowed (Orc, Tauren, Undead), no dungeon route came out ahead. > **Important:** > The hours are **model estimates in /played hours**, not measurements. No > recorded play exists yet, so time parameters such as kill time and travel > detours keep their priors, and Forever's 30-60 content is not in the data. > Comparisons between routes are what the numbers support; absolute hours > are not. Recordings from the Recorder are what will calibrate kill time > (`sim calibrate`); travel detours keep their priors even then. The whole method, every parameter and its known limitations are in [docs/SIMULATION.md](https://polestar.guide/docs/contributors/simulation). --- # Community guides > Guides written by other players: install one, find its guides, turn it on or off, and know who to ask. Page: https://polestar.guide/docs/players/community-guides (Polestar docs > Players) Guides for Polestar written by other players and published as their own addons. Install one next to Polestar and its guides show up in the guide menu, with the arrow, the map markers and everything else Polestar does. **I want to play them** Install a community addon, find its guides, turn it on or off, and know who to ask when something is wrong. **[I want to write my own](https://polestar.guide/docs/authors/community-guides)** Write guides in plain text, check them with Polestar's tools and publish them as your own addon. *(Image: The guide menu: under the Community guides heading, Joe's Routes is selected and lists four Alliance leveling guides; Westfall's details read By Joe, Joe's Routes 1.2.0, CC-BY-4.0, Written from my own play)* ## At a glance | | Polestar's own guides | Community guides | |---|---|---| | **Written by** | Polestar | the addon's author | | **Tested by Polestar** | yes | no: Polestar does not test or vouch for them | | **How you get them** | they come with Polestar | a separate addon you install yourself | | **Where they show** | the guide menu's categories (Leveling, Professions…) | the guide menu, under **Community guides** | | **Where to report a problem** | the [Polestar Discord](https://discord.gg/polestar) or GitHub | the addon's author, where they publish it | A community addon only adds guides: it never replaces Polestar's own or another community addon's. Polestar does not ship, host or recommend any; you only see one if you install it yourself. ## Install one 1. **Install Polestar first.** A community addon does nothing without it. 2. **Download the community addon** from wherever its author publishes it: CurseForge, Wago or the author's own site. Its page there should say that it needs Polestar. 3. **Install it like any addon**: with your addon app, or by unzipping it into the game's `Interface/AddOns` folder, next to the `Polestar` folders. 4. **Restart the game.** > **Tip:** > After the first install, `/reload` is enough to pick up an update. ## Find its guides Open the guide menu (`/polestar guides`). Below Polestar's own categories is the **Community guides** heading, with one entry per community addon: its title and its author. Every guide's details say who wrote it: "By <author> · <title> <version> · <license>". ## Turn one on or off **Options > Community guides** (`/polestar packs`) lists every community addon you have installed, with its author, version, license and website. *(Image: Options, Community guides: Polestar Guides and Joe's Routes switched on, Ann's Dungeons with 2 problems and its report, Kim's Quests turned off in the AddOns list, Sam's Professions not loaded)* - **The switch** on a row shows or hides its guides at once, without a reload. - **Suggest guides from** picks where the guide for your level is suggested from. It is Polestar's own guides unless you choose a community addon; Polestar's guides still fill in wherever that addon has nothing for your character. - **To remove one for good**, delete its folder or uninstall it in your addon app. ## When something is wrong Report wrong steps and other problems in a community addon to **its author**, not to Polestar. The author wrote those guides and is the one who can fix them. - When a community addon has problems, its row on the Community guides page says how many. **Show** lists them; **Copy report** copies them, with the versions, ready to send. - When it cannot run at all, its row says why (for example, turned off in the AddOns list, or made for a newer Polestar). - The row shows the author's website when they gave one. > **Warning:** > A community addon is an addon like any other, and the game runs it like > any other. Install community addons only from authors you trust, and only > from the place the author publishes them. ### Telling a community addon from Polestar's own in the AddOns list In the game's AddOns list, Polestar has one entry in the Quests category. Open it and you see Polestar's own addons and your community addons side by side. - **Polestar's own addons** are Polestar Guides and the addons that carry Polestar's data (Polestar Quest Database, Polestar Item Data, Polestar Codex), plus Polestar Recorder for guide authors. Each lists Polestar as its author. - **A community addon** built with Polestar's tools is titled "Polestar Community:" and its own name, such as "Polestar Community: Emberway Routes". Point at it and the tooltip shows its version and a line such as "Community addon for Polestar by Ashka", unless its author wrote their own. - One built before Polestar used that name reads "Polestar Pack:" until its author rebuilds it. Polestar reads both. ### Can I use several at once? Yes. Each one gets its own entry under Community guides, and you can open guides from different addons in different tabs. --- # Import strings > A small guide shared as one line of text: paste it into Import and it joins your guide menu. Page: https://polestar.guide/docs/players/import-strings (Polestar docs > Players) A small guide, such as a quest chain, an item, a mount or an errand, can come as an **import string** instead of an addon: one line of text its author shares on Discord, GitHub or a forum. Nothing to install. 1. Open **Import** at the foot of the hub's left rail, just above Options (`/polestar import`). 2. Paste the string into the box. Polestar reads it and shows what it holds before anything is saved: "Cozy Sleeping Bag · by Yendi · 14 steps · levels 30–40 · Alliance and Horde · CC-BY-4.0". 3. Press **Import**. The guide is in the guide menu under **Community guides**, in the entry **Imported**, credited to its author: "By Yendi · Imported · CC-BY-4.0". It stays imported on every character of your account. - **To update it**, paste the newer string: the button reads **Update**, and your progress stays where the guide's steps did not change. - **To remove it**, press **Delete** on its row under **Your imported guides** (twice: the second click confirms). - A string Polestar cannot read, one that is too big, or one holding a guide Polestar refuses is turned down with the reason, and nothing is saved. - Polestar never suggests an imported guide on its own: you pick it. An import string is data, never code: Polestar reads the guide out of it field by field and runs nothing in it, so it cannot do anything a guide cannot. As with a community addon, Polestar does not test or vouch for the guide; report its problems to its author. --- # Polestar Client > A small desktop app that installs Polestar's addons and community guides and keeps them up to date. Version 0.1.0, in beta. Page: https://polestar.guide/docs/players/client (Polestar docs > Players) Polestar Client is a small desktop app for Windows, macOS and Linux. It installs Polestar's addons and community guides and keeps them up to date. The current version is `0.1.0`, a beta: [download it](https://polestar.guide/docs/players/client#downloads) below, or see the overview, with screenshots, at [Polestar Client](https://polestar.guide/client). > **Note:** > **You don't need it.** Polestar works without the client. Install it from the > CurseForge app or a release zip, and download community guides as a zip, as > [Install and first run](https://polestar.guide/docs/players/quick-start) and > [Community guides](https://polestar.guide/docs/players/community-guides) describe. ## What it does - **Keeps Polestar up to date.** It installs and updates Polestar, Polestar Recorder and LibForeverData from their GitHub releases. Every download is checked against its published checksum, and your other addons are never touched. - **Community guides in one click.** On a community guide's page on polestar.guide, choose **Download guide**, then **Install with Polestar Client**. The client opens with a confirm sheet; there is no account. Its Community Guides page installs, updates and removes them. - **Automatic guide updates, if you want them.** They are off by default and take routine updates only, a day after release. A new publisher or new folders always asks first. - **Careful with your AddOns folder.** Every guide list is signature-checked, and only guide files go into AddOns. If polestar.guide pulls a guide, the client turns it off or removes it and shows you why. - **Recording, opt-in.** Choose **Start sharing** in the client and it uploads what the Polestar Recorder addon logs (quests, kills, NPC positions) to help build better routes. Character names are stripped and chat is never sent. The **What we send** page shows all of it. Recording starts with the next Polestar update. - **Looks after itself.** It updates itself with signed updates, and lives in the tray with a small window. No account, no login. It works with World of Warcraft: Forever only. ## Downloads Version `0.1.0`, from the [release on GitHub](https://github.com/fitzforge/polestar/releases/tag/client-v0.1.0), which has the release notes: | System | Download | |---|---| | Windows (x64 and Arm) | [Installer, `.msi`](https://github.com/fitzforge/polestar/releases/download/client-v0.1.0/Polestar.Client_0.1.0_x64_en-US.msi) (on Windows on Arm it runs through Windows' x64 emulation) | | macOS (Apple silicon and Intel) | [Disk image, `.dmg`](https://github.com/fitzforge/polestar/releases/download/client-v0.1.0/Polestar.Client_0.1.0_universal.dmg) | | Linux (x64) | [AppImage](https://github.com/fitzforge/polestar/releases/download/client-v0.1.0/Polestar.Client_0.1.0_amd64.AppImage) or [Debian package, `.deb`](https://github.com/fitzforge/polestar/releases/download/client-v0.1.0/Polestar.Client_0.1.0_amd64.deb) | | Linux (Arm) | [AppImage](https://github.com/fitzforge/polestar/releases/download/client-v0.1.0/Polestar.Client_0.1.0_aarch64.AppImage) or [Debian package, `.deb`](https://github.com/fitzforge/polestar/releases/download/client-v0.1.0/Polestar.Client_0.1.0_arm64.deb) | The macOS app is signed and notarized by Apple. > **Warning:** > **Windows builds aren't code-signed yet.** SmartScreen says the publisher is > unknown: choose **More info**, then **Run anyway**. --- # FAQ > Short answers to the questions players ask most, each with the page that tells the rest. Page: https://polestar.guide/docs/players/faq (Polestar docs > Players) ## Getting started ### Is Polestar free? Yes. Polestar is free and open source, under the GPL-3.0 license, and every guide comes with it. Install it from the CurseForge app or from a release on GitHub: see [Install and first run](https://polestar.guide/docs/players/quick-start). ### I installed it, but nothing shows in the game. Restart the game completely: a `/reload` does not load a newly installed addon. Check that the `Polestar` folders sit directly inside the game's `Interface/AddOns` folder, not in a folder of their own inside it. ### How do I update? In the CurseForge app, update it like any other addon. With a release zip, delete the old Polestar folders, then unzip the new release the same way you installed it. ### Which languages does it speak? Its interface and its guides read in English, German, French, Spanish (Spain and Latin America), Brazilian Portuguese, Russian, Korean and Chinese (simplified and traditional). ## Playing ### Where are all the guides and settings? `/polestar guides` opens the hub: every guide, Lookup, Dungeons and Rares. `/polestar options` holds every setting. `/polestar skip` moves on for good; `/polestar next` and `prev` only look ahead or back. ### Why are there no quest markers on my map? They are off until you turn them on, under **Map** in the options. ### How much memory does it use? The arrow's walking routes load after login, never in combat: about 34 MB for the walking maps, and while a walk is being searched up to about 45 MB more, released when the search ends. With **Walk real paths** (Options, Arrow & routes) off they never load. The details are in [Install and first run](https://polestar.guide/docs/players/quick-start). ### Has every guide been played through? Polestar is in beta. Every guide compiles, lints and plays to the end in a simulator for every race and class it serves, and the routes are found by simulation: see [How the routes are made](https://polestar.guide/docs/players/how-routes-are-made). ## Community guides ### What is a community guide? A guide for Polestar written by another player and published as its own addon. Install one beside Polestar and its guides show up in the guide menu under **Community guides**, with the arrow and everything else Polestar does. Polestar does not ship, host or recommend any: see [Community guides](https://polestar.guide/docs/players/community-guides). ### Can I use several community guides at once? Yes. Each gets its own entry under Community guides, and you can open guides from different ones in different tabs. **Options > Community guides** turns each one on or off without a reload. ### Is an import string safe? An import string is data, never code: Polestar reads the guide out of it field by field and runs nothing in it. As with any community guide, Polestar does not test or vouch for it: see [Import strings](https://polestar.guide/docs/players/import-strings). ### A community guide has a wrong step. Who do I tell? Its author, where they publish it. They wrote the guide and are the one who can fix it. Its row under **Options > Community guides** can copy a report of its problems, with the versions, ready to send. ### A community guide looks harmful, offensive or broken. What can I do? Open it on polestar.guide and use **Report this guide** under the download button (you need to be signed in). Reports go to Polestar's moderators, who can hide the guide or pull it from every player's Polestar Client. ### A community guide copies my work. How do I get it taken down? Send a copyright notice with the [copyright form](https://polestar.guide/legal/copyright/report). You don't need an account: you confirm it from your email, and a moderator reviews it. If it holds up, the guide is taken off polestar.guide and removed from players' Polestar Clients. The author is told who made the claim (your name and organization, never your contact details) and may send a counter-notice. The whole process is on [Copyright & takedowns](https://polestar.guide/legal/copyright). ## Helping out ### How do I report a wrong step in Polestar's own guides? Click the bug in the guide window, beside Skip, say what went wrong and copy the report: it already holds the step, where you stand and the versions. Paste it on the [Polestar Discord](https://discord.gg/polestar), or open an [issue](https://github.com/fitzforge/polestar/issues). ### Can I help improve the routes? Yes. `Polestar_Recorder`, a separate zip in each release, records your sessions to improve the routes; it does nothing until you turn it on. There is more you can do in [Contributing](https://polestar.guide/docs/contributors/contributing). --- # Using Polestar with AI assistants > Give ChatGPT, Claude, Copilot or a coding agent Polestar's own docs, so it answers from them instead of from memory. Page: https://polestar.guide/docs/players/ai-assistants (Polestar docs > Players) An AI assistant asked about Polestar answers from what it remembers, and it remembers little about Polestar and about WoW: Forever, whose quests differ from Classic's. Give it Polestar's docs and it answers from them instead. Every docs page and guide on polestar.guide has a plain Markdown copy made for this. ## For players - **Paste the index.** Give your assistant [polestar.guide/llms.txt](https://polestar.guide/llms.txt) with your question. It says what Polestar is, how to install it and its main commands, and links every docs page and guide. - **Paste one page.** Add `.md` to a docs page's address, as in [polestar.guide/docs/players/faq.md](https://polestar.guide/docs/players/faq.md). At the top of every docs page, **View as Markdown** opens that copy and **Copy as Markdown** copies it. - **Give it everything.** [polestar.guide/llms-full.txt](https://polestar.guide/llms-full.txt) holds the docs for players and guide authors in one file, for an assistant that reads long files or a project's knowledge files. - **Ask about a guide.** The guide pages have Markdown copies too: a faction's road from every start to 60 ([Alliance](https://polestar.guide/guides/alliance.md), [Horde](https://polestar.guide/guides/horde.md)), a class's talent plans and class quests ([Warrior](https://polestar.guide/guides/class/warrior.md)), or a zone's guide with its steps in order. Ask "which guide should my level 20 Orc play?" with the Horde road. A prompt that works: ```text title="Prompt" Read https://polestar.guide/llms.txt and the pages it links that you need. Answer from them only, and name the pages you used. My question: how do I turn on quest markers on the map? ``` An assistant can still be wrong. Check its answer on the page it names, and report a wrong step from the game (the bug in the guide window, beside Skip), not from what an assistant says. ## For guide authors - **Point a coding agent at the format.** The [authors' overview](https://polestar.guide/docs/authors.md), the [guide format](https://polestar.guide/docs/authors/guide-format.md) and the [guide format reference](https://polestar.guide/docs/reference/guide-lines.md) are what it needs to write a `.guide` file; the [command line](https://polestar.guide/docs/reference/cli.md) lists every `polestar` command. - **Work in a pack folder.** `polestar new` writes `AGENTS.md` and the polestar-guide-pack skill into the pack, so an agent started there already follows Polestar's workflow: see [Writing guides with an AI agent](https://polestar.guide/docs/authors/agent-workflow) and the handbook's [With an AI assistant](https://polestar.guide/docs/authors/handbook#with-an-ai-assistant). - **Ids are guesses until the tools agree.** An assistant's quest ids, NPC ids, place names and coordinates are guesses until `polestar find`, `lint` and `playtest` confirm them. --- # Overview > Write leveling guides in plain text, test them in the playground and publish them as your own community addon. Page: https://polestar.guide/docs/authors (Polestar docs > Guide authors) Anyone can write guides for Polestar and publish them as their own addon, with the tools Polestar uses for its own: the guide format, the compiler, `lint`, `playtest`, and in the game the guide engine, the arrow and the map markers. Hand over to any of Polestar's guides with `next`, so your guides can cover one zone or the whole climb, under a license of your choice. ## A guide is plain text Each guide is a `.guide` file: a header, then steps, each with its goals. The compiler fills in names, titles and coordinates from the reference data, so a line can be as short as `accept 783`. Try it: edit the guide, and the guide window shows the step as a player sees it. To start a community guide of your own: ```sh title="Terminal" git clone https://github.com/fitzforge/polestar.git cd polestar npm link # puts `polestar` on your PATH; no npm dependencies polestar data build # the reference data every guide command reads polestar doctor # checks the setup and prints the fix for anything missing cd .. # your community guide goes beside the clone, not inside it polestar new my-pack # asks for the id, title, author and license cd my-pack polestar dev --play # lint and build on every save, with the browser playground ``` ## Publish on polestar.guide A community guide is a folder: `pack.json` at its top and one `.guide` file per route, with pictures in `.tga` or `.blp` if it has any. You publish its source, never a built addon or Lua: the site builds the addon with Polestar's own compiler. Sign in and turn on two-step sign-in in Account settings › Sign-in & security first: publishing needs it, so a stolen password alone can't send anything to players. Then open [New community guide](https://polestar.guide/studio/new) and follow its five steps: 1. **Id and title.** The id names the addon folder (`PolestarPack_`) and starts every route's id; pack.json's `"id"` must match it. You can change it until a version has gone out to players. 2. **How you publish.** Upload here, or publish from GitHub Actions (below). An upload takes the folder or a zip of it (at most 10 MB zipped, 40 MB unpacked, 500 files). The page checks it in your browser before anything is sent, so a missing `pack.json` or a route under the wrong id shows at once. 3. **Build report.** The compiler checks every step against the game data, as `polestar lint` does, in a few seconds. Errors stop the build: fix them and upload again, with the same version number. Warnings don't. The built zip then goes to VirusTotal's malware scanners, which can take a few minutes. 4. **Listing.** A summary, a description, tags and pictures for the guide's page. 5. **Visibility.** Public, unlisted, or a draft only you and your co-authors see. You can publish while the first version still waits for a moderator: the guide goes live with your choice by itself once it is approved. Everything saves as you go, so you can leave and finish later from [Your guides](https://polestar.guide/account/guides), which shows where each guide is: in review, scanning, public, unlisted or turned down (with the moderator's reason). For a new version, raise `"version"` in pack.json and upload again from the guide's **Versions** tab, or push a tag from GitHub Actions. ### What happens to each version - **Build and checks.** A version that doesn't build never reaches anyone. - **Malware scan.** A version is published only once its scan is clean. - **Review.** A moderator looks at a guide's first version from each author, and at any later version that comes with a new owner or installs different addon folders, usually within a day. You hear the outcome in your notifications and by email. Other updates go out on their own. - **Players.** Once published, players who download it from the site get it at once; the Polestar Client's automatic updates install it 24 hours later, so you have time to pull a bad version. - **An email for every upload.** The guide's owner (and whoever uploaded it) gets a mail naming the version, who uploaded it and how. If it wasn't you or your co-authors, its **This wasn't me** link pulls the version from every player's client, revokes the token that sent it and tells the moderators. Once a version has gone out to players, deleting the guide retires its id for good: nobody can publish a guide with it again, so its players never get someone else's updates. ### If your guide is reported Players can report a guide, and rights-holders can send a copyright notice about it. A moderator looks at each one. If a copyright notice holds up, the guide is taken down: it is hidden on polestar.guide, every version is removed from players' Polestar Clients, and you and your co-authors get an email with the claim and who made it. If you believe it was a mistake, send a counter-notice from the banner on the guide's page in the studio. It is forwarded to the claimant, and unless they tell us they have gone to court, the guide can be restored after 10 to 14 business days. The removed versions stay removed, so upload a new version once it is back. A takedown that stands counts against your account, and repeated infringement can close it. Details: [Copyright & takedowns](https://polestar.guide/legal/copyright). ## Publish from GitHub Actions If your guide lives in a GitHub repository, a workflow can publish each release for you: push a tag like `v1.2.0` and it uploads the guide folder with the same checks and build as an upload in the studio. polestar.guide never reads your repository; the workflow sends the source with a token for this one guide. 1. **Make a token.** In [Your guides](https://polestar.guide/account/guides), open the guide's **Publishing** tab (or pick **Publish from GitHub Actions** when you create it) and choose **Create a token for this guide**. It is shown once. A token can only upload new versions of that one guide: it can't change the listing, touch your other guides or your account. Only an owner of the guide can make one, from a session confirmed with two-step sign-in. It expires after 90 days unless you pick another time (a year at most), and every token goes when your password is reset. Account settings › Publish tokens lists yours, with their guide, expiry and last use, and revokes them. 2. **Add it to the repository** as a secret named `POLESTAR_TOKEN`: on GitHub, **Settings → Secrets and variables → Actions → New repository secret**. 3. **Add the workflow** as `.github/workflows/polestar.yml`. The Publishing tab has it with your guide's id filled in; for a guide with the id `my-guide` it is: ```yaml title=".github/workflows/polestar.yml" # Publishes a new version of "My Guide" to polestar.guide when you push a tag like v1.2.0: # git tag -a v1.2.0 -m "What changed in this version" # git push origin v1.2.0 # The tag must match "version" in pack.json; the tag's message becomes the release notes. # Needs the repository secret POLESTAR_TOKEN: this guide's publish token, made in the studio # (Your guides > my-guide > Publishing). name: Publish to Polestar on: push: tags: ['v*'] permissions: contents: read concurrency: group: polestar-publish defaults: run: shell: bash env: POLESTAR_URL: https://polestar.guide/api/packs/my-guide/versions # The folder with pack.json at its top, from the repository's root. GUIDE_DIR: . jobs: publish: runs-on: ubuntu-latest timeout-minutes: 20 steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Read the release notes from the tag run: | git fetch --no-tags --depth=1 origin "+refs/tags/$GITHUB_REF_NAME:refs/tags/$GITHUB_REF_NAME" git for-each-ref --format='%(if:equals=tag)%(objecttype)%(then)%(contents:subject)%0a%0a%(contents:body)%(end)' "refs/tags/$GITHUB_REF_NAME" | head -c 5000 > "$RUNNER_TEMP/notes.txt" - name: Zip the guide folder working-directory: ${{ env.GUIDE_DIR }} run: | zip -q -r -D "$RUNNER_TEMP/guide.zip" . \ -i 'pack.json' 'legs.json' 'retired.json' 'LICENSE*' 'README*' '*.guide' '*.tga' '*.blp' \ -x 'dist/*' 'drafts/*' 'node_modules/*' '.*' '*/.*' unzip -l "$RUNNER_TEMP/guide.zip" - name: Upload to Polestar env: POLESTAR_TOKEN: ${{ secrets.POLESTAR_TOKEN }} run: | curl --fail-with-body --silent --show-error \ -H "Authorization: Bearer $POLESTAR_TOKEN" \ -F "files=@$RUNNER_TEMP/guide.zip" \ -F "version=${GITHUB_REF_NAME#v}" \ -F "changelog=<$RUNNER_TEMP/notes.txt" \ "$POLESTAR_URL" echo - name: Wait for the build env: POLESTAR_TOKEN: ${{ secrets.POLESTAR_TOKEN }} run: | for i in $(seq 60); do build=$(curl --fail-with-body --silent --show-error --retry 6 --retry-delay 10 -H "Authorization: Bearer $POLESTAR_TOKEN" "$POLESTAR_URL/${GITHUB_REF_NAME#v}") case "$(jq -r .status <<<"$build")" in ready) echo "Built. It is published once its malware scan is clean (and a moderator has reviewed a first version)."; exit 0 ;; failed) jq . <<<"$build"; exit 1 ;; esac sleep 10 done echo "::notice::Still building after 10 minutes: see the guide's Versions tab in the studio." ``` 4. **Tag a release.** Raise `"version"` in pack.json, commit, then tag that version; the tag's message becomes the release notes: ```sh title="Terminal" git tag -a v1.2.0 -m "What changed in this version" git push origin v1.2.0 ``` - **The tag must match pack.json.** `v1.2.0` uploads only a pack.json that says `"version": "1.2.0"`; anything else is refused. - **Only the source goes up:** `pack.json`, `legs.json` and `retired.json`, `LICENSE` and `README`, every `.guide` file and `.tga` or `.blp` picture, never `dist/`, `drafts/` or hidden folders. If pack.json isn't at the top of the repository, set `GUIDE_DIR` to its folder. - **A refused upload fails the run**, with the reasons (file, line, message, hint) in its log, and so does a failed build; the run waits for the build and passes once it is ready. A version that would drop route ids players follow is refused too: upload that one from the studio, which asks you to confirm. - The workflow uses only `actions/checkout`, pinned by commit, and `curl`. An account can publish at most 30 uploads an hour. ## Where to go next | Page | What it answers | |---|---| | [Writing a community guide](https://polestar.guide/docs/authors/community-guides) | What you get, the steps from your first guide to publishing, and the checklist before you do | | [Handbook](https://polestar.guide/docs/authors/handbook) | Setup on each system, a first community guide in 15 minutes, testing, publishing and updating, every problem and its fix | | [Guide format cheatsheet](https://polestar.guide/docs/authors/cheatsheet) | Every header line, goal and condition on one page, each with a short example | | [Guide format](https://polestar.guide/docs/authors/guide-format) | The `.guide` language in full, what the compiler fills in, validation and a cookbook | | [Community guide format](https://polestar.guide/docs/authors/community-guide-format) | `pack.json`, the addon the compiler writes, the rules Polestar enforces, import strings and versioning | | [Translating](https://polestar.guide/docs/authors/translating) | The locale files, the glossary and the `i18n` commands | | [Writing guides with an AI agent](https://polestar.guide/docs/authors/agent-workflow) | The workflow an AI agent follows to write, fix and build a community guide's routes | > **Note:** > A community addon is made and supported by its author. Polestar does not > ship, host or recommend any, and players report problems in one to its > author. --- # Writing a community guide > What you get, what a pack looks like, the steps from your first guide to publishing, and the checklist before you do. Page: https://polestar.guide/docs/authors/community-guides (Polestar docs > Guide authors) ## What you get If you write leveling guides, you can use everything Polestar uses for its own: - **The guide format**: plain text `.guide` files. The compiler fills in quest titles, givers and coordinates from the reference data, so `accept 7` is a whole line. - **The checks**: `lint` checks every guide against the game's data, and `playtest` plays each one to the end in the real addon, without the game. - **In the game**: Polestar's guide engine, its waypoint arrow, its travel planner and its markers on the map. You publish the result as your own addon, under your name and a license of your choice. ## Quick start You need Node 24 or newer, and Lua 5.1 or LuaJIT for `play` and `playtest`. [PACKS.md, "Setup"](https://polestar.guide/docs/authors/handbook#setup) has the install command for each system. ```sh git clone https://github.com/fitzforge/polestar.git cd polestar npm link # puts `polestar` on your PATH polestar data build # the reference data every guide command reads polestar doctor # checks the setup and prints the fix for anything missing cd .. # your pack goes beside the clone, not inside it polestar new my-pack # asks for the id, title, author and licence cd my-pack polestar dev --play # lint and build on every save, with the browser playground ``` > **Tip:** > No Node or Lua on your machine? When your Polestar clone came from GitHub, > a pack made by `polestar new` carries a dev container: open the pack's > repository in GitHub Codespaces and everything is set up. `install` and > `dev` need the game, so use `play` and `playtest` there. ## What a pack looks like A community addon is built from a **pack**: a folder with a `pack.json` and your `.guide` files. ```text my-pack/ ├── pack.json your addon's id, title, author, version and licence ├── guides/ │ └── westfall.guide your guides, in any layout ├── LICENSE the licence you chose └── README.md for your players ``` ```json { "id": "joe-routes", "title": "Joe's Routes", "author": "Joe", "version": "1.2.0", "license": "CC-BY-4.0", "website": "https://github.com/joe/joe-routes" } ``` ```text guide joe-routes/northshire title Northshire Valley faction Alliance race Human levels 1-4 zone Elwynn Forest step Deputy Willem accept 783 turnin 783 accept 7 step Kobold camp kill 6 x10 quest 7.1 step Back to the abbey turnin 7 ``` The tools build the addon from these: the TOC, your credits, the compiled guides and the license files. Don't edit the built files: change the pack and build again. [PACK_FORMAT.md](https://polestar.guide/docs/authors/community-guide-format) describes every line of them. ## From first guide to published 1. **Start**: `polestar new my-pack` writes `pack.json`, an example guide that already passes every check, a README for your players and the `LICENSE` you chose. In a clone of the public repository it also writes a GitHub workflow that checks every push. 2. **Write**: `polestar find ` prints quest, NPC, object, item, inn and flight-point lines ready to paste. In the game, `/polestar where` prints where you stand as a guide line. 3. **Check**: `polestar lint` checks every guide against the game's data, and `polestar playtest` plays each one to the end, for each race that can reach it and each class it has steps for. 4. **Try**: `polestar play` opens the real addon in your browser with your pack loaded, and `polestar install` copies it into the game's AddOns folder (restart the game the first time). 5. **Build**: `polestar pack` writes `dist/-.zip`, byte for byte reproducible. 6. **Publish**: upload the zip as a new addon project on CurseForge, Wago or GitHub. On CurseForge and Wago, mark Polestar as a required dependency so addon apps install it too. With the template's workflow, a version tag on GitHub builds the zip and attaches it to a release. 7. **Update**: raise `version` in `pack.json`, run `polestar pack` again and upload the new zip. > **Note:** > An AI assistant can help you draft guides from your own material. > [PACKS.md, "With an AI assistant"](https://polestar.guide/docs/authors/handbook#with-an-ai-assistant) says > how, and why every id it writes needs checking. Every pack `new` writes > includes a skill for coding agents, polestar-guide-pack. ## Before you publish **The tools check these.** `lint` reports them, and `compile`, `install` and `pack` stop until they are fixed: - [ ] `pack.json` has an `id`, `title`, `author`, `version` and `license`. The id is 2 to 32 lower-case letters, digits or hyphens, and not one Polestar reserves. A title or an author name is at most 64 characters. - [ ] Every guide id starts with your pack id and a slash (`ashka-emberway/westfall`). - [ ] The addon folder is not named `Polestar` and does not start with `Polestar_`. By default it is `PolestarPack_` and your title (`PolestarPack_EmberwayRoutes`). - [ ] A `website`, when you give one, starts with `https://` or `http://`. - [ ] A `next` line hands over only to a guide that exists, is for the same faction, and that the characters of your guide can follow. `lint` also warns while `LICENSE` still holds the placeholder line `new` writes for a license it has no text for. **We ask these of you.** No tool checks them, but players need them to tell your addon apart and to reach you: - [ ] **A name of your own** that can't be mistaken for Polestar's addons. The tools put "Polestar Community:" before it in the AddOns list. Say on your addon page that it is a community addon for Polestar, and if you write your own `notes` line, keep that clear there too. - [ ] **Your name** as the author: the name players will look for. - [ ] **A version** you raise with every release. - [ ] **A website or support link** in `website`, so the Community guides page shows players where to report problems. Say the same on your addon page and in your README. - [ ] **A license of your choice.** Polestar's [LICENSE-EXCEPTION.md](https://polestar.guide/docs/reference/license-exception) lets you publish a community addon built by its compiler, including the reference data the compiler puts in it, under any terms you like. - [ ] **Your own guide text.** Don't copy text from Polestar's own guides: the license exception does not cover it. Handing over to one of Polestar's guides with `next` is fine, since that points to the guide rather than copying it. - [ ] **Support for it.** Players are told to report problems to the author, so answer them where you publish. ### How your addon shows in the AddOns list The TOC places your community addon under Polestar's entry in the Quests category, titled "Polestar Community: <your title>", with the line "Community addon for Polestar by <author>" unless you write your own `notes`. Polestar's own menus show your title as you wrote it. Community addons built before this name read "Polestar Pack:" until you rebuild them; Polestar reads both. ## Import strings A single small guide can go to players as one line of text instead of an addon: they paste it on Polestar's Import page (`/polestar import`). Use it for a quest chain, an item, a mount, an errand; a route or a set of guides is a community addon. | | Import string | Community addon | |---|---|---| | **For** | one small guide | a whole route or a set of guides | | **You run** | `polestar export ` | `polestar pack` | | **Players** | paste it on the Import page | install it, then restart the game | | **Updates** | raise the guide's `version` and share the new string: players press Update | raise `version` in `pack.json` and upload the new zip | | **Size** | one guide of at most 60 steps (and 50,000 characters) | no limit | ```sh polestar lint && polestar playtest # the same checks as for an addon polestar export guides/cozy-sleeping-bag.guide > cozy.txt ``` - The guide still lives in a pack: `export` finds the `pack.json` above the file, and the guide id starts with your pack id (`yendi/cozy-sleeping-bag`), so two authors' guides never collide. The string carries the guide and your pack's `license`; its author is the guide's `author`, else the pack's. - `export` lints the pack first and refuses a guide with errors (another guide's errors do not stop it). It prints only the string on stdout, so `> file.txt` keeps just that line. - A guide's `version` decides between Import and Update in the game: raise it when you share a new string. - A `next` or route choice may lead only to one of Polestar's guides or to a guide the player imported before; `export` names the guides to import first. Polestar refuses a string whose guide leads anywhere else. - A guide id under the id of a community addon the player has installed stays that addon's: the string is refused. - In `polestar play ` (and `polestar dev --play`), **Copy import string** beside the guide picker gives the string of the guide picked. The format of the string is in [PACK_FORMAT.md, "Import strings"](https://polestar.guide/docs/authors/community-guide-format#import-strings). Strings are covered by the same [license exception](https://polestar.guide/docs/reference/license-exception) as community addons. ## Where to go next | You want to… | Read | |---|---| | Write your first pack, step by step | [PACKS.md, "A first pack in 15 minutes"](https://polestar.guide/docs/authors/handbook#a-first-pack-in-15-minutes) | | Write guides by playing, from the simulator, by hand or with an AI assistant | [PACKS.md, "Four ways to write guides"](https://polestar.guide/docs/authors/handbook#four-ways-to-write-guides) | | Look up a guide line quickly | [GUIDE_CHEATSHEET.md](https://polestar.guide/docs/authors/cheatsheet) | | Read the whole guide format | [GUIDE_FORMAT.md](https://polestar.guide/docs/authors/guide-format) | | Fix a lint message or an in-game problem | [PACKS.md, "Lint messages"](https://polestar.guide/docs/authors/handbook#lint-messages) and ["In game: statuses and problems"](https://polestar.guide/docs/authors/handbook#in-game-statuses-and-problems) | | Update after a game patch | [PACKS.md, "Updating"](https://polestar.guide/docs/authors/handbook#updating) | | Know exactly what the tools write | [PACK_FORMAT.md](https://polestar.guide/docs/authors/community-guide-format) | Questions, or a community addon to show? Players and authors meet on the [Polestar Discord](https://discord.gg/polestar). --- # Handbook > The full handbook: setup on each system, a first pack in 15 minutes, testing, publishing, updating, and every problem with its fix. Page: https://polestar.guide/docs/authors/handbook (Polestar docs > Guide authors) A community addon is your own guides for Polestar, published as your own addon. Players install it next to Polestar, and its guides appear in Polestar's guide menu under **Community guides**, with your name on them. You write guides as plain text (`.guide` files, [GUIDE_FORMAT.md](https://polestar.guide/docs/authors/guide-format)), and Polestar's tools check them, play them to the end without the game, and build the addon. A community addon is built from a pack: a folder with a `pack.json` and `.guide` files. > **Tip:** > New here? [GUIDE_PACKS.md](https://polestar.guide/docs/players/community-guides) is the short version: what a > community addon is, the steps from `new` to publishing, and what we ask of > authors. This page is the full handbook; the exact files the tools write > are in [PACK_FORMAT.md](https://polestar.guide/docs/authors/community-guide-format). | On this page | | |---|---| | **Get going** | [Setup](https://polestar.guide/docs/authors/handbook#setup) · [A first pack in 15 minutes](https://polestar.guide/docs/authors/handbook#a-first-pack-in-15-minutes) | | **Write guides** | [By playing](https://polestar.guide/docs/authors/handbook#by-playing) · [From the simulator](https://polestar.guide/docs/authors/handbook#from-the-simulator) · [By hand](https://polestar.guide/docs/authors/handbook#by-hand) · [With an AI assistant](https://polestar.guide/docs/authors/handbook#with-an-ai-assistant) | | **Ship it** | [Testing](https://polestar.guide/docs/authors/handbook#testing) · [Publishing](https://polestar.guide/docs/authors/handbook#publishing) · [Updating](https://polestar.guide/docs/authors/handbook#updating) | | **Fix a problem** | [In game: statuses and problems](https://polestar.guide/docs/authors/handbook#in-game-statuses-and-problems) · [Lint messages](https://polestar.guide/docs/authors/handbook#lint-messages) | | **Reference** | [Where things are](https://polestar.guide/docs/authors/handbook#where-things-are) | ## Setup A pack lives in its own folder (usually its own git repository). The tools come from a clone of Polestar: ```sh git clone polestar cd polestar npm link # puts `polestar` on your PATH; the tools have no npm dependencies polestar doctor # checks everything below and prints the fix for each cd .. # back out: your pack gets its own folder beside the clone, not inside it ``` Without `npm link`, run `node /tools/polestar.js ` wherever this page says `polestar `. You need: | | Windows | macOS | Linux | |---|---|---|---| | Node 24 or newer (every command) | `winget install OpenJS.NodeJS.LTS`, then a new terminal | `brew install node` | your package manager, or `nvm install 24` | | Lua 5.1 or LuaJIT (`play`, `playtest`, `record import`) | `winget install DEVCOM.LuaJIT`, then a new terminal | `brew install luajit` | `sudo apt install lua5.1` (Debian, Ubuntu), `sudo pacman -S lua51` (Arch), `sudo dnf install luajit` (Fedora; or `sudo dnf install compat-lua`, then `export LUA=lua-5.1`) | | The reference data, `data/forever/` in the clone (every guide command) | `node tools/polestar.js data build` in the clone | same | same | | The game's AddOns folder (`install`, `dev`) | found automatically, or set `WOW_FOREVER_ADDONS`, or pass `--dest` | same | same (Wine, Proton, Lutris, Bottles and Faugus prefixes are searched) | `$LUA` picks a Lua interpreter when you have several. `polestar doctor` exits with code 1 when Node or the reference data is missing, since every command needs them. Without the reference data (the folder missing, or holding none of its core files) `lint`, `compile`, `dev`, `install`, `pack` and `play` stop before reading any guide, with one error naming the folder, and exit with code 1; `dev` then does not start watching. `playtest` stops too, with an error naming the missing files. A folder missing only some of the core files is a warning naming them, and the guides are checked. The reference data is what fills in quest titles, givers and coordinates. `data build` assembles it from the sources listed in Polestar's [THIRD_PARTY.md](https://polestar.guide/docs/reference/credits) (`polestar help data` names them); until Polestar ships the open data, it reads some of them from addons installed with your game. **Codespaces.** A pack made by `polestar new` from a Polestar clone whose origin is an http(s) or SSH URL carries `.devcontainer/devcontainer.json`: open the pack's repository in GitHub Codespaces and you get Node 24, Lua 5.1, the tools linked and the reference data built, with nothing to install. (`install` and `dev` need the game, so in a codespace use `play` and `playtest` instead.) ## A first pack in 15 minutes ```sh # in the folder that holds your Polestar clone, not inside the clone polestar new joes-routes # asks for the id, title, author and licence cd joes-routes polestar dev --play # lint and build on every save, with the playground ``` 1. **`polestar new [dir]`** asks for the pack id, title, author and license (or takes `--id`, `--title`, `--author`, `--license`; `--yes` accepts the defaults: the id from the folder name, the title from the id, the author from `git config user.name`, CC-BY-4.0). Without a terminal to ask in (a script, a CI job) it writes nothing and exits 1 unless all four or `--yes` are given. It refuses a folder that is not empty, and a folder holding only `.git` counts as not empty: run `new` first, then `git init` in the folder. It writes: - `pack.json` (the manifest, PACK_FORMAT.md) and `guides/example.guide`, a short guide that lints clean, plays to the end and hands over to one of Polestar's guides (it has no `author` line: a guide without one takes the pack's author); - `README.md` for players (install, credits) and for you (build, test); - `LICENSE` for the license you chose: for MIT the full text with your name and the year; for GPL-3.0-only your pack's title, `Copyright (c) ` and the short GPL notice, then the license text; for CC-BY-4.0 and CC0-1.0 the name and official address; for any other license a one-line reminder to paste its full text; - `.gitignore` (`dist/`, `drafts/`); - `.vscode/tasks.json`: lint as the default build task, so VS Code underlines the lines with problems, and playtest as a test task; - `AGENTS.md`, and `CLAUDE.md` pointing to it: how a coding agent works in the pack (below, "With an AI assistant"), and the polestar-guide-pack skill in `.agents/skills/` and `.claude/skills/`; - `.github/workflows/pack.yml` (lint and playtest on every push and pull request, with read-only access to your repository; on a version tag the same job builds the zip, and a second job, run only once that passes, attaches it to a GitHub release: the only job allowed to write) and `.devcontainer/` (Codespaces). Both clone Polestar and build its reference data with `polestar data build --no-web-xp --no-`: that skips the quest lookups on community web sites (Forever XP databases) and the web database cache (a fresh clone has none), but the build still clones the Era quest database and downloads the client tables from the game-table export. So they need the address of Polestar's public repository. `new` reads it from your clone's `git remote get-url origin` and writes it as https, quoted: an SSH address (`git@host:owner/repo.git`, `ssh://`) or an `http://` one becomes its https form, and any user name, password, query (`?…`) or fragment (`#…`) is dropped. With no origin, or one that is neither http(s) nor SSH (a local path, say), it leaves both out and says why. 2. **`polestar dev`** watches `pack.json` and the `.guide` files. On every save it lints (printing the problems) and, without errors, builds the pack into the game's AddOns folder (`--dest ` picks another; `--no-game` skips it). With `--play` it also starts the playground and reloads it on every build. In AddOns it never writes over a folder it did not build for this pack (the folder rule, below). 3. **`polestar play`** (or `dev --play`) runs the real Polestar against a simulated world, with your pack loaded after our guides, and prints the address to open in your browser: open the guide menu, find your pack under "Community guides", load a guide and play it with the side panel. Options > Community guides shows your pack's row and any problems. 4. **`polestar install`** inside the pack (or `polestar install ` from anywhere) builds it and installs it into the game, when you are not running `dev`. 5. **In game:** the first time, restart the game so the client sees the new addon; after that, `/reload` shows every change. Open the guide menu (`/polestar guides`) and pick your guide under "Community guides". ## Four ways to write guides [GUIDE_FORMAT.md](https://polestar.guide/docs/authors/guide-format) is the language, with a cookbook of examples; [GUIDE_CHEATSHEET.md](https://polestar.guide/docs/authors/cheatsheet) puts every line of it on one page. Whatever way you start, finish with lint and playtest (below). ### By playing Record your own play and turn it into a draft: ```sh polestar install --recorder # in the Polestar clone (not the pack): installs Polestar_Recorder with Polestar # in game: /psrec on, play the route, then log out polestar record import # copies the sessions out of SavedVariables polestar record list polestar record draft # writes drafts/---