Compass Forever

Uncover every zone map for the Explorer Legacy point: the shortest route through each zone, an arrow to every exact spot, and markers on the world map.
Back to Files

v1.3

File nameCompassForever-v1.3.zip
Uploader
Chairface30Chairface30
Uploaded
Oct 14, 2026
Downloads
5
Size
3.1 MB
Flavors
Forever
File ID
9168997
Type
R
Release
Supported game versions
  • 1.60.1

What's new

tag 794c48c974c74752193a6c98863ec19ebfc1daa4 v1.3
Author:    Chairface30 <chairfaceserverop@gmail.com>
Date:    Tue Oct 13 23:30:10 2026 -0400

Compass Forever v1.3

commit 6c932f4e482ebd1f0b589417e2b300b79c17953c
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 23:30:10 2026 -0400

    Compass Forever v1.3

    Walls and roads show on the window's map with Edit walls and roads; the
    separate option is gone.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit dbdf5c56fa4670c2451eefbaa0010946125c48fa
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 23:18:33 2026 -0400

    Take a flight for the running it saves, even when it's slower

    PlanTravel and FlightLandings count a second in the air as a quarter of
    one on foot (FLY_WEIGHT), and a flight is taken when it saves at least
    30 s of running; the flight line says how much running it saves.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit d3bbc81b353726517fd0b5a21fa93ab9c27b2092
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 23:15:38 2026 -0400

    Start a route only at the zone's own flight points; Ashenvale's new road

    FlightLandings now takes the zone's own flight points by their name, as
    FlightStops does: Ashenvale's map reaches into Stonetalon, so its route
    started with a flight to Sun Rock Retreat. Ashenvale gets the road drawn
    since its bake.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 77aa491f21764dbba828b9042c404c50ffbc31bb
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 23:09:49 2026 -0400

    Say at every flight map what the route makes of it

    Opening a flight map always says how many flight points the character
    knows and the planned flight, or why there's none (PlanTravel keeps its
    reason in ns.travelWhy: unplaced, nothing known, walking quicker); the
    line is kept in CompassForeverDB.travelSaid.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit c91bab70c118a399ba1c25d72e673c72e1bb512b
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 23:03:31 2026 -0400

    Remove the New flight master button and /cf fp

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit b2bf9089126635d516d4cb4cfbdcd114fe797189
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 23:02:30 2026 -0400

    Read both flight lists, keep what they said, say what's known

    ReadTaxiMap reads C_TaxiMap.GetAllTaxiNodes as well as the flight map's
    own list, keeps each point's type and state in CompassForeverDB.taxiSaid,
    and says in chat how many points the character knows (or that it couldn't
    tell). A route with no flight map read yet says to open one.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit ec75656ecd427da1a611358d348f4bb658196c6a
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 23:00:01 2026 -0400

    Remove the last spots: world map area markers and credit dots

    Areas off the route get no world map markers (they sat on the old
    spots), and where credit was given is no longer recorded, said in chat or
    dotted on the window's map; db.credit is dropped at login. The window's
    hints say to click an area.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 09b19a81cd9e89925396aa442df789e7bc2cf9b5
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 22:50:48 2026 -0400

    Uncovered means the character's Legacy challenge has it

    The probe on the user's warrior showed Moonglade's lake in the map's
    explored art while the Explore criterion read undone on that character
    (the achievement complete by another): the criteria are per character,
    and come without IDs. They're matched to areas by name now and decide,
    with the map able to hold an area back (a redrawn map's gap) but not to
    uncover one alone; the map answers only areas without a criterion. The
    window keeps such an area's art gray.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit a7b3e78e90632212d711520f9aa7bc1f6b1a9042
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 22:45:37 2026 -0400

    Keep /cf probe's output in the saved settings, with each area's state

    CompassForeverDB.probe holds the last probe, colors stripped, so it can
    be read after a /reload; the probe lists every uncovered art piece and
    each area's state, art and criterion (done, by whom).

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 4c5ec02f02339db47732fee842710a6c141aa9ee
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 22:38:49 2026 -0400

    Count the account's exploration criteria as the Legacy window does

    Where the map can't answer, a criterion done is this character's only
    when the achievement was earned by it (wasEarnedByMe, as Blizzard's
    Legacy window shows a challenge complete) or the criterion names it as
    the one who completed it. /cf probe prints who.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 42c85a4fa48db0d247d9d951eeb7369701a544ff
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 22:33:43 2026 -0400

    Keep another character's exploration out of a zone never visited

    The map gives back no explored list for a zone the character has never
    been in; that fell through to the account-wide Explore criteria, so an
    alt saw the main's areas (Moonglade) as uncovered. No list now means none
    uncovered, and a criterion done only counts when the map can't be read
    and this character earned the achievement. /cf probe takes a zone name.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit cdd4615e068c7f194a4ff9e88aa1109575259828
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 22:11:13 2026 -0400

    Compass Forever v1.3 prep: Thousand Needles back, editing for the author only

    Thousand Needles' previous built-in lines are restored (as of 0ac7849).
    The Walls and Roads tools, their options and /cf edit only show on the
    author's own characters (ns.CanEdit). A zone built in again is forgotten
    in db.returned, so taking it out another time hands it back. TOC 1.3 and
    the v1.3 changelog.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 239635057f34d8c27e5a59621965f3eee7ae2439
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 22:00:37 2026 -0400

    Build in Eastern Kingdoms; fly only between learned flight points

    Every Eastern Kingdoms zone's hand-drawn walls, roads and zone lines are
    baked in. Forever's flight map lists a faction's every point, and the
    distant (unlearned) ones were counted as known, so routes could fly to a
    flight master never met: only current and reachable points count now,
    distant ones are forgotten, and the lists start over (TAXI_VERSION 3).
    Thousand Needles is taken back out to be reworked.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 0ac7849b2600a41cb0c084d52b3a2ffebd333f76
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 19:59:48 2026 -0400

    Plan a zone's route from where a flight lands; always learn its flight masters

    ns.FlightLandings lists the known flight points in or by a zone a flight
    reaches, with their time; StartRoute plans from each against walking in
    and keeps the quickest. Unlearned flight masters in the zone are always
    stops (the 800 yd detour cap is gone), picked by the zone their name gives
    rather than the zone map's rectangle. A player not placed on the zone's
    map is placed through the continent's, so the walk in counts.

    Co-Authored-By: Chairface Chippendale
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 5b1a14a4048e1833fd5fc97481ddd5c0b4de0263
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 19:52:10 2026 -0400

    Build in the redrawn Un'Goro and Thousand Needles

    Baked with --replace from the 19:49 save (Un'Goro 14 walls, 2 zone lines;
    Thousand Needles 58 walls, 3 roads, 3 zone lines); both leave
    Data/Returned.lua. Every Kalimdor area reaches every other. The hand-back
    tests now use a made-up returned zone.

    Co-Authored-By: Chairface Chippendale
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 0723b5bbff6f60ebadc9d57a5eed29b4a014f652
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 19:47:58 2026 -0400

    Take Thousand Needles back out to be redrawn; tools/unbake.py

    unbake.py moves zones' built-in lines to Data/Returned.lua (handed back at
    login); bake_edits.py takes a re-baked zone out of it again.

    Co-Authored-By: Chairface Chippendale
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit d4d025a0f1e0e0ff3394211db32b5f018bf523eb
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 19:46:35 2026 -0400

    Take Un'Goro back out of the built-in lines, handed back to edit

    Its 12 walls and 2 zone lines move from Data/Walls.lua and ZoneLines.lua
    to Data/Returned.lua; at login Edits.lua copies them into the player's own
    lines once (db.returned) and clears the zone's done mark.

    Co-Authored-By: Chairface Chippendale
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 80f3fe3b1f426873c0eb9cbd5bc3f2a4e29bfee7
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 19:43:34 2026 -0400

    Durotar redone: its built-in lines replaced by the new set

    bake_edits.py --replace puts a zone's saved lines in place of its built-in
    ones. Durotar now has 14 walls, 9 roads and 2 zone lines; Thunder Ridge
    and Drygulch Ravine's cave are reachable (the cave by the narrow path).

    Co-Authored-By: Chairface Chippendale
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit ed1aa1c08ebcb4166f7d6ad133e20fe787be8290
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 19:38:57 2026 -0400

    Build in Kalimdor's hand-drawn lines; Drygulch Ravine's cave is its entry

    bake_edits.py now adds saved lines to what a zone has built in (the saved
    ones are only the player's own), so Durotar keeps its earlier lines. All
    20 Kalimdor zones baked from the 19:28 save. Areas.lua gets ENTRY: areas
    credited at one place only (Drygulch's cave), routed there and arrived at
    only there. Tests: terrain comparisons run without built-in lines, the
    planner's wall test moved to Elwynn.

    Co-Authored-By: Chairface Chippendale
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit c15f5e951bae4f74d4481d5f26fa1d7957261dc5
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 19:12:53 2026 -0400

    Portal and boat links to Rut'theran Village

    ns.LINKS (Crossing.lua) joins Darnassus and Rut'theran by the portal (ends
    from the client's area triggers 527 and 542) and Auberdine to Rut'theran by
    boat; Pathing lays them over the graph at their time's cost and tags the
    boarding point, so the arrow says to take them. The A* road heuristic now
    looks at drawn roads only. build_graph.py no longer reads Data/Spots.lua.

    Co-Authored-By: Chairface Chippendale
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 0a7ba18fbc44814e80f99a941ce0af4a7c0977d0
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 18:54:24 2026 -0400

    Remove spots and sharing

    Spots mode, Spot here, moved and learned spots, the learnSpots option and
    the shipped Data/Spots.lua are gone; routes go by area outlines. Share.lua,
    its button and /cf share are gone. Spots.lua is now Edits.lua: hand-mapped
    zones and credit, which is still recorded (keyed like the outlines, so
    map-only areas get it too). Old saved spots are dropped at login.

    Co-Authored-By: Chairface Chippendale
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 3d603ca1d23cc98b0a864cb6a0d6d63e6aa28767
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 18:48:34 2026 -0400

    Map pieces no criterion names become areas: Shen'dralas's middle and six more

    build_data.py adds the current map art's overlays that no criterion
    matched (by area, or by position for renamed ones) as mapOnly nodes after
    each zone's others; build_areas.py outlines them under "o" .. overlay.
    The terrain cost index skips them unless its matrices include them.

    Co-Authored-By: Chairface Chippendale
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 6c9617124d9603b99c20cc22f2b5adf0a60bbe11
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 17:56:43 2026 -0400

    Right-click removes one segment of a wall or road; Shift for the whole line

    SegmentAt and CutSegment now serve both this and the Ctrl-click swap to
    zone lines.

    Co-Authored-By: Chairface Chippendale
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 4cf91d7766e69d002bed66eba10793413a56c28d
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 17:38:44 2026 -0400

    Ctrl-click a wall segment to turn it into a zone line, and back

    The nearest segment of a wall or zone line under the cursor switches kind;
    its line is split round it so the pieces meet end to end.

    Co-Authored-By: Chairface Chippendale
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 3f3e136235677752cc34fd60e246f6a22f989b74
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 17:36:46 2026 -0400

    Move the Clear button off the Done mapping box

    It sat on the box's panel at the map's top-left; it now sits just right
    of it on the same row.

    Co-Authored-By: Chairface Chippendale
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 69d0bbbfe0e1142816050b3c0d59d8c9e7c0f339
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 17:34:43 2026 -0400

    Show every area border while drawing walls or roads

    Drawing mode used to hide the outlines; now it shows all of them,
    uncovered ones included, regardless of the border options.

    Co-Authored-By: Chairface Chippendale
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 3b7b02c3270b77446b66569263b08fae827a39e9
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 17:32:53 2026 -0400

    Clear button for all of a zone's walls, zone lines or roads

    Shown over the map while drawing; clears the kind being drawn in the shown
    zone (the player's own lines) on a second click within four seconds.

    Co-Authored-By: Chairface Chippendale
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit bd15739371a03b90251fa3ba7b629cacc84e3b57
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 17:21:55 2026 -0400

    Plan the flight once you're placed off a zeppelin, not never

    Coming off a zeppelin the stop changes while the game can't place you, so
    PlanTravel gave up and nothing asked again. It now says "unplaced" and is
    asked again next second; flying is reconsidered every ten seconds too.

    Co-Authored-By: Chairface Chippendale
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit f8c15af2ed8ee5b37f332e8ac281fe382f54d40d
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 17:19:47 2026 -0400

    Area outlines for every zone; borders options; world map markers off

    build_areas.py now builds all zones (548 areas, Undercity has no ground).
    Uncovered areas keep a faint outline; options hide all borders or just the
    uncovered ones. World map markers default off, switched off once.

    Co-Authored-By: Chairface Chippendale
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 820fae98f60f29d8663df5a4b5556488b8e9df2a
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 17:11:14 2026 -0400

    Name Mulgore's areas under the cursor and drop their markers

    In the window, an area with an outline shows its name on hover and routes
    on click, in place of its marker. Outlines win over moved spots.

    Co-Authored-By: Chairface Chippendale
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 3affd4b43f2a4fd7077502ed9a4f14bdc0c3f423
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Tue Oct 13 17:02:02 2026 -0400

    Head for each area's nearest edge in Mulgore, from outlines read off the terrain

    tools/build_areas.py traces every Mulgore area's chunks into outline rings
    and picks standing points just inside the edge (Data/Areas.lua). The
    planner chooses among those, so a route enters each area where it's
    nearest; arriving is being anywhere inside. The window draws the outlines.

    Co-Authored-By: Chairface Chippendale
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 0ba09d411817a232ef01860ba63d854f63119644
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 18:59:40 2026 -0400

    Find walking paths over a prebuilt waypoint graph instead of the terrain grid

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 37a615643522a07fa450fdb41280f674e6c35041
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 18:47:44 2026 -0400

    Skip progress refreshes that change nothing; /cf perf to measure costs

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit aed2e21d15516e73ff7cc83602ce21d9d920cbb5
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 18:26:00 2026 -0400

    Stop path searches thrashing: a path per target, nothing rebuilt when unchanged

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 397f03faae05c0e80005650f5df02ac32d8d72d7
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 18:17:52 2026 -0400

    Known flight points from the flight map only; the world map's list calls every point known

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 34e6a29b471d7ee34c2cc834e119293369853fb3
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 18:03:02 2026 -0400

    Pick the new flight master quickest to reach, flights included

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit f41c79bef68275ec63e1fb7d1e7f052593511845
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 17:52:57 2026 -0400

    Route to the nearest flight master not yet learned

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit ee9f3634ecd9162a46610d8effd42bed51627284
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 17:50:01 2026 -0400

    Continent and Azeroth maps: only an I'm here! tag on your zone

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 03cbf422904efc4228d77f297c41bee92a9f8a99
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 17:42:32 2026 -0400

    Zone lines: walls for paths inside the zone only

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 659080066e312704b0edcb46ded5aaf03a2a3bd8
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 17:35:38 2026 -0400

    Guide across continents by the nearest zeppelin or boat

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 1556a3691a33945b43f418dd3df84fd8b08a97b3
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 16:53:45 2026 -0400

    Route editing as a player feature, with sharing by text

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 09a82106efb52aa94cf3cdccea7c7e1a3f30e05a
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 16:40:47 2026 -0400

    A click on an area routes to that area alone; Start route for the zone

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit d27e7efe6baae3957e3983d1872c72232e87d047
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 16:33:57 2026 -0400

    Route to any clicked area, uncovered ones too

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 55a5ffb3ce63290603f43892e317c6155b43bc51
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 16:31:34 2026 -0400

    Spot here button and Shift-click to move a spot to where you stand

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 61a364ed6bef9c5fd964c28213bb5ba45070afdc
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 16:28:50 2026 -0400

    Redraw world map markers whenever the shown map changes

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit b5140ac6c7dee5e0097dd1d9678d32c53b21c8f2
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 16:22:40 2026 -0400

    Read uncovered areas per character from the map, not the account-wide achievements

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 54f3d6b013cea3e5bd4a4c4dc22cb939931ded93
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 16:08:03 2026 -0400

    Build in Tirisfal Glades' walls, roads and spots

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 38e7e18b154d81e120d38e08aee03afe15e17773
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 15:53:13 2026 -0400

    Lead a ghost back to the corpse; smaller minimap button; no Done badges on continents

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit d746aa1a9eba8cfa0f785ba7604682d2aeda0969
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 14:52:24 2026 -0400

    Mark zones done mapping; show hand-mapped zones in purple

    A tick box on the map's corner (zone views) sets db.finished[ach]; the
    zone list and title show a gold * for it. Zones with shipped walls, roads
    or spots (ns.ZoneHandMapped) have their names in purple. At login a zone
    marked done that is built in with nothing of its own left loses the mark.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit cd6ffd7e335bd30329e8ae3a3d62935d767f811e
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 14:49:31 2026 -0400

    Build in Durotar's hand-made walls, roads and spots

    tools/bake_edits.py copies a zone's walls, roads and moved spots from the
    saved variables into Data/Walls.lua, Data/Roads.lua and the new
    Data/Spots.lua (Durotar: 17 walls, 14 roads, 7 spots). Paths now use the
    shipped lines plus the player's own; only the player's own are drawn and
    edited (ns.OwnLines). Shipped spots apply unless moved again. At login,
    saved copies equal to shipped ones are dropped. Tests that drew their own
    walls and roads moved from Durotar to Mulgore.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit a850d1e4bcdb55f2d2c26b3df34047db3a3147b1
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 14:43:12 2026 -0400

    Stop music button can be dragged and stays where it's put

    Movable and clamped to the screen; its spot is kept in db.mutePoint and
    restored when it's built. A click within 0.2 s of a drop is ignored so
    letting go after a drag doesn't stop the music.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 1bdcff8b23c92ae35f1331ec27ea0327c801a65c
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 14:41:59 2026 -0400

    Minimap button at twice the size

    After LibDBIcon builds it, the button, its border ring, background and
    icon are each doubled from the size and anchor offset it gave them, so
    the ring stays lined up. Scaling the button instead would double its
    distance from the minimap's centre.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 0cf23d820b92ed0806fc03f272f1e8f00331834a
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 14:33:11 2026 -0400

    Me keeps the map centered on you as you move

    Follow mode: after Me, DrawPlayer (every 0.1 s) recenters the canvas on
    the player, and when the map you're on changes it runs Me again for the
    new one. Dragging, opening another map (ResetZoom) or clicking Me again
    stops it; the button shows blue while following. Tests: follows, crosses
    into Stormwind, stops on opening another map.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 72c6de183c2f944399fcbf01312e571bd3afc6a8
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 14:23:55 2026 -0400

    Window opens every map: cities and maps inside zones

    A "map" view shows any uiMap's art with the player and route lines but no
    areas. Targets on continent and zone maps now include any child map
    (GetMapInfoAtPosition), with hover tooltips; zoom out goes to the parent
    (zone, continent, Azeroth or another map). Opening with no route, and Me,
    use the map you're on when it isn't an exploration zone or continent.
    Tests: opening in Stormwind, zooming out, Me.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 15d5875b469bcfa1603ef12eb683efb5cfff2934
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 14:21:21 2026 -0400

    New fanfare, a Stop music button, and an option to turn it off

    Sounds/fanfare.ogg replaced with the user's "111 Fanfare" (48 s, Vorbis,
    converted with soundfile in 4096-frame blocks: one-shot writes crash the
    encoder). PlaySoundFile's handle is kept and a speaker button near the top
    of the screen stops it (StopSound) or hides after 48 s. db.fanfare (on)
    under Display.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 37cb6b23a6eee2b3bf1251c9acf015d746f9a1c3
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 14:08:21 2026 -0400

    Minimap.lua: tidy a comment's path

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 4f58e77bbbe69097ee82767702d59bfd7ff4723a
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 14:08:14 2026 -0400

    Minimap button: a compass arrow pointing the way

    The icon is Textures/arrow (the 64-turn sheet Arrow.lua uses), turned every
    0.1 s through the data object's iconCoords and colour, so LibDBIcon keeps
    drawing it: green toward the route's next stop (StopVector), gold toward
    the nearest covered area of the zone you're in (straight), gold and
    upright with nothing to point at. Attributes change only when the cell or
    colour does.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit b39f9f535edcf308ee5b196bac01988786d88c19
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 14:04:19 2026 -0400

    Option to show or hide walls and roads on the window's map

    showLines (on): off, DrawWalls draws nothing unless wall or road mode is
    on. Pathing is unaffected.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 91aaddb203ab3e08deb194ff80078cc28af0e959
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 14:03:40 2026 -0400

    Move spots by hand; record and learn where credit is given

    Spots.lua: db.spots[criteria] overrides an area's terrain spots (NodePoints;
    the planner uses straight lines for it, having no walking costs). The
    window's Spots mode makes markers draggable, right-click resets. On each
    progress change in the zone you're in, newly uncovered areas record where
    you were (db.credit, captured at the event itself, before the 0.3 s
    batching), print it, show a cyan dot, and on a route move the spot there
    (learnSpots, on).

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 71a9fc56f1d8cef3e140968d78947835c8640ac8
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 13:48:16 2026 -0400

    Roads drawn by hand: paths keep to them

    Road mode (Roads button, beside Walls) draws polylines into
    CompassForeverDB.roads[ach] (shipped ones in Data/Roads.lua), shown lime
    green. They mark continent grid points (with a point either side); a step
    between two of them costs 0.25 of a plain one whatever the terrain says,
    and the A* estimate drops to that factor when any are drawn, so it stays
    admissible. The wall editor is now shared by both kinds (editKind).
    Test: a U-shaped road is followed round its bend.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 14ed12d3d1d8435328a3b335978604eb5961d774
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 13:43:56 2026 -0400

    Wall mode: keep the area markers, click-through

    Markers were hidden in wall mode so they wouldn't catch the clicks that
    draw walls. They now stay drawn with the mouse turned off, and get it
    back when wall mode ends.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 22de3e6ead99296e5cf405b3aa8efdcbcff98ef0
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 13:41:22 2026 -0400

    Wall mode shows the whole zone uncovered

    Drawing walls needs to see the ground: in wall mode DrawArt lays every
    node's art over the zone in full color instead of graying the covered
    ones. Leaving wall mode redraws the real progress.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 11eb0988a2151a1ae4407d3cd04b3be66792f4bc
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 13:37:25 2026 -0400

    World map gray shading as its own option

    The covered areas drawn desaturated on the game's world map were only
    drawn with mapPins on. worldMapGray (on) now decides them separately, so
    the map can show what's left in gray without the markers and route bar.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 5946450f12b1652407c62e8a6aca436d30aa500e
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 13:36:19 2026 -0400

    Window resize grip (keeps the window's shape)

    Dragging the bottom-right grip scales the frame (0.6 to 2) with its top
    left held in place; the scale is kept as db.windowScale and restored on
    build, alongside the saved position.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit f2a1d0b5e41a82213d2c24504bb941f4ce1f7c92
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 13:35:24 2026 -0400

    Walls: confirm each finished wall; test separate chains

    Right-click already ended a chain; finishing one now says so in chat
    ("Wall added (N in zone)"), so it's clear the next left-click starts a
    new wall. WallClick takes test coordinates (ns.WindowWallClick), and the
    harness draws two separate walls and a circle, then removes one wall.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit af70dee7ae6d0b604aed2cb2a75ddb2163a8500a
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 13:33:32 2026 -0400

    Wall circles: no path enters them

    Walls can be { circle = { x, y, yards } }: every continent grid step to
    or from a point inside is cut, and thinning keeps a corner rather than
    run a straight line through the ellipse. In wall mode, Shift-click sets
    the middle, a second Shift-click the edge (a ring follows the cursor
    meanwhile); right-click inside removes it. Test: the Durotar path goes
    round a 120-yard circle (nearest 133 yd).

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 8db17797c021d3c53b52da22aa8f98738b438c85
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 13:31:15 2026 -0400

    Fix the window build going over Lua 5.1's 60-upvalue limit

    14f6fd1 added a sixth new upvalue to Build ("function at line 1039 has
    more than 60 upvalues"), which would stop UI.lua loading in game. The
    Map only pieces (left side, under-map group, border, button, title) are
    now fields of the window frame instead of file locals.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 14f6fd1529b2399f40a1756db2234b1fd4b3a18c
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 13:30:17 2026 -0400

    Map only: the Explorer bar fits between the title and the buttons

    Its fixed 150-wide bar let the centered text run into Full view. In Map
    only the bar is anchored from the title to the buttons and drops the
    "Explorer:" prefix; bar text is now held inside the bar everywhere.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 8bea37970d56be46ec24b90c3d633f5c28fbda73
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 13:28:58 2026 -0400

    Open instead of the world map; Map only view

    replaceWorldMap (off): override bindings send each TOGGLEWORLDMAP key to
    a click on CompassForeverMapKey, which toggles the window; reapplied on
    login and UPDATE_BINDINGS, deferred past combat. mapOnly: the left side
    and the under-map text and buttons now sit in their own frames, hidden
    together; the map moves to the left edge and the window shrinks to fit.
    Harness gains binding stand-ins and tests for the key.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 8d6daa26ea1e4b53a5c2e89fbca4fc886f06b29b
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 13:26:19 2026 -0400

    Walls drawn on zone maps block walking paths

    Wall mode on the window's map: left-click adds corners, right-click
    finishes (or removes the wall under the cursor). Walls are zone-map
    polylines in CompassForeverDB.walls[ach] (copied from Data/Walls.lua on
    the first edit), cut into the continent grid's steps they cross; both
    the continent and zone searches refuse those steps, and path thinning
    keeps a corner rather than cut through a wall. Editing forgets found
    paths. Flights are untouched. The precomputed walking costs used to
    order stops don't know walls until rebuilt.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit a65f72f150103bbfcd038f30f37946ecc90970b8
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 13:20:06 2026 -0400

    Count an area only once the map shows it; spots on ground both count

    Durotar's achievement checks overlay 258 (Drygulch Ravine + Razorwind
    Canyon), the redrawn map overlay 5358 (Drygulch Ravine only), so
    standing in Razorwind ticked the criterion and left the map gap.
    ZoneState now demotes a ticked node whose art is missing from
    GetExploredMapTextures, where that list matches the zone's data at all.
    build_data picks spots from the areas both overlays share (31 areas
    narrowed, none widened) and the data is rebuilt.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit b2ab602c61cd4c340eb65bc78c448052b7ade7f1
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 13:13:48 2026 -0400

    Window map: Me button centers on you in your zone

    Beside + and -: opens the zone you are in (ns.CurrentZone), zooms to 2x
    if at full size, and centers the canvas on your position. The trail's
    room is narrowed by the button's width.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 1dfbef5fa5c4c20b486ac434b9197afc8637cf5d
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 13:10:10 2026 -0400

    Fix the minimap route error on starting a route

    "cont and geometry and ns.PlayerOn(...)" kept only PlayerOn's first
    value, so py was nil and Screen threw. Both values are read now, and the
    route is skipped unless both are known.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

commit 558565db6e0569393b135c510621767055fa9c2b
Author: Chairface30 <chairfaceserverop@gmail.com>
Date:   Mon Oct 12 13:08:02 2026 -0400

    Draw the route on the minimap

    MinimapRoute.lua: an overlay on the Minimap draws RouteGeometry's parts
    around the player in yards (continent fractions x CONTINENT_YARDS), scaled
    by C_Minimap.GetViewRadius or the zoom table, rotated by GetPlayerFacing
    when rotateMinimap is on, clipped to the round or square edge; stops in
    reach get a dot. Lines follow the player every 0.05 s, the geometry is
    asked for again each second and on route/settings/progress. Option
    minimapRoute (on), under Display.

    Co-Authored-By: Chairface Chippendale <chairfaceserverop@gmail.com>
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This mod has no additional files