# Maps

> The world map

Page: https://polestar.guide/docs/contributors/architecture/maps (Polestar docs > Contributors > Architecture)

Each feature is a setting on the Map page (Rares & travel, Zones), and none of
them makes a frame or loads data until it's on. The icon layers (dungeon
entrances, flight masters `maps.taxiPins`, docks `maps.dockPins`, inns
`maps.innPins`, and `maps.travelMinimap` for the minimap) default to off. The
flight timer and the instance tracker are set under Quality of Life.

- Unexplored areas (`maps.reveal`: `off` | `on` | `tint`, `Maps/Reveal.lua`):
  textures on one frame of Polestar's on each map frame's canvas (the world
  map, and the battlefield map once Blizzard loads it), watched through
  MapCanvas (Nav) once the setting is first on, faded with the map's global
  alpha (the battlefield map's opacity).
  `ZoneArt.FullOverlays` returns the overlay table only when it was built for
  the art the client shows (art ID and tile size). `Maps.UnexploredOverlays`
  subtracts the client's explored list (`GetExploredMapTextures`, matched on
  offset and size, since it returns no overlay IDs). An explored overlay is
  always left to Blizzard, so `isShownByMouseOver` overlays stay hover-only.
  The tiles are split by `ZoneArt.EachOverlayTile`, as
  `MapExplorationDataProvider` splits them, onto one frame at the exploration
  pin frame level. `tint` multiplies them by the Theme token `mapUnexplored`.
  The tiles are painted again as the map opens or changes, on
  `MAP_EXPLORATION_UPDATED` and on theme changes.
- Coordinates: the world map's info bar shows the player and the cursor
  (`maps.coords`, `Maps/WorldMap.lua`). `maps.minimapCoords` adds a readout at
  the bottom of the minimap (`Maps/Coords.lua`, 5 Hz, repainted only when the
  tenth changes). Both use `Maps.FormatCoords`.
- Minimap button (`maps.minimapButton`, off by default; `Maps/MinimapButton.lua`):
  click fires `TOGGLE_FRAME`, right-click `SHOW_OPTIONS`, a drag moves it
  around the minimap's edge and saves `maps.minimapButtonAngle` (degrees, 0 =
  east). A square minimap (`GetMinimapShape`) puts it on the square's edge,
  and a resized one (`OnSizeChanged`) moves it to the new edge.
  No frame exists until the setting is first turned on.
- Zone level ranges (`maps.zoneLevels`): labels on continent maps, and the
  hovered zone's range in the info bar. The ranges come from `maps build`
  (`tools/lib/maps/zonelevels.js`). Forever-only zones (maps with Forever
  frames and no Era frames in `map-frames.json`) are held to the sparse
  thresholds, because every source records them thinly.
- Dungeon entrances (`maps.dungeonPins`, `Maps/Dungeons.lua`): a Pins layer
  `maps.dungeons` built from the Codex pack's instances, since `dungeons.json`
  isn't license-clean and the core ships no entrances. The Codex is loaded the
  first time the world map opens with the setting on, or the layer is built
  on `CODEX_LOADED`. A click opens the dungeon's page in the hub
  (`Polestar.Dungeons.Open(key)`); with the Dungeons module off, or on
  Shift-click, it sets a Nav waypoint.

---

Next page: [QoL](https://polestar.guide/docs/contributors/architecture/qol.md) · Every docs page: https://polestar.guide/llms.txt · All docs in one file: https://polestar.guide/llms-full.txt
