diff --git a/docs/changelog.html b/docs/changelog.html new file mode 100644 index 0000000..f6b368d --- /dev/null +++ b/docs/changelog.html @@ -0,0 +1,273 @@ + + +
+ + +Complete history of changes, fixes, and additions.
+ +Developer documentation for Project Ascension & Project Ebonhold compatibility layers and core engine refinements.
+Developer documentation for Project Ascension & Project Ebonhold compatibility layers and + core engine refinements.
To support custom servers without polluting the base WotLK database, Questie now implements a modular override system. This allows custom quests, NPCs, and objects to be defined in a safe namespace that persists across upstream updates.
+To support custom servers without polluting the base WotLK database, Questie now implements a modular + override system. This allows custom quests, NPCs, and objects to be defined in a safe namespace that + persists across upstream updates.
Database/Ebonhold/
@@ -185,7 +196,9 @@
└── EbonholdNpcDB.lua # Custom NPC spawn overrides
The system hooks into QuestieDB:Initialize(). Instead of modifying QuestieDB.questData directly, it populates the override tables which are checked during quest retrieval.
The system hooks into QuestieDB:Initialize(). Instead of modifying
+ QuestieDB.questData directly, it populates the override tables which are checked during
+ quest retrieval.
-- EbonholdLoader.lua snippet
local function InjectOverrides()
for id, data in pairs(EbonholdDB.questData) do
@@ -197,33 +210,43 @@ end
Restored "Auto Nearby" logic which points to the closest available quest when the player has no active tracking list. Features Zone Filtering to prevent the arrow from pointing to distant continents when in auto-mode.
+Restored "Auto Nearby" logic which points to the closest available quest when the player has no + active tracking list. Features Zone Filtering to prevent the arrow from + pointing to distant continents when in auto-mode.
The tracker update loop is now protected with pcall. This prevents malformed quest data (like the "Fel Orc Scavengers" bug) from crashing the entire UI and hiding unrelated quests.
The tracker update loop is now protected with pcall. This prevents malformed quest
+ data (like the "Fel Orc Scavengers" bug) from crashing the entire UI and hiding unrelated
+ quests.
Custom server quests often use auto-complete triggers which can bypass Questie's standard cleanup events. We implemented a two-tier cleanup strategy:
+Custom server quests often use auto-complete triggers which can bypass Questie's standard cleanup events. + We implemented a two-tier cleanup strategy:
QuestComplete to catch lingering frames.AvailableQuests.lua that audits the map for icons belonging to finished quests.QuestComplete to catch
+ lingering frames.AvailableQuests.lua
+ that audits the map for icons belonging to finished quests.For large-scale "kill count" quests (e.g., 75 Dragonkin), we utilize the killCreditObjective pattern. This allows a single quest objective to be mapped to a dynamic list of NPC IDs.
For large-scale "kill count" quests (e.g., 75 Dragonkin), we utilize the killCreditObjective
+ pattern. This allows a single quest objective to be mapped to a dynamic list of NPC IDs.
killCreditObjective (Index [10][5]) ensures that all participating NPC spawns appear on the map, but only one counter appears in the tracker.
+ Developer Note: Using killCreditObjective (Index [10][5]) ensures that all
+ participating NPC spawns appear on the map, but only one counter appears in the
+ tracker.
-- Example implementation (EbonholdQuestDB.lua)
@@ -246,7 +269,8 @@ end
When Questie encounters a Quest ID that exists in the player's log but is missing from the local database, it triggers a Runtime Learning event.
+When Questie encounters a Quest ID that exists in the player's log but is missing from the local + database, it triggers a Runtime Learning event.
GetQuestLogTitle(index) for the missing ID.QuestieLearner:OnQuestAccepted to populate overrides.