# Credits & data sources

> Where every input comes from, its license, what may enter the repository or a release, and the credits the licenses require.

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

Everywhere else in these docs, a source is named by what it is: "the community quest database", "the Era quest database", "the Forever web database", "the game-table export". In paths, flags and source tags it reads as its role: `<quest-db>`, `<era-db>`, `<web-db>`, `<tables>`, `<crossings>`, `<loot-db>`, `<names-db>`, `<talents-site>`, `<changes-site>`, `<wiki>`, `<server-db>`, `<gear-sim>`, `<leveling-bis>`, `<rares-db>`. This page names each source, with its license, as the licenses require.

Polestar is free and open source under the
[GNU General Public License, version 3](https://github.com/fitzforge/polestar/blob/next/LICENSE).

Its data comes from public sources, the game client's own tables and
recordings; [THIRD_PARTY.md](https://polestar.guide/docs/reference/credits) 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: the Codex
pack and the zone crossings pack are gitignored and never packaged. 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`](https://github.com/fitzforge/polestar/tree/next/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](https://polestar.guide/docs/players/features#pathing-by-shortest-path-forever));
the guide-pack permission below does not cover them.

[LICENSE-EXCEPTION.md](https://polestar.guide/docs/reference/license-exception) 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).

World of Warcraft is a trademark of Blizzard Entertainment. Polestar is a community project, not affiliated with or endorsed by Blizzard.

## Third-party material

| Component | Used for | License | Where |
|---|---|---|---|
| [pfQuest](https://github.com/shagu/pfQuest) database by Shagu | Era-baseline quest, NPC, object and item facts used by the data pipeline and resolved into the guides | MIT | `data/forever/meta.json` records the exact revision; the notice ships as `addon/Polestar_Guides/LICENSE-DATA.txt` |
| Blizzard client data tables (`UiMap`, `UiMapAssignment`, `AreaTable`, `Faction`; from the Forever client also `ChrRaces`, `ChrClasses`, `CharBaseInfo`, `Map` and `ItemSparse`) via [wago.tools](https://wago.tools) | Zone names, AreaID→UiMap mapping, Era and Forever map world bounds, the faction hierarchy, races and classes, dungeon and raid areas (`data build`); how long timed quest items last, for the timed-item lint | Game data © Blizzard Entertainment; used as facts for interoperability | `data/sources/wago/` (cache, not distributed) |
| [Inter](https://github.com/rsms/inter) by Rasmus Andersson | UI typeface | SIL Open Font License 1.1 | `addon/Polestar/Media/Fonts/` (license text alongside) |
| [Fira Sans](https://github.com/mozilla/Fira) by The Mozilla Foundation and Telefonica S.A. (Regular, Medium and SemiBold, from [Google Fonts](https://github.com/google/fonts/tree/main/ofl/firasans)) | The Halo skin's typeface | SIL Open Font License 1.1 | `addon/Polestar/Media/Fonts/FiraSans-*.ttf`, license text in `FiraSans-OFL.txt` |
| [Cinzel](https://github.com/NDISCOVER/Cinzel) by Natanael Gama | The "POLESTAR" wordmark, rendered once into `addon/Polestar/Media/UI/wordmark.tga` and `wordmark-small.tga`, and drawn as outlines into the README's banners (`docs/assets/banner-*.svg`); the font file itself is not shipped | SIL Open Font License 1.1 | `tools/media/fonts/` (font and license, build-time only) |
| [Marcellus](https://github.com/google/fonts/tree/main/ofl/marcellus) by Brian J. Bonislawsky (Astigmatic) | The lines under the wordmark in the README banner and the README's download and CurseForge buttons, drawn as outlines into `docs/assets/banner-*.svg`, `download.svg` and `curseforge.svg`; not used in the addon | SIL Open Font License 1.1 | `tools/media/fonts/` (font and license, build-time only) |
| Screenshots of World of Warcraft: Forever | The README's pictures of the addon in the game | Game imagery © Blizzard Entertainment | `docs/assets/screenshots/` (documentation only; not in the addon packages) |
| Discord's logo (the symbol from [Discord's brand kit](https://discord.com/branding)) | The mark beside every link to the Polestar Discord: the report window, the invite's copy window, the welcome's last page, the foot of the hub's and the settings' sidebars | Trademark of Discord Inc., used as Discord's brand guidelines allow: unaltered, in its own colour, to link to the Polestar Discord | The symbol's outline as published, in `tools/media/ui.js`, rendered into `addon/Polestar/Media/UI/discord.tga` |
| CurseForge's mark (the anvil; the path of the `curseforge` icon from [simple-icons](https://github.com/simple-icons/simple-icons)) | The README's CurseForge button, which links to Polestar's CurseForge page | Path data CC0 1.0 (simple-icons); CurseForge is a trademark of Overwolf, used only to link to Polestar's CurseForge page | `tools/readme/brand.js`, drawn into `docs/assets/curseforge.svg`; not used in the addon |
| Blizzard client data tables (`ItemSparse`, `Item`, `ItemEffect`, `SpellEffect`) via [wago.tools](https://wago.tools) | Item stats for gear advice (`Polestar_ItemDB`) | Game data © Blizzard Entertainment; used as facts for interoperability | generated into `addon/Polestar_ItemDB/` |
| Blizzard client data tables (`UiMapXMapArt`, `UiMapArt`, `UiMapArtStyleLayer`, `WorldMapOverlay`, `WorldMapOverlayTile`, `UiMap`; Forever build 1.60.1.70338) via [wago.tools](https://wago.tools) | Which world map overlay textures each zone map art has, so the zone art shows a zone without fog of war (file IDs and offsets only; no art is shipped) | Game data © Blizzard Entertainment; used as facts for interoperability | generated into `addon/Polestar/UI/ZoneArtOverlays.lua` |
| Blizzard client data tables (`WorldMapOverlay`, `UiMapXMapArt`, `UiMap`, `AreaTable`; Forever build 1.60.1.70338) via [wago.tools](https://wago.tools) | The discoverable areas of each zone, for the generated exploration guides (`exploration build`) | Game data © Blizzard Entertainment; used as facts for interoperability | `data/sources/wago/` (cache); generated into `guides/forever/exploration/` |
| Blizzard client data tables (`TaxiNodes`, `TaxiPath`, `TaxiPathNode`, `AreaTrigger` from Classic Era, plus Forever's `TaxiPathNode` for the ships Forever added, and Forever's `TransportAnimation`, `SpellEffect`, `SpellName`, `SpellMisc`, `SpellCastTimes`, `SpellReagents`, `SkillLineAbility` for the lifts, the tram and class teleports) via [wago.tools](https://wago.tools) | The travel planner's flight masters, flight paths, transports, instance and walk-in portals, the lift and tram tracks the timetables run on, and the class teleports (`travel build`) | Game data © Blizzard Entertainment; used as facts for interoperability | `data/sources/wago/` (cache); generated into `addon/Polestar/Nav/TravelData.lua` |
| [CMaNGOS classic-db](https://github.com/cmangos/classic-db) (commit 22b5146, `Full_DB/ClassicDB_1_12_1_z2815.sql.gz`, its sha256 pinned in `tools/lib/travel/cmangos.js`) and the [CMaNGOS mangos-classic](https://github.com/cmangos/mangos-classic) transport model (`TransportMgr::GenerateWaypoints`, `ElevatorTransport::Update`), as Shortest Path Forever's generators use them | Transport timetables (`travel build`) and guide heights (`data build`, `compile`, `trainers build`). From classic-db, facts only: the sniffed `transports` periods of the classic boats and zeppelins, the `gameobject` spawns of the lift cars and tram trains, the `areatrigger_teleport` destinations of the Darnassus portals and the `spell_target_position` of class teleports; and the spawn heights (z) of every `creature` and `gameobject` on Eastern Kingdoms and Kalimdor, used as facts like the transport periods: a guide goal at an NPC or object, its spawn spots, a smart target's candidates and the training reminder's class trainers carry the height of the spawn as `z`, so the arrow's walk ends on its floor. From mangos-classic, code: `tools/lib/travel/timetable.js` ports `TransportMgr::GenerateWaypoints` (by way of Shortest Path Forever's `gen_routes.py`: the Catmull-Rom spline matrix, three samples per spline segment, 30 yd/s with 1 yd/s² acceleration and braking) and reads lift tracks as `ElevatorTransport::Update` does (Y reversed) | classic-db: GPL-3.0; the spawn heights are used as facts, like the transport periods. mangos-classic: GPL-2.0-or-later per its source file headers (the repository's metadata says GPL-2.0); the port is taken under the "or later" option, as GPL-3.0 | `data/sources/cmangos/` (cache, not distributed: the rows used kept in `transit.json` and `spawnz.json`); the port in `tools/lib/travel/timetable.js`; its output generated into `addon/Polestar/Nav/TravelData.lua`; the heights in `data/forever/spawnz.json` (local), as `z` in the compiled guide packs, whose `LICENSE-DATA.txt` names classic-db (from `data/forever/meta.json`), and as the class trainers' `z` in `addon/Polestar/Core/ClassTrainers.lua`, whose header names it |
| [CMaNGOS classic-db](https://github.com/cmangos/classic-db) (the same pinned dump) `creature` spawns and `creature_template` rows (name, faction template, NPC flags, extra flags, rank, level), and the [CMaNGOS mangos-classic](https://github.com/cmangos/mangos-classic) (commit 8ec338a) flag and faction definitions (`CREATURE_EXTRA_FLAG_GUARD` in `src/game/Entities/Creature.h`, `NPCFlags` in `src/game/Entities/Unit.h`, `FactionGroupMask` in `src/game/Server/DBCEnums.h`, `FactionTemplateEntry::IsHostileTo` in `src/game/Server/DBCStructure.h`) | The hostile hubs layer (`nav layers hubs`): where each faction's guards and service NPCs stand, which side each serves | classic-db: GPL-3.0, used as facts; mangos-classic: GPL-2.0-or-later, the bit values and the hostility rule re-expressed in JavaScript (taken under GPL-3.0) | `data/sources/cmangos/` (cache: `creature_template.json` beside the dump); `tools/lib/nav/layers/hubs.js`; built into `data/local/nav-layers/hubs.json` (gitignored); tools only, never committed, packed or distributed |
| Blizzard client data tables `FactionTemplate` and `AreaTable` (the navigation grid's Forever build) via [wago.tools](https://wago.tools) | The hostile hubs layer (`nav layers hubs`): which creatures are hostile to Alliance or Horde players, and each hub's name | Game data © Blizzard Entertainment; used as facts for interoperability | `data/sources/wago/<build>/` (cache); built into `data/local/nav-layers/hubs.json` (gitignored) |
| [Shortest Path Forever](https://github.com/cjber/shortest-path-forever) by Cillian Berragan (v1.16.0, commit b1ad5bd; the adapted parts below from v1.15.0; [cillian.dev](https://cillian.dev)) | The arrow's walking routes: Polestar's walking router started from Shortest Path Forever v1.16.0 by Cillian Berragan, with thanks; Polestar maintains it since 2026-10-16 (`Routing/PathGrid.lua`, `Path.lua`, `PathJobs.lua` began as his files and keep his copyright and the GPL notice); the walking maps are Polestar's (next row). Adapted from his code: route-line geometry and map painters (`UI/Strokes.lua`, `UI/FlightLines.lua`, `UI/Route.lua`), the cast prompt and step skipping (`UI/Arrow.lua`, `Journey/Journey.lua`), transport alerts (`UI/Alert.lua`), the flight-route line and node choice (`Transport/Taxi.lua`), journey input and way commands (`Journey/JourneyInput.lua`, `Core/API.lua`, `Core/TomTom.lua`, `Core/Way.lua`), nearby places (`UI/Nearby.lua`), the journey tracker's steps (`UI/Tracker.lua`, `Journey/JourneySteps.lua`), boat, zeppelin and tram timing and teleports (`Transport/Model.lua`, `Timetable.lua`, `Observer.lua`, `Sync.lua`, `Teleports.lua`) and his transit generators (`tools/gen_routes.py`, `tools/gen_transit.py`). Used with his permission, given directly to Fitz (2026-10-15) and recorded in [shortest-path-forever#143](https://github.com/cjber/shortest-path-forever/issues/143) | GPL-3.0-or-later (Copyright (C) 2026 Cillian Berragan) | The router's files are Polestar's code since 2026-10-16, no longer vendored, each with a header saying where it started; `LICENSE` and `CREDITS.md` sit alongside. The adapted parts are in `addon/Polestar/Maps/RouteStrokes.lua`, `Maps/RouteLines.lua`, `Nav/Prompts.lua`, `Nav/Alerts.lua`, `QoL/Flight.lua`, `Nav/Journey.lua`, `Nav/Nearby.lua`, `Nav/Walk.lua`, `UI/JourneyPanel.lua`, `Nav/Transit.lua`, `tools/lib/travel/timetable.js` and `tools/lib/travel/cmangos.js`, each crediting him at its top, and listed in `addon/Polestar_Nav/CREDITS.md` |
| Blizzard client data tables (`SkillLine`, `SkillLineAbility`, `SpellName`, `SpellEffect`, `SpellReagents`, `SpellTotems`, `SpellCastingRequirements`, `SpellFocusObject`, `ItemSparse`, `Item`, `ItemEffect`, `ItemXItemEffect`; Forever build 1.60.1.70425, plus Classic Era 1.15.9.70003 for the spells and items Forever's tables lack, and its `SkillLineAbility` to tell Season of Discovery recipes apart) via [wago.tools](https://wago.tools) | Professions: recipes, their skill colours, reagents, tools and recipe items (`profession build`) | Game data © Blizzard Entertainment; used as facts for interoperability | `data/sources/wago/` (cache); `data/forever/professions.json` (local), read by the profession guide generators and `codex build` |
| Blizzard client data table `QuestXP` (Classic Era 1.15.9.70003) via [wago.tools](https://wago.tools) | Quest XP by quest level and difficulty for the route simulator (`sim`) | Game data © Blizzard Entertainment; used as facts for interoperability | `data/sources/wago/` (cache, not distributed) |
| [ForeverDB](https://foreverdb.net/class/Paladin/talents) Paladin talent guides | The three Paladin talent plans (which talent at which level) in `talents/forever/paladin.json`; the notes beside them are our own wording | Public web pages; picks used as facts, no text copied | `talents/forever/paladin.json` names the source; the Talents section credits ForeverDB with its link |
| Blizzard client data tables (`TraitNode`, `TraitNodeEntry`, `TraitDefinition`, `TraitEdge`, `TraitCond` and their link tables, `SkillLineXTraitTree`, `SpellName`; Forever build 1.60.1.70450) via [wago.tools](https://wago.tools) | The talent trees the plans are checked against (node IDs, ranks, gates, arrows, names) | Game data © Blizzard Entertainment; used as facts for interoperability | `data/sources/wago/` (cache); generated into `addon/Polestar/Talents/Builds.lua` |
| Blizzard client files of the Forever client (`wow_classic_beta`): the minimap blocks of each continent and the world map art and overlay tiles of each zone, by fileDataID from [wago.tools](https://wago.tools), with the `Map`, `UiMap`, `UiMapAssignment`, `UiMapXMapArt`, `UiMapArt`, `UiMapArtStyleLayer`, `UiMapArtTile`, `WorldMapOverlay` and `WorldMapOverlayTile` tables; and the game's icons (item, spell, profession, class and race icons, the gossip, minimap tracking, cursor and raid target textures), by fileDataID with the `Item`, `SpellMisc`, `SkillLine` and `ChrClasses` tables and wago.tools' file name search | The route planner's map (`planner art`): terrain tiles and unfogged zone paintings; and the planner page's icons (`/icon/...`, `tools/planner/icons.js`); drawn only in the local planner page | Game art © Blizzard Entertainment | Downloads cached under `data/sources/casc/` and `data/sources/wago/`, built into `data/local/planner/art/` and `data/local/planner/icons/` (all gitignored); never committed, packed or distributed |
| Blizzard client files of the Forever client (`wow_classic_beta`): each continent's map tiles (root, obj0 and tex0 ADTs: terrain heights, holes, area ids, liquids, model placements, the terrain's texture layers and alpha maps), the WMO and M2 models they place (collision and WMO liquids), by fileDataID from [wago.tools](https://wago.tools), with the `Map`, `LiquidType`, `LiquidMaterial`, `LiquidObject` and `TransportAnimation` tables | The navigation grid (`nav build`): where a character can walk, climb, fall, swim and ride lifts, for the route planner's walks and the arrow-aid experiments; the roads layer (`nav layers roads`): where the terrain is painted with a road texture | Game data © Blizzard Entertainment; used as facts for interoperability | Downloads cached under `data/sources/casc/` and `data/sources/wago/`, built into `data/local/nav/` and `data/local/nav-layers/` (both gitignored); never committed, packed or distributed |
| [wowdev community listfile](https://github.com/wowdev/wow-listfile) (`community-listfile.csv`, the latest release when first downloaded) | The client paths of the terrain textures the tex0 ADTs name by fileDataID, to tell road textures from the rest (`nav layers roads`; the reviewed paths in `tools/lib/nav/layers/road-textures.json`) | No license file published; file names used as facts only | Build time only: downloaded once to `data/sources/listfile/` (gitignored); never committed, packed or distributed |
| [Recast & Detour](https://github.com/recastnavigation/recastnavigation) by Mikko Mononen: `dividePoly` of `Recast/Source/RecastRasterization.cpp` | The navigation grid's rasteriser splits each triangle at the column edges with it (ported to JavaScript, altered) | zlib (Copyright (c) 2009-2010 Mikko Mononen) | `tools/lib/nav/grid/rasterise.js` `divide`, with the zlib notice; tools only, not in the addon or a release |
| [TrinityCore](https://github.com/TrinityCore/TrinityCore): `WMOGroup::GetLiquidTypeId` of `src/tools/vmap4_extractor/wmo.cpp` | Which liquid a WMO group's old-style liquid id means (water, ocean, magma, slime), for the navigation grid (ported to JavaScript) | GPL-2.0-or-later, compatible with Polestar's GPL-3.0 (taken under GPL-3.0) | `tools/lib/nav/geom/wmo.js` `liquidTypeId`; tools only, not in the addon or a release |
| [Blizzard UI source](https://github.com/Gethe/wow-ui-source) (`forever` branch) | API reference while developing; not copied or distributed | © Blizzard Entertainment | `.ref/` (gitignored) |
| [QuestieDB](https://github.com/Questie/QuestieDB) Forever store (Questie v12) | Forever quest, NPC, object and item facts (including Forever-only quests and zones) and quest XP for the data pipeline; the dungeon and raid entrance points of its Forever table (`support/Forever/Zones/dungeons.lua` at 36ca1ca), curated by hand into `tools/lib/codex/entrances.json` | No license file published | Read from the installed copy at build time; the data lands in `data/forever/` (gitignored). Facts resolved from it ship in releases: in the compiled `Polestar_Guides` (quest titles, givers, positions, levels), in `Polestar_QuestDB` (quest markers) and in `Polestar_Codex` (Lookup, Dungeons, Rares: NPC ranks, spawns, drops, quests, entrances), which the release zip includes and git does not; `entrances.json` (30 points, each citing its line) is in git |
| [ForeverLevelingBiS](https://www.curseforge.com/wow/addons/forever-leveling-bis) by Thunder (v0.12.0-beta, data 2026-10-13) | Forever item stats and where leveling gear comes from (quest rewards and choices, dungeon drops, crafts), racial gear traits; the same item sources feed the Codex's "where to get it" | MIT (Copyright (c) 2026 Thunder) | Read from the installed copy by `gear build` and `codex build` (`tools/lib/consume/foreverlevelingbis.js`); facts generated into `addon/Polestar_ItemDB/Forever.lua`, the `Gear.RACIALS` table of `addon/Polestar/Gear/SpecData.lua`, and `data/forever/codex/` and `Polestar_Codex` (shipped; notice in its `LICENSE-DATA.txt`) |
| [wowsims](https://github.com/wowsims) (`classic` at 7779ebbf, `sod` at four phase commits) by the wowsims team | Simulated stat weights blended into the level bands that score upgrades | MIT (Copyright (c) 2024 wowsims team) | Cached under `data/sources/wowsims/` (`gear fetch`); numbers generated into `addon/Polestar/Gear/SpecData.lua` with each band's commit and file; notice in `addon/Polestar/Gear/LICENSE-DATA.txt` |
| DungeonJournal (ForeverDungeonJournal addon) by Exehn | Dungeon facts for `dungeons build`: levels, entrances, bosses and loot, dungeon quests with chains, rewards, observed Forever XP and quest-giver positions; the Dungeons section shows them (facts only, our own wording) | No license file published | Read from the installed copy at build time, only by `dungeons build` and `codex build --local-extras`; the output stays local: `data/forever/dungeons.json` and a local-only Codex pack that `pack` refuses |
| [AtlasLoot Classic](https://github.com/Hoizame/AtlasLootClassic) (the installed "AtlasLoot Forever", version "Forever 1.60.1", by sliccer) | Codex facts: dungeon and raid bosses and their loot (including the Forever instances and per-boss drop rates), collections (mounts, companions, tabards, sets), crafted items, faction rewards by standing, PvP rewards by rank | GPL-2.0 | Importer code only (`tools/lib/consume/atlasloot.js`, reading the installed `AtlasLootClassic_*` modules and the core's `Data/Profession.lua` and `Data/Requirements.lua`); read only by `codex build --local-extras`, whose output stays local (`pack` refuses it) |
| RareScanner (1.60.1.b7) by maqjav and Maciza-Tyrande | Codex facts: rare NPC ids, maps and positions, their loot, treasure loot, mount and pet item ids | All Rights Reserved | Importer code only (`tools/lib/consume/rarescanner.js`, reading the installed copy's `Tables/`); read only by `codex build --local-extras`, whose output stays local (`pack` refuses it) |
| Blizzard client data tables (`Item`, `ItemSparse`, `ItemEffect`, `ItemXItemEffect`, `SpellEffect`, `SpellName`, `SkillLine`, `SkillLineAbility`, `Mount`, `BattlePetSpecies`, `Map`, `AreaTable`, `DungeonEncounter`, `LFGDungeons`, `MapDifficulty`, `ContentTuning`; Forever build 1.60.1.70338, plus Classic Era 1.15.9.70003 `Item`/`ItemSparse`/`ItemEffect`/`Map` for items Forever's tables lack and to tell Forever's own instances apart) via [wago.tools](https://wago.tools) | Codex item names, quality, levels, reputation and PvP rank requirements; which spell each mount and pet item teaches (mount spotting), class mounts, retired mounts (`Mount` flags); profession names; dungeons and raids: names, kind, levels, bosses in order, entrances (the corpse point) | Game data © Blizzard Entertainment; used as facts for interoperability | `data/sources/wago/` (cache); generated into `data/forever/codex/` and `Polestar_Codex` (shipped) |
| [Wowhead](https://www.wowhead.com/forever) Forever database, per entity | Codex facts our other inputs lack, for the entities the parity report listed as missing and for our instances' bosses: NPC level, classification (rare, boss) and positions, what an NPC drops or an object contains with Wowhead's looted counts (the drop chance), the reputation standing and PvP rank an item's tooltip requires | Public web pages; facts only (ids, numbers, coordinates), no text, images or code | Read by `codex build` from `data/sources/wowhead/codex/` (gitignored) when present. Generated into `data/forever/codex/` and `Polestar_Codex` (shipped, listed in its `LICENSE-DATA.txt`) |
| [warcraft.wiki.gg](https://warcraft.wiki.gg) (vendor, item, quest and patch-note pages), and where it gives no standing [Wowhead](https://www.wowhead.com/classic)'s Classic reputation guides (Warsong Outriders, Silverwing Sentinels, Frostwolf Clan) | The reputation standing a vendor, an NPC handing an item out or a quest asks for an item, where no client table records it (`tools/lib/codex/repgates.json`) | Facts only (item, faction, standing, vendor or quest ids); no text, images or code copied | Each row cites its page; generated into `data/forever/codex/` and `Polestar_Codex` (shipped, listed in its `LICENSE-DATA.txt`) |
| Web research: [Wowhead](https://www.wowhead.com/forever) database pages (Forever and Classic npc, item, quest and spell pages, and the Forever zone quest lists), wowforevertalents.com, foreverchanges.pro and Blizzard's own Forever pages | Facts checked or filled by hand or by `data build`: quest XP the data lacked (`data/sources/webxp/`), the XP and level changes Wowhead's Forever change notes record (`data/sources/wowhead/zones.json`, when present), trainer roles of Forever NPCs, a few spawn and chain corrections (`tools/lib/data/corrections.json`, each entry with its source), mount and pet sources for the collectible guides, Forever zones, ships and race/class rules | Facts only; no text, images or code copied | Each correction entry, and each guide that relies on a web fact, names the page it used |
| [Shortest Path Forever](https://github.com/cjber/shortest-path-forever) v1.15.0 by Cillian Berragan: `tools/baker/gen_nav.py` (HPA* entrances and edges, the cluster encodings, floor links), `tools/pack_nav.py` (zlib + base64 parts) and `Routing/PathGrid.lua`'s decoder | `nav pack` writes our navigation grid in his walking-map format so the router in `Polestar_Nav` (started from his) runs on it; the tests read it back with his decoder's logic. The maps themselves (`Nav/Nav0*.lua`, `Nav/Nav1*.lua`, `Chokepoints.lua`) are Polestar's, generated from the Forever client's geometry (map tiles, WMO and M2 collision, liquids; files by fileDataID from wago.tools, used as facts for interoperability like the other client tables) | GPL-3.0-or-later, used with his permission; the maps are Polestar's (GPL-3.0) | Ported in `tools/lib/nav/pack.js` (named in LICENSE, with the dated Portions Copyright line) and `tests/helpers/spfnav.js` (credited in their headers); the packed maps ship in `addon/Polestar_Nav/Nav/`, listed in `PACK.json` |
| [Carbonite](https://github.com/IrcDirk/Carbonite-Classic) (Carbonite Classic, commit 4d06280; originally by Carbon Based Creations, LLC, who released it under the GPL) | The travel planner's zone crossings: where a walk may leave one zone for the next (its Classic Era `Data/classic/ZoneConnections.lua`, the 54 walks between zones), imported by `travel import --carbonite` into `tools/lib/travel/crossings.json` with an arrival radius of our own | GPL-3.0 | `tools/lib/travel/crossings.json` names the commit and file; generated into `addon/Polestar/Nav/TravelData.lua` (shipped) |
| [Ding!](https://github.com/moust4ki/DingGuideWoWForever) and its game database DingDB (`Ding/DB/`, with `LibDingDB`) by Yendi ([@moust4ki](https://github.com/moust4ki)), a Polestar contributor | Any part of the project, in its current and later versions: its code, guides, tools and DingDB's data, including the quest, NPC, object and item names in deDE, esES, esMX, frFR, koKR, ptBR, ruRU, zhCN and zhTW for Polestar's translations | GPL-3.0 (Copyright Yendi), used with his permission for the whole project and its future versions, given directly to Fitz (2026-10-16). Settled: taking more of Ding later needs no new permission. DingDB's base data is generated from QuestieDB (Ding's `Ding/DB/CREDITS.md`) and is held like Polestar's other QuestieDB facts (below) | Whatever is taken names Ding, Yendi and the Ding version or commit it came from; DingDB data keeps `Ding/DB/CREDITS.md` beside it; code adapted from Ding carries a dated Portions Copyright line in its header and in LICENSE, like Shortest Path Forever's. The names: `addon/Polestar_Names_<locale>/` (shipped), built by `i18n names` from a clone in `data/sources/ding` (gitignored) pinned to v1.8.1's commit and each file's sha256 (`DING` in `tools/lib/i18n/names.js`); each folder's `LICENSE-DATA.txt` records the commit, the file's sha256 and how many names were taken, with `CREDITS.md` beside it. The weapon masters' weapon skills (`WEAPON_MASTERS` in `addon/Polestar/Nav/Nearby.lua`, for Nearby services) are DingDB's hand-noted facts from v1.8.1 (fb0a06a, `tools/data/corrections/10_weapon_masters.lua`), named in that table's comment |
| [pfQuest](https://github.com/shagu/pfQuest) locale databases by Shagu (`db/<locale>/{quests,units,objects,items}.lua`; no esMX) | The quest, NPC, object and item names (and dungeon event quests' objective text) the sources above them lack, in each client language; the last names source of `i18n names` | MIT | The cache clone `data build` uses (`data/sources/pfQuest`); generated into `addon/Polestar_Names_<locale>/` (shipped), whose `LICENSE-DATA.txt` names the revision and carries the notice |
| Blizzard client data tables in each client language (`&locale=`): Forever's `ItemSparse`, `Map`, `DungeonEncounter`, `Faction` and `TaxiNodes`, and Classic Era's `ItemSparse` for the items Forever's lacks, via [wago.tools](https://wago.tools) | The game's own item, instance, encounter, faction and flight point names in deDE, esES, esMX, frFR, koKR, ptBR, ruRU, zhCN and zhTW, the first source of `i18n names` | Game data © Blizzard Entertainment; names only, used as facts for interoperability | `data/sources/wago/<build>/<locale>/` (cache, not distributed); generated into `addon/Polestar_Names_<locale>/` (shipped), whose `LICENSE-DATA.txt` names the builds and tables |
| [Wowhead](https://www.wowhead.com/forever) Forever database in each client language (the list pages under `/forever/<de\|es\|mx\|fr\|ko\|pt\|ru\|cn\|tw>/` for quests, NPCs, objects and items, and `nether.wowhead.com/forever/tooltip` for ids no list holds) | The game's names of quests, NPCs, objects and items (Forever's own among them, which no other source has) and the objective text of dungeon event quests, in each client language, for `i18n names`, after the client tables | Public web pages; the game's own names and objective lines only (Blizzard's strings), no Wowhead text, images or code | Read by `i18n names` from `data/sources/wowhead/names/` (gitignored) when present. Generated into `addon/Polestar_Names_<locale>/` (shipped), whose `LICENSE-DATA.txt` gives the dates read |

### Distributing Polestar

Polestar's own code and guides are GPL-3.0 (see LICENSE). What a release
(`node tools/polestar.js pack`) holds from the inputs above:

- QuestieDB: facts only, credited in the table above, in the compiled guide
  pack, `Polestar_QuestDB` and `Polestar_Codex`. QuestieDB publishes no
  license; if its maintainers ask, they come out: `data build --no-questie`
  builds without them, after which `Polestar_QuestDB` and `Polestar_Codex` are
  rebuilt and the guides that need
  Forever-only facts give them themselves or are recompiled from other
  sources; the entries of `tools/lib/codex/entrances.json` that cite it are
  removed (the Codex falls back to recordings, guides and corpse points).
- DungeonJournal: nothing. The compiler and a release `codex build` do not
  read `data/forever/dungeons.json`; a quest only it knows gets its title and
  level in the guide, from a public source the guide names.
- The Codex (`Polestar_Codex`): always, built by `codex build` from
  release-safe inputs only: the Forever and Era client tables, pfQuest (MIT),
  QuestieDB facts (as above), ForeverLevelingBiS (MIT), Wowhead Forever's
  per-entity facts (the cache under `data/sources/wowhead/codex/`), the web
  facts in `data/forever` (XP, Forever change notes, corrections, each with
  its source),
  the cited reputation gates of `tools/lib/codex/repgates.json`, our own
  recordings and our own guides. Its `LICENSE-DATA.txt` lists every
  source with its version and license. AtlasLoot (GPL-2.0, which GPL-3.0-only
  Polestar cannot take in), RareScanner (All Rights Reserved) and
  DungeonJournal (no license) feed only `codex build --local-extras`, a
  comparison build for the developer's machine whose meta says so; `pack`
  refuses it, and any Codex whose sources name them.
- Carbonite's zone crossings: always, in `TravelData.lua`, under GPL-3.0.
  They are data of a GPL program, not Polestar's reference data: the
  guide-pack exception does not cover them and the compiler never puts them
  in a pack.
- The local zone crossings pack (`Polestar_Travel`) never ships: its
  crossings come from a local file (an import of another addon's data, for
  the developer's machine only).
- Recast's `dividePoly` (zlib) and TrinityCore's `GetLiquidTypeId`
  (GPL-2.0-or-later, compatible with Polestar's GPL-3.0) are ported into the
  navigation grid's tool code, which a release does not hold.
- Polestar's walking router (started from Shortest Path Forever's, his
  copyright kept) and Polestar's maps of Eastern Kingdoms, Kalimdor and
  Zephras Isle, grown from his format (`Polestar_Nav`): always, under
  GPL-3.0-or-later with his copyright and `CREDITS.md`. They are code
  and data of a GPL program, not reference data: the guide-pack exception
  does not cover them and the compiler never puts them in a pack.
- Ding! and DingDB: anything taken from them may ship, under GPL-3.0 with
  Yendi's credit and, for DingDB data, Ding's `Ding/DB/CREDITS.md`. His
  permission covers the whole project and its later versions. The names
  DingDB takes from QuestieDB follow the QuestieDB rule above: if Questie's
  maintainers ask, they come out: `i18n names --no-questie` rebuilds the
  names addons from pfQuest alone.
- The names addons (`Polestar_Names_<locale>`): always, the game's names in
  each language from DingDB (above) and pfQuest (MIT), only for the quests,
  NPCs, objects and items Polestar's guides, quest database and Codex name.

EllesmereUI is all rights reserved: nothing from it is copied; Polestar only
calls its public skinning API at runtime.

---

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