promotional bannermobile promotional banner

Quest Master

QuestMaster is a comprehensive, standalone quest helper addon designed specifically for World of Warcraft.It provides everything you need to efficiently complete quests: a navigation arrow, distance tracking, world map pins, and an enhanced quest tracker.

File Details

QuestMaster.zip

  • R
  • Mar 7, 2026
  • 14.19 MB
  • 9
  • 5.5.3+3
  • Classic + 3

File Name

QuestMaster.zip

Supported Versions

  • 5.5.3
  • 3.80.0
  • 2.5.5
  • 1.15.8

fixed some issues :)

1. DatabaseLoader.lua — Data lookups created new tables every time.

GetQuest(), GetNPC(), GetNPCSpawnLocations(), GetQuestObjectiveLocations(), etc., created new tables with each call. These were called hundreds of times per update cycle.

Fix: All results are now cached. The data is immutable (from the database), so it's safe to cache.


Fix: All results are now cached. 2. Arrow.lua — OnUpdate Hot Path (every 0.1s)

string.format("%.1f " .. L["KILOMETERS"]) generated new strings every frame.

AutoSelectBestWaypoint() (every 2.5s) had triple-nested loops that generated dozens of new waypoint tables per iteration.

pairs() generated iterator states using speed samples.

Fix: Pre-computed format strings, waypoint tables are reused, distance text is only updated when the value changes, fixed-range loop instead of pairs().

3. QuestTracker.lua — Closure creation per quest per update
UpdateQuestFrame() called SetScript() four times per quest — each call created a new closure that the garbage collector had to clean up. With 15 quests, this resulted in 60 closures per tracker update.



``` Fix: Event handlers are now defined as shared top-level functions. Additionally, sort comparators are defined once instead of as closures, and quest lists are reused instead of being regenerated.

4. QuestMaster.lua — HBD World-Coordinate Conversions
GetDistanceToPoint() called HBD:GetWorldCoordinatesFromZone() for each static target location on every call.

Fix: World coordinates for static locations are now cached.

Expected improvement: CPU performance reduced from ~20ms/s to <2ms/s, eliminating GC-related micro-stuttering.