local f = CreateFrame("Frame") StaticPopupDialogs["GOLIATH_MISSING"] = { text = "Option to repair goliath not found; move closer", button1 = "Ok", OnAccept = function() C_GossipInfo.CloseGossip() end, timeout = 5, whileDead = false, hideOnEscape = true, preferredIndex = 3 } f:RegisterEvent("GOSSIP_SHOW") f:SetScript("OnEvent", function(self, event, ...) -- check if The Necrotic Wake local isNecroticWake = C_Map.GetBestMapForUnit("player") == 1666 -- check if Steward local guid = UnitGUID("npc") local isSteward = tonumber(guid and strsub(guid, 27, 32)) == 166663 if isNecroticWake and isSteward then options = C_GossipInfo.GetOptions() found = false for k, v in pairs(options) do if v['name'] == 'Can you reactivate this goliath?' then found = true C_GossipInfo.SelectOption(k) break end end if not found then StaticPopup_Show("GOLIATH_MISSING") end end end)