From 6d86a784e7c1e7b61627e02534ebf22561ac8917 Mon Sep 17 00:00:00 2001 From: Xurkon <36556990+Xurkon@users.noreply.github.com> Date: Sat, 21 Feb 2026 11:59:34 -0600 Subject: [PATCH] Set quest.isComplete when IsComplete==1 in GetAllQuestIds QuestieArrow._CollectQuestTargets checks quest.isComplete (the quest object field) to decide whether to collect finisher spawns or objective spawns. Without setting this field, the arrow fell through to objective collection and picked up the stale Cold Iron Key fake objective (CheckQuestSourceItem) which resolves to NPC 29323 at 39.8, 72.7. Now when QuestieDB.IsComplete returns 1, set quest.isComplete = true and quest.WasComplete = true before PopulateObjectiveNotes, so the arrow correctly routes to the finisher (Gretchen Fizzlespark) instead. --- Modules/Quest/QuestieQuest.lua | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Modules/Quest/QuestieQuest.lua b/Modules/Quest/QuestieQuest.lua index d46cf27..a2be8ff 100644 --- a/Modules/Quest/QuestieQuest.lua +++ b/Modules/Quest/QuestieQuest.lua @@ -781,7 +781,13 @@ function QuestieQuest:GetAllQuestIds() -- Only draw the source item objective when the quest is not yet complete. -- If the quest is complete (complete == 1), the source item was consumed during -- the quest (e.g. Cold Iron Key for quest 12843) and should not draw its drop NPC. - if complete ~= 1 then + if complete == 1 then + -- Mark the quest object as complete so QuestieArrow collects finisher spawns + -- instead of objective spawns. Without this, the arrow falls through to the + -- objective collection path and picks up any stale fake item objectives. + quest.isComplete = true + quest.WasComplete = true + else QuestieQuest:CheckQuestSourceItem(questId, true) end QuestieQuest:PopulateQuestLogInfo(quest)