Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
翻譯準備中
Leveling guides for World of Warcraft: Forever: an in-game guide addon with simulated 1-60 routes, a waypoint arrow and travel planner, plus the data pipeline and authoring toolchain.
翻譯準備中
正在載入完整 README。
檢視完整 README ↗Polestar-<version>.zip from the
newest release,
under Assets (not "Source code").Polestar, Polestar_Guides, Polestar_Codex, Polestar_Nav and the
others, with one Polestar_<language> folder per client language such as
Polestar_deDE) sit directly inside it:
World of Warcraft/_classic_beta_/Interface/AddOns/ on the beta client,
_forever_/Interface/AddOns/ on the _forever_ client. The same zip
works for both; if you have both clients installed, unzip into each one.
In the game's AddOns list they all sit under one "Polestar" heading,
which its arrow folds away./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, Talents
and Rares. /polestar options holds every setting; quest markers on the map
are off until you turn them on under Map. Right-click the minimap
button for a short menu./polestar skip moves on for good; /polestar next and prev only look
ahead or back.Polestar_Guides_deDE,
Polestar_Names_deDE kind (one of each per language): Polestar_deDE and
its siblings replace them, and Polestar reminds you at login while they are
still there.Polestar_Nav) load after login,
never in combat, and each continent's walking maps load when you get there.
Walk real paths (Options, Arrow & routes) off never loads them.Polestar_Recorder (Polestar_Recorder-<version>.zip in the
same release, or from the Polestar Client) records your play for the
recording program that improves the routes. With the Polestar Client it
records while sharing is on, which it is by default (one click in the
Client stops it, and /psrec off always wins); on its own it stays off
until you type /psrec on./polestar report
opens the window too, and issues
are welcome as well. The release's holds the zips' checksums.Polestar is one addon for the whole of WoW: Forever. It carries 256 guides: 61 leveling guides that take both factions from 1 to 60 from every race's starting zone (Zephras Isle for the Skyborne included), 82 class guides for every class's quest chains and class mounts, the twelve professions from 1 to 300, 27 reputations, 7 exploration guides, the Legacy challenges, 64 collectible guides (mounts and pets) and 2 miscellaneous guides. Every one of them can be read step by step on polestar.guide.
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, talent plans for every class and spec, gear advice on tooltips, quest rewards and bags, 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. Every race plays its own starting zone (to about level 12, the Skyborne to about 15), then all the Horde races share one route from the Barrens to 60 and all the Alliance races one from Westfall. Polestar Forge builds them from the game's data and Forever's quest data, elite and group quests included, writes the guides, and plays them the way a player follows them, refusing any step that can't be done as written. Every round of routes is read step by step, and a fix from a player's report becomes a permanent record the next build keeps (How the routes are made).
Players publish their own routes for Polestar as community guides on
polestar.guide, and the
Polestar Client installs them and keeps them
up to date (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).
0.3.0 is the current release and our biggest yet, built around a complete overhaul of the leveling routes (CHANGELOG.md lists every change):
[!NOTE] Beta. Every guide compiles, lints and plays to the end in a simulator for every race and class it serves, and the route checker plays every leveling guide to 60 the way a player follows it. Tell us what you find on Forever: every report becomes a fix the next build keeps. Forever's new 30-60 content (Riverglades, Shen'dralas, Mount Hyjal) is not in any data yet; the routes take it in at launch.
Polestar's own windows, drawn from the addon's layout: the same pictures polestar.guide shows. The world map, minimap and zone art in them is © Blizzard Entertainment.
Lookup, Dungeons and Rares read the Codex, a data pack that ships in the
release as Polestar_Codex (Lookup, Dungeons and
Rares). Renders of every window and state, drawn
without the game, are in docs/preview.
polestar.guide is Polestar's website: the guides, the community guides, the Polestar Client and the docs in one place.
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 under Community guides, with the arrow, the map markers and everything else Polestar does. Each is made and supported by its author.
Most are published on polestar.guide, which keeps them safe to play and fair to their authors:
Polestar folders./polestar guides) under Community guides./polestar packs) turns each one on or
off without a reload, and picks where the guide for your level is
suggested from.A community addon never replaces Polestar's guides or another one's. Report problems in it to its author, not to Polestar, and install them only from authors you trust.
A short guide shared as a single line of text (a quest chain, an item, a
mount, an errand) can be pasted on the Import page without installing
anything: /polestar import opens it, or follow the foot of the hub's left
rail above Options. Polestar shows what the guide is before saving it, says
why when it turns one down, offers Update for a newer version and keeps
your progress, and lists your imported guides with Delete. Imported guides
appear in the guide menu under Community guides > Imported, credited to
their author, and are never suggested on their own.
Write leveling guides in plain text and publish them as your 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 addon
can cover one zone or the whole climb, under a license of your choice
(Data and licensing).
git clone https://github.com/fitzforge/polestar.git
cd polestar
npm link # puts `polestar` on your PATH
cd rust && cargo build --release -p forge && cd .. # or a prebuilt forge from the Releases page
rust/target/release/forge 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 license
cd my-pack
polestar dev --play # lint and build on every save, with the browser playground
To publish, sign in on polestar.guide and start a new community guide: upload the folder, or publish from GitHub Actions by pushing a tag. You send the source, never a built addon: the site builds it, shows the build report, scans it and lists it. Writing a community guide on the site walks through every step.
| Start here | Then |
|---|---|
docs/GUIDE_PACKS.md: community guides on one page, for players and authors: install, the steps from new to publishing, the checklist before you publish | docs/PACKS.md: the full handbook, with setup on each system, a first pack in 15 minutes, and every problem and its fixdocs/GUIDE_CHEATSHEET.md: the guide format on one page (in full)docs/PACK_FORMAT.md: exactly what the tools write |
The Polestar Client is a small desktop app for Windows, macOS and Linux (beta, 0.1.0). It finds WoW: Forever on your computer and:
Download it from polestar.guide/client or the Client's GitHub release; its source is in apps/client.
/polestar way <x> <y> [label] points the arrow anywhere on the current
map./polestar near repair (trainer, a profession,
class, weapon, reagents, vendor, food, general, arrows, bullets, ranged,
innkeeper,
bank, mailbox, auction, flight, stable) points the arrow at the quickest one to
reach, naming a vendor's trade; the map's tracking menu and the guide
window's Nearby services button list them, the button with a page of
vendors (food and drink, general goods, and the ammunition and bows or guns your class
can use) and one of the weapons a weapon master can teach you. Once you get there,
the arrow is back on the guide./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").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 by Cillian Berragan (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).
Walk real paths (Options, Arrow & routes) turns it off. If you like it, try
his addon:
Shortest Path Forever on CurseForge
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.
Group play works only with party members who also run Polestar. On joining a party Polestar sends one small hidden hello; a member who answers is synced, and everything below but the chat line is about them. With friends who don't run Polestar nothing shows and nothing more is sent, apart from that line. Turn each part off under Options > Questing > Quests > Group; nothing of it runs solo or in a raid.
/polestar party
brings it back (and says why when nothing can show yet). Without a
Polestar member in the party it stays hidden./polestar gear import) and choose it under Stat weights
as "Custom: ". It replaces the built-in weights at every level. One
window lists your scales for every class: use, rename, export or delete
them, change their weights, and start one from a built-in spec./polestar alts): every character on the account with its
level, zone, guide, gold and an estimate of its rested XP.Lookup, Dungeons and Rares read the Codex, a data pack that ships in the
release as Polestar_Codex. Without it Lookup still searches the guides, and
each section says what is missing.
Quest item, target and Hearthstone buttons; a hearth step while your Hearthstone is on cooldown says how long until it is ready and points the arrow at the inn; XP per hour and time to level; the level the guide wants you to reach, marked on the game's XP bar; selling grays and repairing (optionally from the guild bank first); buying what a step of Polestar's own guides asks you to buy (a community guide's step names what to buy and leaves it to you); 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.
Polestar plays with a gamepad on Forever (ported from Ding! by Yendi,
@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.
Polestar_Recorder is an optional companion addon that records your play
for the recording program, to improve the routes. It records while sharing
is on in the Polestar Client (on by
default there, unless you stop it or type /psrec off); without the Client
it is off until you turn it on (/psrec on, or Options > Recorder), and it
writes nothing while off. It writes
compact chunks with no character, realm or account names, and records what
the guides need most: kill pace and kill XP, drops counted against what your
quests still needed, which quests each NPC offered you, trainer and vendor
lists, flight times, item uses and gossip choices
(docs/RECORDING.md, field by field). Recordings replace
estimates with Forever facts, feed the Codex what only play shows, 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.
/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 Questie, 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.
| Command | What it does |
|---|---|
help | List every command |
show, hide | Show or hide the guide window, with the action buttons and the rare and transport alerts; the arrow too only with Hide the arrow with the guide (Options, Guide, Arrow & routes), and never the arrow back to your corpse or a Spirit Healer |
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 <id> | Switch to a guide by id |
tabs, tab <n>, 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 |
skipleg | Skip the travel route's current leg (a Hearthstone, flight or portal: plan the rest without it; a walk or lift: mark it done) |
near <service> | Point the arrow at the nearest trainer, class trainer, repair, reagents, vendor, innkeeper, bank, mailbox, auction house, flight or stable master |
way <x> <y> [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); while the guide hides it (Hide the arrow with the guide), these commands, way and near say so |
reset | Clear ticks and skips for the current guide |
xp | XP per hour, time to level and level splits |
party [debug] | Show or hide the party panel: each party member who also runs Polestar (level, step, what they still need); prints what party sync sends and hears, for a report |
The Recorder has its own: /psrec on | off | ui | mark <text> | trail on [label] | trail off | clear and a few more listed by /psrec. /psrec trail on Brill records a dense position trail (a point every yard, height
included) until /psrec trail off or 30 minutes; record trail <session>
writes it out. /psrec ui (or Options > Recorder > Recorder window) opens a
small window with the same controls, a key binding for the trail, and a
checklist of the spots we need walked.
Every command with its help line, every option and every key binding are on polestar.guide's reference.
/polestar report)
and post the report in #bugs on the
Polestar Discord, or open it on GitHub from
the same window. What makes a good report is in
CONTRIBUTING.md.flowchart LR
game["The game's data<br/>+ corrections"] --> data["Reference<br/>data"]
data --> world["World model<br/>solo, elite and group quests"]
world --> walks["Walks<br/>priced on the maps"]
walks --> routes["Route search<br/>one route per faction"]
fixes["Player reports<br/>kept as fix records"] --> routes
routes --> guides["Guides<br/>written from the route"]
guides --> check["Route check<br/>played like a player"]
check --> legs["Walking legs<br/>for the arrow"]
legs --> addon["Polestar_Guides"]
The routes are made by Polestar Forge, one program (forge build) that runs every step from
the installed game to checked guides (docs/FORGE.md). Each race has its own
starting zone (levels 1 to about 12, the Skyborne to about 15); from there one Horde route runs
from the Barrens and one Alliance route from Westfall to 60, written once per faction and played by
every race of it.
Each round of routes is then read step by step. What a reader or a player finds becomes a
permanent fix record (data/route-fixes.json, data/guide-fixes.json and our corrections), never
a hand edit of a guide, so the next build keeps it; the leveling guides themselves are generated
(guides/GENERATED.json lists them). Every quest a route leaves out is listed with the reason,
so a missing quest is a question with an answer.
What you will notice, that 0.2.6's guides didn't do:
Every leveling guide is checked the way a player follows it before it ships, for every race and class, and each round of routes is read step by step. Polestar is not a speed-leveling guide: the aim is a route that makes sense to play, with nothing pointless in it.
Forge's model is in docs/forge/model.md and the route check in docs/forge/judge.md. The routes of releases up to 0.2.x came from an earlier JavaScript simulator, described in docs/legacy/SIMULATION-js.md.
Guides are plain text, compiled to Lua. The compiler fills in names, titles
and coordinates from the reference data, so a line can be as short as
accept 788. From the Orc starting guide (written by Forge, like every
leveling guide),
guides/forever/horde/orc/01-durotar.guide:
guide forever/horde/orc/01-durotar
title Durotar
faction Horde
race Orc
levels 1-12
zone Durotar
next forever/horde/02-the-barrens
step Kaltunk
accept 4641 -- Kaltunk, where you start
tip Gornek waits inside the Den, the building just west of Kaltunk.
turnin 4641 -- Inside
accept 788
accept 97279
accept 1485 only Warlock -- Ruzan
step Training weapons and boars
tip The weapons lie around the Den and the training grounds; the Mottled Boars roam the whole valley floor.
kill 3098 quest 788.1
collect 277653 quest 97279.1
goto 42.4,68.6 "The Den"
The second step compiles to (goals wrapped and spawn lists cut short here; the compiler writes each goal on one line):
{
title = "Training weapons and boars",
note = "The weapons lie around the Den and the training grounds; the Mottled Boars roam the whole valley floor.",
goals = {
{ t = "kill", quest = 788, title = "Cutting Teeth",
target = "Mottled Boar", npc = 3098, count = 10, oi = 1,
map = 1411, x = 42.72, y = 71.58, z = 40.3, f = "e",
spotsPacked = "42.4,72.1,,56,6;44.3,71.2,,54,6;..." },
{ t = "collect", quest = 97279, title = "Wayward Weapons",
item = 277653, itemName = "Abandoned Training Weapon", count = 6, oi = 1,
map = 1411, x = 43.2, y = 71.7, f = "e",
spotsPacked = "43.6,72.4,,54,4;44.3,70.8,,21,2;...",
from = "Abandoned Training Weapon", fromKind = "object", fromId = 673476 },
{ t = "goto", text = "{object:3227}", map = 1411, x = 42.4, y = 68.6, f = "e" },
},
},
Every verb, modifier and condition is in docs/GUIDE_FORMAT.md; guides of your own ship as a community addon.
This part is for working on Polestar itself: players need only the Quick start, guide authors the Community guides section. docs/README.md maps every document, and CHANGELOG.md lists what changed in each release.
Polestar has two command lines. forge (Rust, in rust/; build it
with cargo build --release -p forge there, or take a prebuilt one from
the Releases page) builds the data, the guides, the walking maps and the
releases: forge guide compile|lint|check, forge data ...,
forge nav pack|check, forge release ... and forge changelog. The old
node tools/polestar.js compile, lint, data, release and their
neighbors only print the forge command now. node tools/polestar.js
keeps the contributor tools that have not moved yet: playtest, find,
record, new, dev, install, play, preview and the planner.
Node 24 or later (no npm dependencies) and Lua 5.1 (lua5.1, luac5.1) for
the tests. Building the data needs a local Forever client: it reads the
client's tables and installed addons.
forge data build --kb # reference data into data/forever/ (local)
forge data questdb # the Polestar_QuestDB pack
forge guide lint # check every guide
forge guide compile # build addon/Polestar_Guides
node --test "tests/**/*.test.js" # the test suite
node tools/polestar.js preview # render the UI to docs/preview/*.svg
node tools/polestar.js install --recorder # into a detected Forever or beta client
forge release version # the release version in package.json, guides/pack.json and every addon TOC
forge release pack # release zips and SHA256SUMS into dist/
npm test runs the suite. CI runs it on every
push to main and every pull request, where the tests that need the locally
built data skip with a reason, and fails when the committed textures or UI
renders differ from a fresh media or preview build; with the data built,
all pass locally. install
finds the client under Wine, Proton and similar prefixes in your home folder,
or takes $WOW_FOREVER_ADDONS or --dest <Interface/AddOns>; --link
symlinks the folders instead, so an edit needs only a /reload.
Releases are built on a maintainer's machine, because the data addons come from the game client's tables: docs/RELEASING.md has the steps and what each zip carries.
forge --help and forge <command> --help list Forge's commands and
options; node tools/polestar.js help lists the Node ones and
help <command> their options; tools/README.md groups
them, lists the generated files and gives the rebuild order after a data
change.
cd rust && cargo build --release -p forge && cd .. # or a prebuilt forge from the Releases page
rust/target/release/forge doctor # what it finds: the game, the data, the maps
rust/target/release/forge build --guides guides --out forge-out
Forge reads the installed game, builds the data and the walks, searches every start's route, writes
the leveling guides (one shared route per faction) and plays them through the route check:
forge-out/report.md and check.md say what changed and what a player would trip on. Without a
maintainer's data/sources, forge data fetch downloads the public data
pack first. docs/FORGE.md is the guide.
node tools/polestar.js play # prints http://127.0.0.1:8077/
node tools/polestar.js play --fresh # a new level 1 character, default settings
One long-lived Lua 5.1 process runs Polestar, its guides and the built data
packs against the simulated world of the tests. The page shows a 1920x1080
game screen with the hub and the guide window; click, hover, scroll, drag,
type into search boxes and run slash commands from the chat line. A side
panel sets the look, jumps through a guide, opens any window and changes the
character, position and time. Zone paintings come only from a local folder
of your own client's art (--art); without it the world is dark.
node tools/polestar.js planner art # once: the map art (~330 MB downloaded, ~250 MB built; local only)
node tools/polestar.js nav build # once: the navigation grid for terrain-aware walks (~750 MB, ~15-25 min; local only)
node tools/polestar.js planner # prints http://127.0.0.1:8078/
node tools/polestar.js planner mcp # the same commands for an AI agent (MCP over stdio)
The planner is Nivek_Gaming's idea (@Nivek_Gaming on X): his route planning inspired this tool and the navigation grid behind it. Thank you, Nivek.
Pick a guide and a character and the route plays on the game's own minimap
terrain, zone by zone or as the whole 1-60 route across the continents: each
step's start time and duration split into travel, combat, talking and
waiting, the level and XP, the quest log and items, the spawn areas and the
path. The clock is the simulator's model (docs/legacy/SIMULATION-js.md),
so treat absolute hours as estimates and compare steps against each other.
With the navigation grid built (node tools/polestar.js nav build, local
only) every walk follows the terrain, the walks between mobs in a kill area
too: around mountains, into caves and buildings, swimming, dropping off
ledges, mounted from level 40, at the speed of the character's class (Ghost
Wolf, Travel Form...). Flights follow the flight master's real path. The
first playback of a route shows straight lines while its walks are routed in
the background ("Routing…" in the footer), then "Routed N of M legs" (and
the hops between spawns); routes are cached under data/local/nav, so the
next start is immediate. A walk the grid cannot route stays a straight line,
marked ≈ in the steps list.
Layers adds Walkable (what the grid can walk: blocked, steep, climb, water,
indoors, zoomed in) and Arrow aids (the crossings and approach chains of
nav aids).
In Edit mode, drag a waypoint, add one with a click, bend a travel line into
a new labelled waypoint ("Cross the bridge"), or change any goal or
step in its form: every edit is written into the .guide file at once
(undo with Ctrl+Z; Changes lists and reverts them; Compile builds the addon
folder), so dev picks it up too. Given a pack folder it edits that pack;
planner mcp lets an assistant read routes, edit them and drive the open
page while you watch (claude mcp add polestar-planner -- node tools/polestar.js planner mcp).
The map art is the Forever client's own, fetched from wago.tools and never
committed or shipped.
forge record import # the Recorder's chunks -> data/recordings (forge record pull: the server's)
forge data build --kb # fold recordings into the reference data
node tools/polestar.js record report # how long each guide step really took
record report [--guide <text>] [--json] lists, per step, passes, median
and p75 time, XP per hour, time in combat, deaths, turn-ins and travel, then
the slowest steps, steps far over the guide's median and detours. Reloads,
AFK breaks (idle time counts at most 5 minutes), going back a step and other
tabs are accounted for.
At Forever's launch, the data is rebuilt and Forge builds the routes again to take in the new zones (docs/FORGE.md).
| Path | What lives there |
|---|---|
addon/Polestar | The addon: engine, navigation, UI, modules, textures drawn in code (addon/README.md; every addon: docs/ARCHITECTURE.md, "Overview") |
addon/Polestar_Guides | The compiled guides (generated by compile) |
addon/Polestar_ItemDB | Item stats for gear advice: Items.lua from forge data itemdb, Forever.lua from forge data gear |
addon/Polestar_Nav | The arrow's walking routes: Polestar's walking router, started from Shortest Path Forever's by Cillian Berragan (GPL-3.0-or-later), on Polestar's walking maps of Eastern Kingdoms, Kalimdor and Zephras Isle, grown from his format (nav pack; CREDITS.md) |
addon/Polestar_Recorder | The optional session recorder |
guides/forever | The guide sources: leveling, professions, reputation, exploration, Legacy, collectibles |
docs/ARCHITECTURE.md describes the modules and their contracts, docs/SUITE.md the suite and what is out of scope (best-in-slot lists, loot browsing, talent builds), and docs/DESIGN.md the visual system.
Issues and pull requests are welcome, guide fixes most of all: a step in the wrong order, a quest that is not where the guide says, a tip that would have saved you a minute. Questions and ideas are welcome on the Polestar Discord.
guides/forever/; fix the step, run forge guide lint and
playtest --filter <name>, and open a pull request. Without the reference
data (built from a local client today), send the fix or an issue anyway:
CONTRIBUTING.md has the full walkthrough.node --test "tests/**/*.test.js" green.node tools/polestar.js preview renders them for review.record report
for the steps that felt slow.npx skills add fitzforge/polestar -g, or the Claude Code and Codex
plugins in CONTRIBUTING.md.Contributions are accepted under the GPL-3.0, the project's license.
Polestar is free and open source under the GNU General Public License, version 3.
Its data comes from public sources, the game client's own tables and
recordings; THIRD_PARTY.md lists every input, its license
and what a release holds from it. The guides and the quest markers carry
facts (titles, givers, positions, levels) from QuestieDB's Forever store,
credited there. Inputs whose terms do not allow redistribution are read from
your installed copies at build time and their outputs stay local: a Codex
built with those extras (--local-extras) and the zone crossings pack are
never packaged; the Codex that ships is built from release-safe inputs only. No game
art ships with Polestar: zone paintings are read from the player's own
client, and every texture is drawn in code. The screenshots in this README
show the game (© Blizzard Entertainment) and are not part of the release.
The Inter typeface (SIL Open Font License 1.1) ships with the addon; the
POLESTAR wordmark is cut from Cinzel (SIL Open Font License 1.1) and ships
only as images. The README's banner, buttons, logo, charts and the
CurseForge avatar are drawn by tools/readme from the same sources, with
Marcellus (SIL Open Font License 1.1) for the banner's lines; the CurseForge
button's anvil is the CurseForge mark from simple-icons (CC0 1.0).
The walking router in Polestar_Nav started from Shortest Path Forever's, by
Cillian Berragan, and keeps his copyright in the files that began as his; its
maps of Eastern Kingdoms, Kalimdor and Zephras Isle are Polestar's, written in
a format grown from his by a port of his baker; all of it is under
the GPL version 3 or later, used with his permission
(see Pathing by Shortest Path Forever);
the guide-pack permission below does not cover them.
The walks baked into the guides are drawn on Leffe's navigation maps (and on Polestar's own maps where his have no way), used with Leffe's full permission; his map files are not part of the addon.
LICENSE-EXCEPTION.md adds a permission under section 7: guide packs produced by Polestar's compiler and import strings produced by its tools, including the reference data they place in them, may be distributed under terms of the author's choice (not guide text copied from Polestar's own guides, nor Polestar's code).
SHA256SUMS/polestar, the key
binding or the minimap button still opens it while you are inside.debuggear [item link] | Gear advice: the weights in use, or compare an item |
gear import [string] | Import a Pawn scale: opens the paste box, or imports the string given |
gear scales | Open the window that manages your custom stat-weight scales |
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 |
talents | Open your talent plan |
questdb | Quest database status |
packs | Open Options > Community guides |
import | Open the Import page: paste a shared guide string to save it without installing an addon; import clear or import delete to remove it |
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 <id>, 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 |
toolsThe command line (polestar.js), the guide compiler, the simulator, data importers, texture and preview renderers, the playground (tools/README.md) |
rust | Polestar Forge, the Rust pipeline that makes the routes and writes them into the guides: one forge program (docs/FORGE.md) |
apps/client | The Polestar Client, the desktop app that installs and updates the addons and community guides and sends recordings (apps/client/README.md) |
services/ingest | The recording program's server: it checks and stores the chunks the Polestar Client sends (services/ingest/README.md) |
tests | node --test suites; tests/lua is the simulated game client they run the addon in (tests/README.md) |
docs | Architecture, guide format, Forge, the suite's scope, UI renders (docs/README.md) |
data/ | Local build products and recordings, gitignored |