feat: Questie-X v1.1.4 - plugin architecture, monorepo, rebranding

- Repoint remote to Xurkon/Questie-X
- Add QuestiePluginAPI, QuestieServer, QuestieLearnerComms modules
- Add Questie-X.toc, Questie-X-Classic.toc, Questie-X-TBC.toc, Questie-X-Turtle.toc
- Remove embedded Database/Ascension and Database/Ebonhold (migrated to plugins)
- Add Plugins/ directory with NTFS junctions for Questie-X-AscensionDB and Questie-X-EbonholdDB
- Add LibDeflate, XXH_Lua_Lib, LibDBIcon-1.0, LibDataBroker-1.1
- Update README: Questie-X branding, logo, plugin install guide, plugin API docs
- Update CHANGELOG: v1.1.4 entry documenting all architectural changes
- Update .gitignore: exclude plugin junctions, __pycache__, .agents, debug files
- Various module updates: corrections, map, tracker, tooltips, quest, options
This commit is contained in:
Xurkon
2026-03-14 06:10:17 -05:00
parent 89c3b3173d
commit c4d003e58f
77 changed files with 10883 additions and 8264 deletions
-347
View File
@@ -1,347 +0,0 @@
---@class AscensionLoader
---@type table
local AscensionLoader = QuestieLoader:CreateModule("AscensionLoader")
---@type QuestieDB
local QuestieDB = QuestieLoader:ImportModule("QuestieDB")
---@type table
local AscensionDB = QuestieLoader:ImportModule("AscensionDB")
_G.AscensionDB = _G.AscensionDB or AscensionDB
local _overridesInjected = false
local _zonesApplied = false
local function _LoadIfString(data, label)
if not data then return nil end
if type(data) == "string" then
local fn, err = loadstring(data)
if not fn then
if Questie and Questie.Debug then
Questie:Debug(Questie.DEBUG_CRITICAL, "[AscensionLoader] loadstring failed for " .. tostring(label) .. ": " .. tostring(err))
end
return nil
end
local ok, tbl = pcall(fn)
if not ok then
if Questie and Questie.Debug then
Questie:Debug(Questie.DEBUG_CRITICAL, "[AscensionLoader] executing chunk failed for " .. tostring(label) .. ": " .. tostring(tbl))
end
return nil
end
return tbl
end
return data
end
local function _MergeInto(dst, src)
if type(dst) ~= "table" or type(src) ~= "table" then return end
for id, entry in pairs(src) do
dst[id] = entry
end
end
-- Apply Ascension custom uiMapId->areaId mappings into ZoneDB (used by map/Journey)
function AscensionLoader:ApplyZoneTables()
if _zonesApplied then return end
-- Skip if not on Ascension server (check if we should even be here)
if _G.IsAscensionServer == nil and (not Questie or not Questie.db or not Questie.db.profile or not Questie.db.profile.ascensionMode) then
-- Check if there's actual Ascension data - if quest IDs >= 100000, it's likely Ascension
local hasAscensionQuests = false
if AscensionDB and AscensionDB.questData then
for questId, _ in pairs(AscensionDB.questData or {}) do
if type(questId) == "number" and questId >= 100000 then
hasAscensionQuests = true
break
end
end
end
if not hasAscensionQuests then
_zonesApplied = true -- Mark as done to prevent rechecking
return
end
end
if not AscensionZoneTables or not AscensionZoneTables.uiMapIdToAreaId then return end
local ZoneDB = QuestieLoader:ImportModule("ZoneDB")
if not ZoneDB then return end
ZoneDB.private = ZoneDB.private or {}
ZoneDB.private.uiMapIdToAreaId = ZoneDB.private.uiMapIdToAreaId or {}
ZoneDB.private.areaIdToUiMapId = ZoneDB.private.areaIdToUiMapId or {}
ZoneDB.private.subZoneToParentZone = ZoneDB.private.subZoneToParentZone or {}
for uiMapId, areaId in pairs(AscensionZoneTables.uiMapIdToAreaId) do
if uiMapId and areaId then
-- Always set these mappings (remove the nil check to ensure they're set)
ZoneDB.private.uiMapIdToAreaId[uiMapId] = areaId
-- Ascension uses custom map ids for spawns/waypoints (e.g. 1238 for Northshire Valley).
-- QuestieMap draws by converting AreaId->UiMapId, so register these ids as self-mapping.
ZoneDB.private.areaIdToUiMapId[uiMapId] = uiMapId
-- Register subzone to parent zone mapping so GetParentZoneId works with Ascension zones
if uiMapId ~= areaId then
ZoneDB.private.subZoneToParentZone[uiMapId] = areaId
end
end
end
-- Also map parentMapIDs (e.g. 10138) to a usable uiMapId to avoid fallback errors.
if AscensionUiMapData and AscensionUiMapData.uiMapData then
for uiMapId, data in pairs(AscensionUiMapData.uiMapData) do
if uiMapId and ZoneDB.private.areaIdToUiMapId[uiMapId] == nil then
ZoneDB.private.areaIdToUiMapId[uiMapId] = uiMapId
end
if data and type(data.parentMapID) == "number" and ZoneDB.private.areaIdToUiMapId[data.parentMapID] == nil then
ZoneDB.private.areaIdToUiMapId[data.parentMapID] = uiMapId
end
end
end
-- Register zone sort names for custom zones
if AscensionZoneTables.zoneSort then
ZoneDB.private.zoneSort = ZoneDB.private.zoneSort or {}
for zoneId, zoneName in pairs(AscensionZoneTables.zoneSort) do
ZoneDB.private.zoneSort[zoneId] = zoneName
end
end
-- Clear cached zone lookups after adding custom zones
if QuestieDB and QuestieDB.private and QuestieDB.private.zoneCache then
QuestieDB.private.zoneCache = {}
end
-- Clear auto-blacklist since zone validation might have changed
if QuestieDB and QuestieDB.autoBlacklist then
QuestieDB.autoBlacklist = {}
end
_zonesApplied = true
end
-- Inject Ascension tables into QuestieDB *Overrides* so QueryQuestSingle/QueryNPCSingle can see them
function AscensionLoader:InjectOverrides()
if _overridesInjected then return end
-- Ascension data should only load on Ascension servers
-- Check if this is an Ascension server by looking for a global or profile setting
local isAscension = false
-- Method 1: Check for Ascension-specific global (servers may set this)
if _G.IsAscensionServer then
isAscension = true
end
-- Method 2: Check profile setting
if Questie and Questie.db and Questie.db.profile and Questie.db.profile.ascensionMode then
isAscension = true
end
-- Method 3: Check if there's actually Ascension quest data loaded
-- (this is a fallback - if AscensionDB has real data, use it)
if not isAscension and AscensionDB and AscensionDB.questData then
local questDataType = type(AscensionDB.questData)
-- If it's a table with entries, it's likely real Ascension data
if questDataType == "table" then
local hasData = false
for _ in pairs(AscensionDB.questData) do
hasData = true
break
end
if hasData then
-- Only use Ascension data if quest ID ranges suggest it's not standard WoW
-- Standard WoW quest IDs are typically < 100000
for questId, _ in pairs(AscensionDB.questData) do
if type(questId) == "number" and questId >= 100000 then
isAscension = true
break
end
end
end
end
end
if not isAscension then
-- Not an Ascension server, skip loading Ascension data
_overridesInjected = true -- Mark as done to prevent rechecking
return
end
_overridesInjected = true
-- Apply zone tables FIRST, before any ZoneDB functions use the local variables
AscensionLoader:ApplyZoneTables()
QuestieDB.npcDataOverrides = QuestieDB.npcDataOverrides or {}
QuestieDB.objectDataOverrides = QuestieDB.objectDataOverrides or {}
QuestieDB.itemDataOverrides = QuestieDB.itemDataOverrides or {}
QuestieDB.questDataOverrides = QuestieDB.questDataOverrides or {}
local npcData = _LoadIfString(AscensionDB and AscensionDB.npcData, "AscensionDB.npcData")
local objectData = _LoadIfString(AscensionDB and AscensionDB.objectData, "AscensionDB.objectData")
local itemData = _LoadIfString(AscensionDB and AscensionDB.itemData, "AscensionDB.itemData")
local questData = _LoadIfString(AscensionDB and AscensionDB.questData, "AscensionDB.questData")
_MergeInto(QuestieDB.npcDataOverrides, npcData)
_MergeInto(QuestieDB.objectDataOverrides, objectData)
_MergeInto(QuestieDB.itemDataOverrides, itemData)
_MergeInto(QuestieDB.questDataOverrides, questData)
-- Keep a lightweight list of custom quest ids for search/UI (DO NOT touch QuestPointers; those are numeric stream pointers)
if type(questData) == "table" then
QuestieDB.ascensionQuestIds = QuestieDB.ascensionQuestIds or {}
for questId, _ in pairs(questData) do
if type(questId) == "number" then
QuestieDB.ascensionQuestIds[questId] = true
end
end
end
-- Keep a lightweight list of custom NPC ids for search/UI
if type(npcData) == "table" then
QuestieDB.ascensionNpcIds = QuestieDB.ascensionNpcIds or {}
for npcId, _ in pairs(npcData) do
if type(npcId) == "number" then
QuestieDB.ascensionNpcIds[npcId] = true
end
end
end
-- Keep a lightweight list of custom object ids for search/UI
if type(objectData) == "table" then
QuestieDB.ascensionObjectIds = QuestieDB.ascensionObjectIds or {}
for objectId, _ in pairs(objectData) do
if type(objectId) == "number" then
QuestieDB.ascensionObjectIds[objectId] = true
end
end
end
-- Keep a lightweight list of custom item ids for search/UI
if type(itemData) == "table" then
QuestieDB.ascensionItemIds = QuestieDB.ascensionItemIds or {}
for itemId, _ in pairs(itemData) do
if type(itemId) == "number" then
QuestieDB.ascensionItemIds[itemId] = true
end
end
end
end
-- Hook ZoneDB.Initialize to inject custom zones BEFORE standard zones are processed
do
local ZoneDB = QuestieLoader:ImportModule("ZoneDB")
if ZoneDB then
local originalZoneInitialize = ZoneDB.Initialize
if type(originalZoneInitialize) == "function" then
function ZoneDB:Initialize(...)
-- Apply custom zones FIRST, before standard zone processing
AscensionLoader:ApplyZoneTables()
-- Then initialize standard zones
return originalZoneInitialize(self, ...)
end
end
end
end
-- Hook QuestieDB.Initialize to guarantee timing for overrides
do
local originalInitialize = QuestieDB and QuestieDB.Initialize
if type(originalInitialize) == "function" then
function QuestieDB:Initialize(...)
-- 1) Inject overrides before the DB handles are created
AscensionLoader:InjectOverrides()
local ret = originalInitialize(self, ...)
-- 2) Refresh Journey caches (zoneMap/zones) so "Quests by Zone" sees the new data
local ZoneDB = QuestieLoader:ImportModule("ZoneDB")
local QuestieJourney = QuestieLoader:ImportModule("QuestieJourney")
if ZoneDB and QuestieJourney then
QuestieJourney.zoneMap = ZoneDB:GetZonesWithQuests(true)
QuestieJourney.zones = ZoneDB:GetRelevantZones()
-- Clear the UI cache so the tree gets rebuilt
if QuestieJourney.private then
QuestieJourney.private.treeCache = nil
QuestieJourney.private.lastZoneSelection = {}
end
-- If the Journey window is open, rebuild the current tab
if QuestieJourneyFrame and QuestieJourneyFrame:IsShown() and QuestieJourney.tabGroup then
local p = QuestieJourney.private
if p and p.containerCache and p.lastOpenWindow then
p:HandleTabChange(p.containerCache, p.lastOpenWindow)
end
end
end
return ret
end
end
end
-- >>> NEW: Make QuestieDB.GetQuest work for Ascension override quests (Journey needs this)
do
local originalGetQuest = QuestieDB.GetQuest
if type(originalGetQuest) == "function" then
function QuestieDB.GetQuest(questId)
local q = originalGetQuest(questId)
if q then return q end
-- Fallback: build a minimal quest object from QueryQuestSingle (works with overrides)
local name = QuestieDB.QueryQuestSingle(questId, "name")
if not name then return nil end
local level = QuestieDB.QueryQuestSingle(questId, "level") or QuestieDB.QueryQuestSingle(questId, "questLevel")
local reqLevel = QuestieDB.QueryQuestSingle(questId, "requiredLevel") or QuestieDB.QueryQuestSingle(questId, "minLevel")
local desc = QuestieDB.QueryQuestSingle(questId, "objectiveText") or QuestieDB.QueryQuestSingle(questId, "description") or QuestieDB.QueryQuestSingle(questId, "details")
-- Build the Starts field from startedBy (CRITICAL for available quests to show icons!)
local startedBy = QuestieDB.QueryQuestSingle(questId, "startedBy")
local starts = {
NPC = startedBy and startedBy[1] or {},
GameObject = startedBy and startedBy[2] or {},
Item = startedBy and startedBy[3] or {},
}
-- Also get other fields needed for quest display
local finishedBy = QuestieDB.QueryQuestSingle(questId, "finishedBy")
local specialFlags = QuestieDB.QueryQuestSingle(questId, "specialFlags")
local isRepeatable = specialFlags and (bit.band(specialFlags, 1) ~= 0) or false
-- Questie modules expect these common fields
return {
Id = questId,
id = questId,
name = name,
level = level or reqLevel or 0,
requiredLevel = reqLevel or 0,
Description = desc, -- Journey tooltip reads quest.Description
Starts = starts, -- CRITICAL: AvailableQuests needs this!
finishedBy = finishedBy,
IsRepeatable = isRepeatable,
}
end
end
end
-- Ensure zones also get applied when Questie finishes loading (covers edge cases)
do
local f = CreateFrame("Frame")
f:RegisterEvent("ADDON_LOADED")
f:SetScript("OnEvent", function(_, _, name)
if name ~= "Questie-335" then return end
if C_Timer and C_Timer.After then
C_Timer.After(0, function() AscensionLoader:ApplyZoneTables() end)
else
AscensionLoader:ApplyZoneTables()
end
end)
end
return AscensionLoader
@@ -1,109 +0,0 @@
---@type table
local AscensionDB = QuestieLoader:CreateModule("AscensionDB")
AscensionDB.itemData = AscensionDB.itemData or {
--Elwynn Forest
[559159]={[1]="Oracular Idol",[2]={161717},[3]=nil,[4]=nil,[5]=1660036,[6]=nil,[7]=nil,[8]=nil,[9]=1,[10]=1,[11]=nil,[12]=nil,[13]=0},
[5055565]={[1]="Tattered Orders",[2]={991516},[3]=nil,[4]=nil,[5]=100074,[6]=nil,[7]=nil,[8]=nil,[9]=1,[10]=1,[11]=nil,[12]=nil,[13]=0},
[558956]={[1]="Elgris Blossom Petals",[2]=nil,[3]=nil,[4]=nil,[5]=nil,[6]=nil,[7]=nil,[8]=nil,[9]=0,[10]=0,[11]=nil,[12]=12,[13]=0,[14]={162814},[15]={1660056}},
[558957]={[1]="Dun Kazad Liquor Concentrate",[2]=nil,[3]=nil,[4]=nil,[5]=nil,[6]=nil,[7]=nil,[8]=nil,[9]=0,[10]=0,[11]=nil,[12]=12,[13]=0,[14]={162811},[15]={1660056}},
[558958]={[1]="Pumpkin Juice",[2]=nil,[3]=nil,[4]=nil,[5]=nil,[6]=nil,[7]=nil,[8]=nil,[9]=0,[10]=0,[11]=nil,[12]=12,[13]=0,[14]={162809},[15]={1660056}},
[558959]={[1]="Murloc Eyeball",[2]=nil,[3]=nil,[4]=nil,[5]=nil,[6]=nil,[7]=nil,[8]=nil,[9]=0,[10]=0,[11]=nil,[12]=12,[13]=0,[14]={162826},[15]={1660056}},
[558960]={[1]="Agria's Incomplete Potion",[2]=nil,[3]=nil,[4]=nil,[5]=nil,[6]=nil,[7]=nil,[8]=nil,[9]=1,[10]=1,[11]=nil,[12]=15,[13]=0,[14]=nil,[15]={1660056}},
[558961]={[1]="Pumpkin",[2]=nil,[3]={999014},[4]=nil,[5]=nil,[6]=nil,[7]=nil,[8]=nil,[9]=0,[10]=0,[11]=nil,[12]=0,[13]=5},
[558962]={[1]="Melon",[2]=nil,[3]={999013},[4]=nil,[5]=nil,[6]=nil,[7]=nil,[8]=nil,[9]=0,[10]=0,[11]=nil,[12]=0,[13]=5},
[558963]={[1]="Apple",[2]=nil,[3]={999015},[4]=nil,[5]=nil,[6]=nil,[7]=nil,[8]=nil,[9]=0,[10]=0,[11]=nil,[12]=0,[13]=5},
[157001]={[1]="Gem Encrusted Spider Silk",[2]={43},[3]=nil,[4]=nil,[5]=nil,[6]=nil,[7]=2048,[8]=nil,[9]=1,[10]=0,[11]=0,[12]=12,[13]=0,[14]=nil,[15]={17001}},
[157006]={[1]="Simple Crystal Vial",[2]=nil,[3]=nil,[4]=nil,[5]=nil,[6]=nil,[7]=0,[8]=nil,[9]=5,[10]=0,[11]=nil,[12]=12,[13]=0,[14]=nil,[15]={17003},[16]=157006},
[157002]={[1]="Depleted Mana Gem",[2]={474},[3]=nil,[4]=nil,[5]=nil,[6]=nil,[7]=nil,[8]=nil,[9]=1,[10]=1,[11]=nil,[12]=15,[13]=0,[14]=nil,[15]={17002}},
[157007]={[1]="Gnoll Sword",[2]={97},[3]=nil,[4]=nil,[5]=nil,[6]=nil,[7]=nil,[8]=nil,[9]=1,[10]=6,[11]=nil,[12]=15,[13]=0,[14]=nil,[15]={17004}},
[157008]={[1]="Gnoll Axe",[2]={478},[3]=nil,[4]=nil,[5]=nil,[6]=nil,[7]=nil,[8]=nil,[9]=1,[10]=10,[11]=nil,[12]=15,[13]=0,[14]=nil,[15]={17004}},
[157012]={[1]="Smudged Note",[2]=nil,[3]=nil,[4]=nil,[5]=nil,[6]=nil,[7]=0,[8]=nil,[9]=1,[10]=1,[11]=nil,[12]=15,[13]=0,[14]=nil,[15]={17005}},
[157014]={[1]="Mirror Lake Apple",[2]=nil,[3]={9017008},[4]=nil,[5]=nil,[6]=nil,[7]=nil,[8]=nil,[9]=1,[10]=8,[11]=nil,[12]=15,[13]=0,[14]=nil,[15]={17008}},
[559130] = {[1]="Lost Page I",[3]={900001},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660001}},
[559131] = {[1]="Lost Page II",[3]={900002},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660001}},
[559132] = {[1]="Lost Page III",[3]={900003},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660001}},
[559133] = {[1]="Lost Page IV",[3]={900004},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660001}},
--Dan Morogh
[254000] = {[1]="Security Bot AN-29",[2]={254004},[9]=1,[10]=0,[12]=12,[13]=0,[15]={254000}},
[254001] = {[1]="Security Bot AN-32",[2]={254005},[9]=1,[10]=0,[12]=12,[13]=0,[15]={254001}},
[559142] = {[1]="Radiant Armor Piece",[2]={161772},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660008}},
[559161] = {[1]="Contamination Extractor",[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660010}},
[559162] = {[1]="Radioactive Slime Mutagen",[2]={161776},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660010}},
[559163] = {[1]="Radiation Sprayer",[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660011}},
[558964] = {[1]="Thunderbrew Hop",[3]={2300550},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660077}},
[558950] = {[1]="Gornarn Blunderbuss",[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660079}},
[558965] = {[1]="Reusable Mechanical Parts",[2]={162888,162889,162890},[9]=0,[10]=0,[12]=12,[13]=0,[15]={1660078}},
[254002] = {[1]="Mirsinth's Totem",[2]={254006},[9]=1,[10]=0,[12]=12,[13]=0,[15]={254004}},
[662336] = {[1]="Frostpine Log",[3]={244620},[9]=1,[10]=0,[12]=12,[13]=0,[15]={500005}},
--Teldrassil
[559143] = {[1]="Cut of Good Meat",[3]={2300512},[9]=1,[10]=0,[12]=0,[13]=0,[15]={1660014}},
[559144] = {[1]="Good Flesh Amalgam",[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660015}},
[559145] = {[1]="Blessed Good Flesh Amalgam",[15]={1660015}},
--Durotar
[11584] = {'Cactus Apple Surprise',nil,nil,nil,nil,nil,nil,nil,5,0,0,4,0,nil,{254010}},
[254005] = {'Strange Flower',nil,{254001},nil,nil,nil,nil,nil,1,0,0,12,0,nil,{254008}},
[254006] = {'Xaitoth\'s Blood',{254015},nil,nil,nil,nil,nil,nil,1,0,0,12,0,nil,nil},
[559146] = {'Witchs Amulet',nil,nil,nil,nil,nil,nil,nil,1,0,0,4,0,nil,{1660019}},
[559148] = {'Bat Spiritual Essence',{161793},nil,nil,nil,nil,nil,nil,1,0,0,4,0,nil,{1660020}},
[559149] = {'Spider Spiritual Essence',{161795},nil,nil,nil,nil,nil,nil,1,0,0,4,0,nil,{1660020}},
[559150] = {'Serpent Spiritual Essence',{161794},nil,nil,nil,nil,nil,nil,1,0,0,4,0,nil,{1660020}},
[559155] = {'Spiritual Unrest',{30719},nil,nil,nil,nil,nil,nil,0,0,0,4,0,nil,nil},
[559158] = {'Unremarkable Stone',nil,nil,nil,nil,nil,nil,1,1,0,0,12,0,nil,nil},
[559172] = {'Fire Elemental Shackles',nil,{1064805},nil,nil,nil,nil,nil,1,0,0,4,0,nil,{1660021}},
[559173] = {'Earth Elemental Shackles',nil,{2392807},nil,nil,nil,nil,nil,1,0,0,4,0,nil,{1660021}},
[559174] = {'Air Elemental Shackles',nil,{3478505},nil,nil,nil,nil,nil,1,0,0,4,0,nil,{1660021}},
[559175] = {'Water Elemental Shackles',nil,{4541078},nil,nil,nil,nil,nil,1,0,0,4,0,nil,{1660021}},
[558973] = {[1]="Empty Dirgran's Pitcher",[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660064}},
[558974] = {[1]="Full Dirgran's Pitcher",[3]={5954415},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660064}},
[254007] = {[1]="Metallic Debris",[3]={254003},[9]=1,[10]=0,[12]=12,[13]=0,[15]={254011}},
[558966] = {[1]="Elven Relic of Old",[3]={2300551,2300558,2300556,2300555,2300553,2300554,2300557},[10]=0,[12]=0,[13]=0,[15]={1660063}},
[254008] = {[1]="Ouru'Gai Crystal",[3]={254002},[9]=1,[10]=0,[12]=12,[13]=0,[15]={254014}},
--Tirisfal Glades
[16333] = {[1]="Samuel's Remains",[2]={1919},[9]=1,[10]=0,[12]=12,[13]=0,[15]={6395}},
[559164] = {[1]="Gaudy Painting",[3]={2300528},[9]=1,[10]=0,[12]=0,[13]=0,[15]={1660028}},
[559165] = {[1]="Shimmering Jewel",[3]={2300529},[9]=1,[10]=0,[12]=0,[13]=0,[15]={1660028}},
[559166] = {[1]="Crystal Ball",[2]={108586},[3]={2300530},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660028}},
[559167] = {[1]="Family Signet",[2]={108586},[3]={2300531},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660028}},
[559138] = {[1]="Majordomos Key Fragment",[2]={161753},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660026}},
[559139] = {[1]="Maids Key Fragment",[2]={161754},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660026}},
[559140] = {[1]="Stablemasters Key Fragment",[2]={161755},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660026}},
[354655] = {[1]="Rod Toxicstrike's Concoction",[9]=1,[10]=0,[12]=12,[13]=0,[15]={254064}},
[558953] = {[1]="Encapsulated Necrotic Spores",[3]={2300545},[9]=0,[10]=0,[12]=12,[13]=0,[15]={1660051}},
[558954] = {[1]="Clinging Necrotic Spores",[2]={162842},[9]=0,[10]=0,[12]=12,[13]=0,[15]={1660051}},
[558955] = {'Scarlet Letter',{162857},nil,nil,{1660053},nil,nil,nil,1,0,0,12,0,nil,nil},
[354678] = {[1]="Lieutenant Sanders's Head",[2]={13158},[9]=1,[10]=1,[12]=12,[13]=0,[15]={254056}},
[354654] = {[1]="Ralden's Transformation Elixir",[9]=1,[10]=0,[12]=12,[13]=0,[15]={254057}},
--Mulgore
[559156] = {[1]="Grimtotem Marauder Mane",[2]={161809},[9]=0,[10]=0,[12]=12,[13]=0,[15]={1660030}},
[559168] = {[1]="Offering Bone",[2]={161810},[3]={2300532},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660035}},
[559151] = {[1]="Grimtotem Armor Piece",[3]={2300514},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660032}},
[559152] = {[1]="Exalted Pendant",[3]={2300515},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660032}},
[558972] = {[1]="Full Sanctuary Amphora",[3]={5195711},[15]={1660067}},
[558971] = {[1]="Empty Sanctuary Amphora",[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660067}},
[558967] = {[1]="Holy Water Blessing",[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660068}},
[558968] = {[1]="Prairie Sap",[3]={2300552},[9]=0,[10]=0,[12]=0,[13]=0,[15]={1660069}},
[558969] = {[1]="Kodo Tallow",[2]={162909,2972,2973,2974},[9]=0,[10]=0,[12]=12,[13]=0,[15]={1660069}},
[662335] = {[1]="Ritual Totem",[2]={2965,2964},[9]=1,[10]=0,[12]=12,[13]=0,[15]={500004}},
}
AscensionItemDB=AscensionItemDB or {}
AscensionItemDB.itemData=AscensionDB.itemData
@@ -1,229 +0,0 @@
---@type table
local AscensionDB = QuestieLoader:CreateModule("AscensionDB")
AscensionDB.npcData = AscensionDB.npcData or {
--Beginner's Book of Ascension
[75118]={"Beginner's Book of Ascension",89,89,1,1,1,{[14]={{42.4,68.7},{52.2,43.2},{56.2,74.7}},[17]={{28.4,67.0},{63.2,37.0},{52.1,30.2}},[3430]={{44.2,70.9},{38.3,21.4},{47.0,46.1}},[12]={{48.1,41.9},{43.1,66.6}},[1]={{30.1,71.7},{46.9,52.4}},[141]={{58.7,44.3},{57.5,57.5}},[85]={{31.5,65.9},{61.4,53.0}},[3524]={{49.1,51.3},{80.7,46.3}},[215]={{47.1,60.9}},[148]={{37.3,44.0}},[130]={{43.4,41.8}},[38]={{34.9,47.7}},[3433]={{47.6,31.6}},[3525]={{55.1,59.6}},[44]={{28.2,47.7}},[331]={{36.3,49.3}},[10]={{73.9,48.0}},[40]={{56.9,54.7}}},nil,nil,{1903520},{1903520},31,"AH",nil,3},
--Elwynn Forest
[97921]={[1]='Garion Hunter',[2]=327,[3]=327,[4]=10,[5]=10,[6]=0,[7]={[12]={{43.97,64.16}}},[8]=nil,[9]=12,[10]={4420430,1903556},[11]={4420430},[12]=72,[13]="AH",[14]="",[15]=3},
[161700]={[1]='Bianca Spada',[2]=158,[3]=158,[4]=8,[5]=8,[6]=0,[7]={[12]={{48.1,42.4}}},[8]=nil,[9]=12,[10]={1660000},[11]=nil,[12]=12,[13]="A",[14]=nil,[15]=3},
[161701]={[1]='Moroi Spada',[2]=293,[3]=293,[4]=11,[5]=11,[6]=0,[7]={[1238]={{39.89,51.29}}},[8]=nil,[9]=12,[10]={1660001,1660002},[11]={1660000},[12]=12,[13]="A",[14]="Seminarian of Northshire Abbey",[15]=3},
[161702]={[1]='Sister Alma',[2]=4058,[3]=4058,[4]=55,[5]=55,[6]=0,[7]={[12]={{52.4,35}}},[8]=nil,[9]=12,[10]={},[11]={},[12]=72,[13]="AH",[14]="Ancient Priestess of Northshire",[15]=3},
[161705]={[1]='Injured Northshire Guard',[2]=510,[3]=510,[4]=17,[5]=17,[6]=0,[7]={[12]={{54.9,39.5}}},[8]=nil,[9]=12,[10]={1660005},[11]={1660005},[12]=72,[13]="AH",[14]="Injured Northshire Guard",[15]=3},
[161712]={[1]='Accursed Censor',[2]=341,[3]=341,[4]=4,[5]=4,[6]=0,[7]={[12]={{51.7,27.6}}},[8]=nil,[9]=12,[10]=nil,[11]={1660038},[12]=25,[13]=nil,[14]="",[15]=0},
[161713]={[1]='Wayward Theologian',[2]=341,[3]=341,[4]=7,[5]=7,[6]=0,[7]={[12]={{60.5,28.7}}},[8]=nil,[9]=12,[10]=nil,[11]={1660004},[12]=25,[13]=nil,[14]="",[15]=0},
[161716]={[1]='Shadewell Murloc',[2]=100,[3]=134,[4]=3,[5]=3,[6]=0,[7]={[12]={{58.11,31.87},{57.92,32.08},{57.29,32.93},{57.24,32.18},{57.74,31.54},{58.57,31.1},{58.33,30.11},{58.18,29.24},{58.36,28.44},{58.65,28.72},{58.79,29.02},{58.73,28.03},{59.24,26.92},{59.36,26.22},{58.98,25.92},{58.31,25.83},{58.31,25.15},{57.68,25.61},{57.82,26.2}}},[8]=nil,[9]=12,[10]=nil,[11]=nil,[12]=25,[13]=nil,[14]="",[15]=0},
[161717]={[1]='Shadewell Murloc Oracle',[2]=100,[3]=134,[4]=3,[5]=3,[6]=0,[7]={[12]={{58.25,31.47},{58.63,30.72},{58.54,29.36},{56.56,33.84},{59.02,25.53},{59.29,26.58}}},[8]=nil,[9]=12,[10]=nil,[11]=nil,[12]=72,[13]="AH",[14]="",[15]=3},
[161736]={[1]='Defias Plunderer',[2]=100,[3]=134,[4]=3,[5]=3,[6]=0,[7]={[12]={{55.62,38.74},{55.28,38.61},{54.83,38.23},{55.43,36.8},{56.1,37.49},{55.22,37.71},{55.52,37.63},{55.66,38.2},{55.67,37.51},{55.59,37.54},{55.66,38.05},{56.03,36.58}}},[8]=nil,[9]=12,[10]=nil,[11]=nil,[12]=25,[13]=nil,[14]="",[15]=0},
[161844]={[1]='Father Harnos',[2]=205,[3]=205,[4]=8,[5]=8,[6]=0,[7]={[12]={{49.16,41.71}}},[8]=nil,[9]=12,[10]=nil,[11]=nil,[12]=72,[13]="AH",[14]="",[15]=3},
[162800]={[1]='Dulcinea',[2]=510,[3]=510,[4]=17,[5]=17,[6]=0,[7]={[12]={{43.11,65.90}}},[8]=nil,[9]=12,[10]={},[11]={},[12]=72,[13]="AH",[14]="Maid of House Spada",[15]=3},
[162802]={[1]='Aldia Crayon',[2]=1394,[3]=1394,[4]=30,[5]=30,[6]=0,[7]={[12]={{30.72,57.72}}},[8]=nil,[9]=12,[10]={1660057},[11]={1660056,1660057},[12]=72,[13]="AH",[14]="",[15]=3},
[162805]={[1]="Clara the Mad",[2]=120,[3]=120,[4]=8,[5]=8,[6]=0,[7]={[12]={{43.22,70.87}}},[8]=nil,[9]=12,[10]={1660058},[11]={1660058},[12]=12,[13]="A",[14]=nil,[15]=2},
[162806]={[1]='Aliscar Lend',[2]=1593,[3]=1593,[4]=32,[5]=32,[6]=0,[7]={[12]={{44.59,62.99}}},[8]=nil,[9]=12,[10]={},[11]={},[12]=72,[13]="AH",[14]="",[15]=3},
[162943]={[1]='Arcane Projection of Aliscar',[2]=1593,[3]=1593,[4]=32,[5]=32,[6]=0,[7]={[12]={{44.44,63.39}}},[8]=nil,[9]=12,[10]={},[11]={},[12]=72,[13]="AH",[14]="",[15]=3},
[162809]={[1]="Rowena",[2]=120,[3]=120,[4]=8,[5]=8,[6]=0,[7]={[12]={{43.2,66.9}}},[8]=nil,[9]=12,[10]=nil,[11]=nil,[12]=12,[13]="A",[14]=nil,[15]=2},
[162811]={[1]="Darron",[2]=120,[3]=120,[4]=8,[5]=8,[6]=0,[7]={[12]={{42.5,65.9}}},[8]=nil,[9]=12,[10]=nil,[11]=nil,[12]=12,[13]="A",[14]=nil,[15]=2},
[162814]={[1]="Ainora",[2]=120,[3]=120,[4]=8,[5]=8,[6]=0,[7]={[12]={{43.6,62.6}}},[8]=nil,[9]=12,[10]=nil,[11]=nil,[12]=12,[13]="A",[14]=nil,[15]=2},
[162815]={[1]="Aldia",[2]=120,[3]=120,[4]=20,[5]=20,[6]=0,[7]={[12]={{34.4,82.9}}},[8]=nil,[9]=12,[10]={1660056},[11]={1660056},[12]=12,[13]="A",[14]=nil,[15]=2},
[162807]={[1]='Harvend Thorm',[2]=1923,[3]=1923,[4]=35,[5]=35,[6]=0,[7]={[12]={{42.42,70.12}}},[8]=nil,[9]=12,[10]={1660059},[11]={},[12]=72,[13]="AH",[14]="",[15]=3},
[162801]={[1]='Eldor Hammer',[2]=688,[3]=688,[4]=21,[5]=21,[6]=0,[7]={[12]={{43.96,70.25}}},[8]=nil,[9]=12,[10]={},[11]={1660059},[12]=72,[13]="AH",[14]="",[15]=3},
[162826]={[1]="Joaquin",[2]=120,[3]=120,[4]=8,[5]=8,[6]=0,[7]={[12]={{46.6,65.3}}},[8]=nil,[9]=12,[10]=nil,[11]=nil,[12]=12,[13]="A",[14]=nil,[15]=2},
[991516]={[1]='Suspicious Guard',[2]=309,[3]=309,[4]=8,[5]=8,[6]=0,[7]={[12]={{58.12,80.04}}},[8]=nil,[9]=12,[10]={},[11]={},[12]=72,[13]="AH",[14]="",[15]=3},
[9000017]={[1]='Esyra',[2]=211,[3]=211,[4]=9,[5]=9,[6]=0,[7]={[12]={{64.90,69.80}}},[8]=nil,[9]=12,[10]={17003,17002},[11]={17003,17002},[12]=72,[13]="AH",[14]="",[15]=3},
[197]={[1]="Marshal McBride",[2]=484,[3]=484,[4]=20,[5]=20,[6]=0,[7]={[12]={{48.0,41.9}}},[8]=nil,[9]=12,[10]={7,15,21,54,3100,3101,3102,3103,3104,3105},[11]={7,15,21,783},[12]=12,[13]="A",[14]=nil,[15]=3},
[240]={[1]="Marshal Dughan",[2]=713,[3]=713,[4]=25,[5]=25,[6]=0,[7]={[12]={{42.96,65.78}}},[8]=nil,[9]=12,[10]={35,59,62,76,109,147,239},[11]={39,40,54,62,76,123,147,176},[12]=12,[13]="A",[14]=nil,[15]=3},
[250]={[1]="Pa Maclure",[2]=120,[3]=120,[4]=6,[5]=6,[6]=0,[7]={[12]={{42.7,89.3}}},[8]=nil,[9]=12,[10]={17000},[11]={17000},[12]=12,[13]="A",[14]=nil,[15]=2},
[253]={[1]="William Pestle",[2]=120,[3]=120,[4]=6,[5]=6,[6]=0,[7]={[12]={{44.29,66.56}}},[8]=nil,[9]=12,[10]={60,61,112,114},[11]={60,107,112},[12]=12,[13]="A",[14]=nil,[15]=2},
[261]={[1]="Guard Thomas",[2]=1003,[3]=1003,[4]=30,[5]=30,[6]=0,[7]={[12]={{73.97,72.18}}},[8]=nil,[9]=12,[10]={37,39,46,52,109,17004},[11]={35,46,52,71,17004},[12]=12,[13]="A",[14]=nil,[15]=2},
[295]={[1]="Innkeeper Farley",[2]=1003,[3]=1003,[4]=30,[5]=30,[6]=0,[7]={[12]={{44.77,66.8}}},[8]=nil,[9]=12,[10]={70},[11]={69,2158},[12]=12,[13]="A",[14]="Innkeeper",[15]=66179},
[658]={[1]="Sten Stoutarm",[2]=102,[3]=102,[4]=5,[5]=5,[6]=0,[7]={[1]={{29.87,71.88}}},[8]=nil,[9]=1,[10]={179,233,3106,3107,3108,3109,3110,3112,3113,3114,3115},[11]={179},[12]=55,[13]="A",[14]=nil,[15]=3},
[713]={[1]="Balir Frosthammer",[2]=102,[3]=102,[4]=5,[5]=5,[6]=0,[7]={[1]={{29.92,71.16}}},[8]=nil,[9]=1,[10]={170},[11]={170},[12]=55,[13]="A",[14]=nil,[15]=2},
[823]={[1]="Deputy Willem",[2]=417,[3]=417,[4]=18,[5]=18,[6]=0,[7]={[12]={{48.0,43.6}}},[8]=nil,[9]=12,[10]={6,18,783,3903,5261},[11]={6,18},[12]=12,[13]="A",[14]=nil,[15]=2},
[917]={[1]="Keryn Sylvius",[2]=222,[3]=222,[4]=11,[5]=11,[6]=0,[7]={[12]={{44.89,66.70}}},[8]=nil,[9]=12,[10]={2205,2300},[11]=nil,[12]=12,[13]="A",[14]="Rogue Trainer",[15]=51},
[955]={[1]="Sergeant De Vries",[2]=198,[3]=198,[4]=10,[5]=10,[6]=0,[7]={[12]={{24.08,73.2}}},[8]=nil,[9]=12,[10]={17008},[11]={17008},[12]=12,[13]="A",[14]="Morale Officer",[15]=640},
[6778]={[1]="Melika Isenstrider",[2]=222,[3]=222,[4]=11,[5]=11,[6]=0,[7]={[12]={{44.47,67.03}}},[8]=nil,[9]=12,[10]=nil,[11]=nil,[12]=12,[13]="A",[14]="Assistant Innkeeper",[15]=2},
[11916]={[1]="Imelda",[2]=713,[3]=713,[4]=25,[5]=25,[6]=0,[7]={[1519]={{33.71,62.6}}},[8]=nil,[9]=1519,[10]=nil,[11]={17005},[12]=12,[13]="A",[14]=nil,[15]=1},
[466] = {'General Marcus Jonathan',42780,42780,72,72,1,{[1519]={{69.17,82.72}}},nil,1519,{100466,121},{120},12,"A","High Commander of Stormwind Defense",2},
--Dun Morogh
--NPCs
[254000] = {[1]="Efry Cogspark",[2]=299,[3]=299,[4]=10,[5]=10,[6]=0,[7]={[1239]={{65.49,45.96}},[38]={{35.20,48.60}}},[9]=1239,[10]={254000,254001,254002},[11]={254000,254001,254005},[12]=12,[13]="A"},
[161718] = {[1]="Groldha",[2]=187,[3]=187,[4]=8,[5]=8,[6]=0,[7]={[1239]={{62.70,43.90}}},[9]=1239,[10]={1660006,1660009},[12]=12,[13]="A"},
[161720] = {[1]="Arathror",[2]=584,[3]=584,[4]=20,[5]=20,[6]=0,[7]={[1239]={{41,33.96}}},[9]=1239,[10]={1660008,1660009,1660039},[11]={1660007,1660008},[12]=12,[13]="A"},
[161719] = {'Dead Crewman',212,212,9,9,0,{[1239]={{33.80,52.80}}},nil,1239,{1660007},{1660006},72,"AH","",0},
[161820] = {[1]="Redna",[2]=187,[3]=187,[4]=8,[5]=8,[6]=0,[7]={[1239]={{35.34,32.31}}},[9]=1239,[10]={1660010},[11]={1660010,1660039},[12]=72,[13]="AH"},
[161839] = {[1]="Lahud",[2]=91,[3]=91,[4]=3,[5]=3,[6]=0,[7]={[1239]={{55.23,21.02}}},[9]=1239,[10]={1660011},[11]={1660011},[12]=72,[13]="AH"},
[162882] = {[1]="Norhi Thunderbrew",[2]=329,[3]=329,[4]=13,[5]=13,[6]=0,[7]={[1239]={{63.04,45.22}}},[9]=1239,[10]={1660076},[12]=12,[13]="A"},
[254002] = {'Mountaineer Tagnur',22690,22690,57,57,0,{[1]={{36.20,62.40}}},nil,1,{254003}, {254002},72,"A","",3},
[162883] = {'Eyma Thunderbrew',395,395,15,15,0,{[1]={{47.30,52.70}}},nil,1,{1660077}, {1660076,1660077},72,"A","",3},
[7954] = {'Binjy Featherwhistle',2769,2769,50,50,0,{[1]={{49.15,48.13}}},nil,1,{4420432,1903556},{14084,4420432,1903556},875,"A","Mechanostrider Pilot",83},
[162901] = {[1]="Gravedigger Nonuid",[2]=503,[3]=503,[4]=18,[5]=18,[6]=0,[7]={[1]={{48.87,52.65}}},[9]=1,[10]={1660080},[11]={1660080},[12]=12,[13]="A"},
[162891] = {[1]="Gornarn",[2]=239,[3]=239,[4]=10,[5]=10,[6]=0,[7]={[1]={{49.23,53.74}}},[9]=1,[10]={1660079},[11]={1660079},[12]=12,[13]="A"},
[162917] = {'Target',122,122,5,5,0,{[1]={{49.00,53.70}}},nil,1,{}, {},72,"A","",3},
[162884] = {[1]="Ikoras",[2]=212,[3]=212,[4]=9,[5]=9,[6]=0,[7]={[1]={{48.90,55.90}}},[8]=nil,[9]=1,[10]={1660078},[11]={1660078},[12]=12,[13]="A",[14]=nil,[15]=0},
[254003] = {'Mirsinth the Exile',478,478,10,10,0,{[1]={{36.80,52.00}}},nil,1,{}, {254003},12,"A","",3},
[765556] = {[1]="Brunna Ironhew",[2]=267,[3]=267,[4]=11,[5]=11,[6]=0,[7]={[1]={{62.5,57.49}}},[9]=1,[10]={500005},[11]={500005},[12]=12,[13]="A"},
[764536] = {[1]="Old Kargan Stouthew",[2]=239,[3]=239,[4]=10,[5]=10,[6]=0,[7]={[1]={{61.9,57.74}}},[9]=1,[10]={500006},[11]={500006},[12]=12,[13]="A"},
--Creatures
[254004] = {'Damaged Security Bot',161,161,1,1,0,{[1239]={{31.41,73.19}}},nil,1239,nil,nil,72,nil,nil,0},
[254005] = {'Security Bot AN-32',161,161,1,1,0,{[1239]={{59.16,82.95}}},nil,1239,nil,nil,72,nil,nil,0},
[161772] = {[1]="Radiant Fanatic",[2]=78,[3]=78,[4]=3,[5]=3,[6]=0,[7]={[1239]={{43.84,25.51},{43.04,26.69},{41.49,26.36},{40.51,24.75},{42.05,24.54},{38.7,22.71},{38.94,20.46},{39.17,17.75},{38.54,17.54},{42.34,17.51},{41.7,19.44},{42.55,20.73},{45.74,21.15}}},[9]=1239},
[161776] = {'Radiant Slime',91,122,3,3,0,{[1239]={{49.80,20.31},{50.18,19.95},{49.47,23.21},{50.80,21.77},{51.38,22.23},{51.73,22.81},{52.99,23.20},{53.56,24.08},{55.20,22.80},{55.16,24.53},{54.90,25.98},{57.82,23.08},{58.30,22.87},{55.12,27.21},{58.59,29.38},{57.96,29.33},{58.37,30.84},{60.31,23.03},{60.99,23.35},{61.24,21.61}}},nil,1239,nil,nil,72,nil,nil,0},
[161835] = {'Right Hand of His Majesty',311,311,4,4,1,{[1239]={{56.04,24.44}}},nil,1239,nil,nil,72,nil,nil,0},
[161775] = {'His Radiant Majesty',414,414,7,7,1,{[1239]={{59.81,26.35}}},nil,1239,nil,nil,72,nil,nil,0},
[161786] = {'Radiant Devotee',91,122,3,3,0,{[1239]={{50.89,19.79},{53.29,22.45},{54.28,21.74},{50.47,22.60},{50.08,23.43},{49.82,23.66},{49.45,19.25},{51.25,20.38},{50.74,18.11},{51.15,17.81},{51.78,20.05},{52.48,20.85},{53.84,19.47},{53.95,19.13},{53.19,18.76},{54.40,24.45},{54.00,24.39},{55.64,24.86},{56.32,27.38},{56.94,27.45},{57.22,25.45},{57.42,25.12},{53.40,21.65},{53.08,24.47},{52.38,23.56},{52.15,24.75},{55.46,19.19},{56.89,19.36}}},nil,1239,nil,nil,72,nil,nil,0},
[162888] = {'Out-of-Control Automaton v1.1',122,122,6,6,0,{[1]={{49.84,55.71},{51.03,54.78},{51.86,56.41},{52.63,56.26},{53.65,55.68}}},nil,1,nil,nil,72,"AH",nil,0},
[162889] = {'Out-of-Control Automaton v1.2',144,144,6,6,0,{[1]={{50.4,56.03},{50.45,55.24},{50.72,54.47},{51.43,56.29},{52.1,55.31},{52.59,56.14}}},nil,1,nil,nil,72,"AH",nil,0},
[162890] = {'Out-of-Control Automaton v1.3',165,165,7,7,0,{[1]={{50.41,55.61},{51.37,55.85},{52.52,55.87},{53.69,55.47}}},nil,1,nil,nil,72,"AH",nil,0},
[254006] = {[1]="Jun'Kon",[2]=161,[3]=161,[4]=8,[5]=8,[6]=0,[7]={[1]={{21.59,51.64}}},[9]=1},
[76555] = {[1]="Icehide",[2]=563,[3]=563,[4]=14,[5]=14,[6]=1,[7]={[1]={{64.85,58.42}}},[9]=1},
--Teldrassil
--NPCs
[2083] = {'Syral Bladeleaf',247,247,12,12,0,{[141]={{57.2,56.83}}},nil,141,{489,997,1581},{1581},80,"A",nil,2},
[2078] = {'Athridas Bearmantle',222,222,11,11,0,{[141]={{57.34,56.11}}},nil,141,{475,483,486},{476,483,486},80,"A",nil,2},
[2151] = {'Moon Priestess Amara',713,713,25,25,0,{[141]={{55.30,58.40}}},nil,141,{487,489},{487},79,"A",nil,2},
[3567] = {'Tallonkai Swiftroot',222,222,11,11,0,{[141]={{57.36,55.35}}},nil,141,{932,2438,2459},{932,2438,2459},80,"A",nil,2},
[6736] = {'Innkeeper Keldamyr',1003,1003,30,30,0,{[141]={{57.26, 60.00}}},nil,141,nil,{2159},80,"A","Innkeeper",66179},
[6780] = {'Porthannius',137,137,7,7,0,{[141]={{54.58,84.52}}},nil,141,{2159},nil,80,"A",nil,2},
[449169] = {[1]="Sylindra Starweave",[2]=299,[3]=327,[4]=10,[5]=10,[6]=0,[7]={[141]={{56.26,57.01}}},[9]=141,[10]={1903556,449169,},[11]={1903556,449169},[12]=12,[13]="A"},
[161725] = {[1]="Thariel Wingstroke",[2]=293,[3]=293,[4]=11,[5]=11,[6]=0,[7]={[1243]={{51.34,67.86},{51.44,67.98}}},[9]=1243,[10]={1660012,1660071},[11]={1660085},[12]=12,[13]="A"},
[161726] = {[1]="Aryandel",[2]=361,[3]=361,[4]=13,[5]=13,[6]=0,[7]={[1243]={{62.03,35.03}}},[9]=1243,[10]={1660013},[11]={1660012},[12]=12,[13]="A"},
[161727] = {[1]="Lady Aegya",[2]=433,[3]=433,[4]=-1,[5]=-1,[6]=3,[7]={[1243]={{69.64,24.5}}},[9]=1243,[10]={1660014,1660015,1660085},[11]={1660013,1660014,1660016},[12]=12,[13]="A"},
[161728] = {[1]="Gilgaen",[2]=640,[3]=640,[4]=20,[5]=20,[6]=0,[7]={[1243]={{68.87,21.74}}},[9]=1243,[10]={1660016},[11]={1660015},[12]=12,[13]="A"},
[161848] = {[1]="Eldya",[2]=181,[3]=181,[4]=7,[5]=7,[6]=0,[7]={[1243]={{66.32,35.46},{66.32,35.46}}},[9]=1243,[10]={1660017},[11]={1660017},[12]=12,[13]="A"},
[161916] = {[1]="Sheelem",[2]=181,[3]=181,[4]=7,[5]=7,[6]=0,[7]={[1243]={{72.08,32.99}}},[9]=1243,[10]={1660040},[11]={1660040},[12]=12,[13]="A"},
[162879] = {[1]="Kaladir",[2]=232,[3]=232,[4]=9,[5]=9,[6]=0,[7]={[141]={{56.48,59.67}}},[9]=141,[10]={1660074},[11]={1660074},[12]=12,[13]="A"},
[162880] = {[1]="Adrilia Soultemper",[2]=1113,[3]=1113,[4]=27,[5]=27,[6]=0,[7]={[141]={{57.03,52.30}}},[9]=141,[10]={1660073},[11]={1660072,1660073},[12]=12,[13]="A"},
[162881] = {[1]="Alenna Whisperbough",[2]=940,[3]=940,[4]=25,[5]=25,[6]=0,[7]={[141]={{59.35,58.93}}},[9]=141,[10]={1660075},[11]={1660075},[12]=12,[13]="A"},
[162870] = {[1]="Theren-Dion Sentinel",[2]=144,[3]=158,[4]=6,[5]=7,[6]=0,[7]={[141]={{58.20,52.00},{57.70,50.50}}},[9]=141},
[162871] = {[1]="Theren-Dion Sentinel",[2]=144,[3]=158,[4]=6,[5]=7,[6]=0,[7]={[141]={{58.10,51.90},{57.10,50.30}}},[9]=141},
[162872] = {[1]="Theren-Dion Sentinel",[2]=144,[3]=158,[4]=6,[5]=7,[6]=0,[7]={[141]={{58.50,51.50},{58.30,48.80}}},[9]=141},
[162873] = {[1]="Theren-Dion Sentinel",[2]=144,[3]=158,[4]=6,[5]=7,[6]=0,[7]={[141]={{58.20,48.70},{57.80,49.60}}},[9]=141},
[162856] = {[1]="Theren-Dion Sentinel",[2]=144,[3]=158,[4]=6,[5]=7,[6]=0,[7]={[141]={{58.60,50.90},{57.30,50.00}}},[9]=141},
--Creatures
[161735] = {[1]="Rotworm",[2]=29,[3]=35,[4]=1,[5]=2,[6]=0,[7]={[2031]={{53.97,33.06},{53.33,28.5},{51.23,56.05},{36.2,54.26},{36.66,55.04},{39.02,51.87},{64.99,68.22},{65.8,66.49},{65.6,65.18},{52.47,63.9},{51.88,66.98},{54.03,63.64},{53.36,63.55},{51.11,68.3},{53.05,77.85},{52.37,80.54}},[1243]={{71.45,30.52}}},[9]=2031},
[161782] = {[1]="Fallen Aspirant",[2]=79,[3]=112,[4]=3,[5]=3,[6]=0,[7]={[2031]={{47.65,38.09},{48.3,38.18},{51.23,56.05},{52.08,59.8},{52.87,64.32},{40.42,74.45},{47.95,61.11}}},[9]=2031},
[161783] = {[1]="Aberrant Flesh Remnant",[2]=100,[3]=100,[4]=3,[5]=3,[6]=0,[7]={[1243]={{65.35,20.54}}},[9]=1243},
[161784] = {[1]="Elydna Wingstroke",[2]=945,[3]=945,[4]=7,[5]=7,[6]=1,[7]={[1243]={{71.73,21.17}}},[9]=1243},
[161787] = {[1]="Fretful Withered Treant",[2]=100,[3]=134,[4]=3,[5]=3,[6]=0,[7]={[1243]={{54.16,42.06},{58.8,49.23},{58.46,43.54},{58.95,44.98},{59.71,46.38},{57.67,45.94},{57.01,42.63},{56.49,40.05},{54.87,43.18},{55.27,44.46},{55.59,45.04},{60.5,44.16},{61.3,40.07},{60.35,38.47},{59.11,39.23},{58.78,39.82},{53.92,43.47}}},[9]=1243},
[161832] = {[1]="Rotting Flesh Spawn",[2]=403,[3]=403,[4]=4,[5]=4,[6]=1,[7]={[2031]={{50.51,61.86}}},[9]=2031},
[162874] = {[1]="Frenzied Vulture",[2]=158,[3]=158,[4]=7,[5]=7,[6]=0,[7]={[141]={{59.88,48.94},{59.52,49.65}}},[9]=141},
[162876] = {[1]="Barkshredder Termite",[2]=158,[3]=158,[4]=6,[5]=6,[6]=0,[7]={[141]={{54.86,61.82},{55.06,60.88},{55.3,60.28},{54.89,59.49},{54.74,62.82}}},[9]=141},
[162877] = {[1]="Barkshredder Queen",[2]=205,[3]=205,[4]=8,[5]=8,[6]=0,[7]={[141]={{54.96,59.31}}},[9]=141},
[162925] = {[1]="Vulture Egg",[2]=27,[3]=27,[4]=7,[5]=7,[6]=0,[7]={[141]={{59.32,49.26},{59.88,48.91}}},[9]=141,[12]=72,[13]="AH"},
--Durotar
--NPCs
[3287] = {'Hana\'zua',55,55,2,2,0,{[1244]={{34.24,46.61}}},nil,1244,{790,804},{790},126,"H",nil,2},
[161732] = {'Esgramor',326,326,12,12,0,{[1244]={{44.75,66.92}}},nil,1244,{1660018,1660022,1660023,1660061},{1660021,1660022,1660023},29,"H","",0},
[161733] = {'Swali',361,361,13,13,0,{[1244]={{35.57,41.53}}},nil,1244,{1660037,1660019},{1660018,1660037},29,"H","",0},
[161734] = {'Anjali',232,232,9,9,0,{[2030]={{14.74,50.80}}},nil,2030,{1660020,1660041,1660021},{1660019,1660041,1660020},29,"H","",0},
[254011] = {'Sakari',801,801,20,20,0,{[1244]={{42.58,61.97}}},nil,1244,{254008,254009,254010},{254008,254009},29,"H","",0},
[7953] = {'Xar\'Ti',2769,2769,50,50,0,{[14]={{55.28,75.49}}},nil,14,{4420437,1903557},{14088,4420437,1903557},126,"H","Riding Trainer",83},
[162839] = {[1]="Karagar",[2]=678,[3]=678,[4]=22,[5]=22,[6]=0,[7]={[14]={{53,40.92},{53,40.92},{53,40.92}}},[9]=14,[10]={1660062,1660087,1660089},[11]={1660061},[12]=29,[13]="H"},
[162840] = {[1]="Rilly",[2]=329,[3]=329,[4]=13,[5]=13,[6]=0,[7]={[14]={{57.19,41.85}}},[9]=14,[10]={1660063},[11]={1660063},[12]=29,[13]="H"},
[162838] = {'Foreman Dirgran',239,239,10,10,0,{[14]={{51.15,40.67}}},nil,5,{1660064},{1660064},29,"H","",0},
[162836] = {'Thirsty Peon',144,144,8,8,0,{[14]={{50.80,39.90},{50.60,39.90},{50.70,39.40},{50.60,39.30},{50.70,39.10},{50.50,39.00},{50.40,38.70},{50.50,38.60},{50.30,38.60},{50.40,38.30},{50.30,38.10},{50.20,38.10},{50.00,38.50},{49.90,38.60},{50.10,38.70}}},nil,14,nil,nil,29,"H",nil,0},
[254012] = {[1]="Queen Erethina",[2]=731,[3]=731,[4]=20,[5]=20,[6]=0,[7]={[14]={{48.92,34.82}}},[9]=14,[10]={254012},[11]={254011,254012},[12]=72,[13]="AH"},
[254013] = {'Sakari',731,731,20,20,0,{[1637]={{56.30,32.50}}},nil,1637,{254014}, {254013},126,"H",nil,2},
[254014] = {'Sakari',731,731,20,20,0,{[17]={{62.40,10.20}}},nil,17,{254015}, {254014,254015},126,"H",nil,2},
--Creatures
[30719] = {'Uneasy Citizen',nil,nil,nil,nil,nil,{[1244]={{44.54,63.16},{45.80,63.18},{43.80,62.37},{40.61,62.07},{40.29,65.35},{38.91,66.86},{37.62,67.10},{34.40,64.39},{34.13,65.10},{34.86,66.58},{42.11,71.20},{43.17,71.49}}},nil,1244,{559155}},
[161790] = {'Hirsutta the Witch',1000,1000,7,7,1,{[1244]={{27.50,33.58},{28.14,33.95}}},nil,1244,nil},
[161792] = {'Elder Guardian Spirit',100,134,3,3,0,{[1244]={{36.05,24.76},{36.02,24.86},{36.15,24.85},{36.11,24.92}},[2030]={{15.24,54.18},{44.30,66.59},{49.86,82.31},{49.73,81.90},{49.39,82.65},{73.27,58.79},{68.42,35.12},{69.04,35.12},{14.99,57.19},{14.91,57.05},{14.69,56.15},{14.92,51.82},{14.86,53.20},{14.68,56.62},{15.38,56.79},{16.40,56.70},{15.72,57.06},{14.95,54.90},{15.02,54.64},{14.79,56.29},{14.97,56.39},{14.75,56.26},{14.71,55.93},{16.01,57.57},{14.97,57.08},{15.25,56.50}}},nil,2030,{559175}},
[161793] = {'Sinister Bat',100,134,3,3,0,{[2030]={{47.39,40.03},{44.41,56.04},{42.71,58.67},{43.98,67.17},{45.49,73.12},{46.82,77.89},{47.26,76.27},{50.41,78.72},{71.26,42.00},{65.52,35.27}}},nil,2030,nil},
[161794] = {'Sinister Snake',100,134,3,3,0,{[2030]={{16.87,41.78},{18.68,37.45},{20.41,36.96},{22.27,39.15},{25.81,36.57},{28.02,36.25},{28.95,38.23},{34.84,41.81},{39.14,46.66},{44.51,49.30},{75.08,61.00}}},nil,2030,nil},
[161795] = {'Sinister Spider',100,134,3,3,0,{[2030]={{49.41,76.57},{54.99,83.38},{70.19,76.11},{72.83,72.78},{73.23,58.00},{77.18,58.24},{79.99,60.88},{74.75,50.15},{73.86,42.19},{67.59,37.73},{66.51,34.42}}},nil,2030,nil},
[161807] = {'Voodoo Devotee',94,125,4,4,0,{[1244]={{32.20,51.26},{30.76,50.13},{29.95,50.76},{29.99,52.77},{31.88,49.68},{32.26,47.30},{30.44,49.24},{31.39,41.65},{32.36,37.75},{31.12,36.71},{32.31,55.94},{33.37,53.37},{32.20,51.32},{30.91,52.63},{30.96,51.11},{31.29,46.45},{31.02,36.65}}},nil,1244,nil},
[161833] = {'Techla\'Tu, The Gatekeeper',403,403,4,4,1,{[2030]={{53.19,66.45}}},nil,2030,nil},
[161854] = {'Enchanted Tiki Mask',134,134,3,3,0,{[1244]={{34.60,38.13}}},nil,1244,nil},
[161855] = {'Chattering Tiki Mask',100,100,3,3,0,{[1244]={{31.19,44.56}}},nil,1244,nil},
[161856] = {'Possessed Tiki Mask',134,134,3,3,0,{[1244]={{36.98,41.30}}},nil,1244,nil},
[254015] = {'Xaitoth',225,225,3,3,0,{[1217]={{50.31,60.68}}},nil,1217,{254006}},
[162834] = {'Rivenruin Myrmidon',144,144,6,7,0,{[14]={{58.09,41.23},{57.90,40.96},{58.07,39.50},{58.26,39.18},{58.18,38.86},{57.99,37.85},{57.66,37.84},{56.54,38.47},{57.44,38.77},{58.31,36.91},{57.92,36.80},{58.16,37.21},{57.37,37.59},{57.45,38.47},{57.77,38.37},{57.72,39.44},{57.62,39.18}}},nil,14,nil,nil,72,nil,nil,0},
[162835] = {'Rivenruin Sorceress',134,134,6,7,0,{[14]={{58.31,40.96},{57.63,37.39},{57.72,38.79},{58.30,36.21},{57.91,36.25},{57.94,35.76},{57.84,35.53},{57.21,39.23},{56.32,39.68},{55.57,39.12}}},nil,14,nil,nil,72,nil,nil,0},
[162916] = {[1]="Rivenruin Brute",[2]=165,[3]=165,[4]=8,[5]=8,[6]=0,[7]={[14]={{59.06,39.29}}},[9]=14},
[162841] = {'Bagamul Skyfang',2484,2484,41,41,0,{[14]={{51.77,44.36}}},nil,14,{1660065},{1660065},29,"H","",0},
[254016] = {[1]="Queen Erethina",[2]=1323,[3]=1323,[4]=12,[5]=12,[6]=0,[7]={[17]={{62.4,10.2}}},[9]=17},
--Tirisfal Glades
--NPCs
[161739] = {'Anthon',165,165,7,7,0,{[1240]={{50.53,58.18}}},nil,1240,{1660024},{},29,"H","",0},
[161740] = {'Riscell Cain',329,329,13,13,0,{[1240]={{28.40,55.10}}},nil,1240,{1660025}, {1660024,1660050},72,"H","",3},
[161742] = {[1]="Deathguard Eric",[2]=395,[3]=395,[4]=15,[5]=15,[6]=0,[7]={[1240]={{27.66,55.67}}},[9]=1240,[10]={1660029,1660050},[11]={1660029},[12]=29,[13]="H",3},
[161746] = {[1]="Kalis",[2]=298,[3]=298,[4]=12,[5]=12,[6]=0,[7]={[1240]={{27.93,55.11}}},[9]=1240,[10]={1660042},[11]={1660042},[12]=29,[13]="H",3},
[161747] = {[1]="Thris",[2]=362,[3]=362,[4]=14,[5]=14,[6]=0,[7]={[1240]={{27.87,54.59}}},[9]=1240,[10]={1660028},[11]={1660028},[12]=29,[13]="H",3},
[161741] = {'Exsangue',584,584,20,20,0,{[1240]={{15.90,46.00}}},nil,1240,{}, {1660026},29,"H","",3},
[4773] = {'Velma Warnam',1003,1003,30,30,0,{[85]={{59.40,51.30}}},nil,85,{4420434,1903557},{14089,4420434,1903557},68,"H","Riding Trainer",83},
[162843] = {'Apothecary Flemer',267,267,11,11,0,{[85]={{58.10,52.40}}},nil,1420,{}, {1660050},29,"H","",3},
[1518] = {'Apothecary Johaan',484,484,20,20,0,{[85]={{58.40,52.80}}},nil,85,{367,368,369,407,445,492},{365,367,368,369},68,"H","Royal Apothecary Society",2},
[1519] = {'Deathguard Simmer',1210,1210,23,23,0,{[85]={{38.80,55.80}}},nil,85,{365},nil,68,"H",nil,2},
[749136] = {[1]="Rod Toxicstrike",[2]=366,[3]=366,[4]=10,[5]=10,[6]=0,[7]={[85]={{43.97,39.21}}},[9]=85,[10]={254064},[11]={254064},[12]=29,[13]="H"},
[162844] = {[1]="Delcard Sading",[2]=466,[3]=466,[4]=17,[5]=17,[6]=0,[7]={[85]={{59.9,52.76}}},[9]=85,[10]={1660052},[11]={1660052},[12]=29,[13]="H"},
[162847] = {[1]="Dark Priestess Ashara",[2]=1188,[3]=1188,[4]=29,[5]=29,[6]=0,[7]={[85]={{59.76,54.57}}},[9]=85,[10]={1660054},[11]={1660054},[12]=29,[13]="H"},
[991483] = {[1]="Father Alastor",[2]=348,[3]=348,[4]=15,[5]=15,[6]=0,[7]={[85]={{70.54,63.73},{70.53,63.75}}},[9]=85,[10]={254053,254054},[11]={254053,254054},[12]=29,[13]="H"},
[764555] = {[1]="Warden Kaelthar Graveborn",[2]=584,[3]=584,[4]=15,[5]=15,[6]=0,[7]={[85]={{76.08,45.05}}},[9]=85,[10]={254056},[12]=29,[13]="H"},
[764554] = {'Apothecary Ralden',584,584,15,15,0,{[85]={{75.80,44.70}}},nil,85,{}, {254056},29,"H","Royal Apothecary Society",3},
--Creatures
[161762] = {[1]="Mother",[2]=122,[3]=122,[4]=3,[5]=3,[6]=0,[7]={[1240]={{15.97,69.18}}},[9]=1240},
[161763] = {[1]="Father",[2]=91,[3]=91,[4]=3,[5]=3,[6]=0,[7]={[1240]={{16.02,65.36}}},[9]=1240},
[161764] = {[1]="Cousin Salem",[2]=122,[3]=122,[4]=3,[5]=3,[6]=0,[7]={[1240]={{18.46,71.3}}},[9]=1240},
[161765] = {[1]="Uncle Abel",[2]=103,[3]=103,[4]=3,[5]=3,[6]=0,[7]={[1240]={{20.08,66.61}}},[9]=1240},
[161836] = {[1]="Hound of House Cain",[2]=311,[3]=311,[4]=4,[5]=4,[6]=1,[7]={[1240]={{14.52,45.35}}},[9]=1240},
[161752] = {[1]="Ghoul",[2]=91,[3]=122,[4]=3,[5]=3,[6]=0,[7]={[1240]={{17.58,47.57},{17.49,45.07},{19.17,47.16},{18.7,46.25},{21.21,47.45},{20.54,46.05},{19.86,42.33},{14.52,47.64},{15.4,50.51}}},[9]=1240},
[161743] = {[1]="Necrotic Bear",[2]=91,[3]=122,[4]=3,[5]=3,[6]=0,[7]={[1240]={{17.12,64.35},{19.18,41.61},{17.97,40.44}}},[9]=1240},
[161749] = {[1]="Zombie",[2]=91,[3]=122,[4]=3,[5]=3,[6]=0,[7]={[1240]={{23.89,57.08},{23.19,55.84},{22.55,55.46},{23.35,54.84},{22.54,53.83},{21.57,53.79},{21.7,52.63},{25.33,53.73},{25.52,52.49},{26.27,52.61},{19.68,56.24},{19.44,56.82},{19.57,57.86},{18.59,57.18},{19.07,59.82},{19.27,60.74},{21.12,62.22},{21.13,58.48},{22.37,59.22},{21.2,50.87},{20.61,50.48},{16.81,55.72},{17.18,56.47},{17.4,55.7}}},[9]=1240},
[161753] = {[1]="Brainless Majordomo",[2]=97,[3]=115,[4]=3,[5]=3,[6]=0,[7]={[1240]={{19.99,47.87}}},[9]=1240},
[161754] = {[1]="Brainless Maid",[2]=97,[3]=97,[4]=3,[5]=3,[6]=0,[7]={[1240]={{14.32,46.3},{12.95,48.68}}},[9]=1240},
[161755] = {[1]="Brainless Stablemaster",[2]=87,[3]=87,[4]=3,[5]=3,[6]=0,[7]={[1240]={{18.5,52.72}}},[9]=1240},
[161757] = {[1]="Aberrant Progeny",[2]=913,[3]=913,[4]=7,[5]=7,[6]=1,[7]={[1240]={{17.28,46.49}}},[9]=1240},
[254584] = {'Mallek the Tormented',289,289,9,9,0,{[85]={{51.40,35.30}}},nil,1420},
[162842] = {'Sporephase Guardian',144,144,8,8,0,{[85]={{56.43,54.70},{56.72,55.75},{56.09,56.09},{57.95,57.73},{58.18,55.41},{57.56,54.83},{57.12,54.84},{56.47,54.91},{56.36,56.53},{57.31,56.98},{57.43,56.69},{57.85,56.49},{58.33,56.28},{57.64,55.29},{57.44,55.95},{57.66,54.14},{56.97,54.39}}},nil,85,nil,nil,72,nil,nil,0},
[162853] = {[1]="Brightwater Rebel",[2]=144,[3]=144,[4]=8,[5]=8,[6]=0,[7]={[85]={{67.01,50.35},{68.3,51},{67.34,51.06},{67.39,52.15}}},[9]=85},
[162854] = {[1]="Brightwater Rebel",[2]=144,[3]=144,[4]=8,[5]=8,[6]=0,[7]={[85]={{67.21,50.76},{67.11,50.01},{66.51,50.17},{67.06,51.94}}},[9]=85},
[162857] = {[1]="Alric Sading",[2]=144,[3]=144,[4]=8,[5]=8,[6]=0,[7]={[85]={{67.33,51.87}}},[9]=85},
[162859] = {[1]="Scarlet Soldier",[2]=144,[3]=144,[4]=8,[5]=8,[6]=0,[7]={[85]={{63.74,46.02},{63.74,45.52},{63.2,46.72},{62.63,47.04},{63.34,47.44}}},[9]=85},
[162860] = {[1]="Scarlet Mage",[2]=134,[3]=134,[4]=8,[5]=8,[6]=0,[7]={[85]={{64.51,46.79},{63.51,46.49},{63.72,45.06},{62.66,47.23},{63.6,47.79}}},[9]=85},
[162861] = {[1]="Scarlet Battler",[2]=122,[3]=165,[4]=8,[5]=8,[6]=0,[7]={[85]={{65,46.98},{64.45,46.62},{63.5,44.7},{63.35,45.82},{63.31,47.09}}},[9]=85},
[254936] = {[1]="Jorum Balnir",[2]=656,[3]=656,[4]=12,[5]=12,[6]=1,[7]={[85]={{77.1,59.94}}},[9]=85},
[254937] = {[1]="Vara Balnir",[2]=656,[3]=656,[4]=12,[5]=12,[6]=1,[7]={[85]={{77.5,62}}},[9]=85},
[254938] = {[1]="Jarim Balnir",[2]=656,[3]=656,[4]=12,[5]=12,[6]=1,[7]={[85]={{74.84,61.01},{74.7,61.74}}},[9]=85},
[13158] = {'Lieutenant Sanders',276,276,12,12,0,{[85]={{86.82,42.40}}},nil,85,nil,nil,72,nil,nil,0},
--Mulgore
--NPCs
[161817] = {'Redhorn',239,239,10,10,0,{[1245]={{30.83,28.37}}},nil,1245,{1660030},{},29,"H","",0},
[161818] = {'Morriga Hollowhoof',348,348,15,15,0,{[1245]={{64.84,66.09}}},nil,1245,{1660031,1660035},{1660030,1660033},29,"H","",0},
[161819] = {'Sage Nauchol',301,301,13,13,0,{[1245]={{72.33,88.30}}},nil,1245,{1660032,1660033},{1660031,1660032},29,"H","",0},
[161840] = {'Hyena Spirit',239,239,10,10,0,{[1245]={{68.71,89.81}}},nil,1245,{1660043,1660034},{1660035,1660043,1660034},72,"AH","",0},
[162902] = {'Handros',187,187,8,8,0,{[1245]={{28.86,32.82}}},nil,1245,{1660066},{},29,"H","",0},
[162903] = {'Ammus Grey-Eye',429,429,16,16,0,{[1245]={{14.42,28.93}}},nil,1245,{1660067,1660070},{1660066,1660070},29,"H","",0},
[162904] = {'Arkan Fairwind',212,212,9,9,0,{[1245]={{14.60,29.50}}},nil,1245,{}, {},29,"H","",0},
[162906] = {'Sage Muudren',584,584,20,20,0,{[215]={{44.22,59.08}}},nil,215,{1660068},{1660067},29,"H","",0},
[162908] = {'Ancestress Emnil',1756,1756,35,35,0,{[215]={{39.93,60.78}}},nil,215,{1660069},{1660069},29,"H","",0},
[991485] = {'Tharok Windhoof',499,499,20,20,0,{[215]={{46.76,49.48}}},nil,215,{500004},{500004},29,"H","",0},
[3690] = {'Kar Stormsinger',2138,2138,44,44,0,{[215]={{47.65,58.47}}},nil,215,{4420435,1903557},{14087,4420435,1903557},104,"H","Riding Trainer",83},
--Creatures
[161809] = {'Grimtotem Marauder',91,122,3,3,0,{[1245]={{46.69,53.15},{47.52,52.49},{47.90,56.97},{49.80,56.32},{49.55,59.98},{49.88,61.54},{52.64,62.10},{52.37,60.74},{52.47,57.32},{54.38,54.50},{55.30,58.82},{54.49,59.65},{50.84,64.79},{52.70,64.85},{54.13,64.67},{55.40,66.38},{56.91,64.29},{56.99,62.19},{57.21,59.75},{58.72,57.71},{61.06,59.71},{59.46,63.35},{57.84,69.81},{59.60,69.59},{60.85,70.88},{62.33,72.02},{60.04,73.13},{61.51,74.79}}},nil,1245,{559156}},
[161810] = {'Grimtotem Patrol',91,122,3,3,0,{[1245]={{61.84,68.48},{62.43,74.60},{64.72,76.08},{61.10,73.88},{57.66,78.70},{58.01,80.26},{59.62,81.12},{62.04,83.40},{66.10,84.68},{70.24,85.86},{71.83,88.29},{66.38,84.65}}},nil,1245,{559168}},
[161834] = {'Cruel Carrion Spirit',311,311,4,4,1,{[1245]={{71.02,86.27}}},nil,1245,nil},
[161850] = {[1]="Aquiline Totem",[2]=122,[3]=122,[4]=3,[5]=3,[6]=0,[7]={[1245]={{82.03,81.96}}},[9]=1245},
[161851] = {[1]="Owlish Totem",[2]=103,[3]=103,[4]=3,[5]=3,[6]=0,[7]={[1245]={{77.22,84.66}}},[9]=1245},
[161852] = {[1]="Taurine Totem",[2]=103,[3]=103,[4]=3,[5]=3,[6]=0,[7]={[1245]={{81.84,77.56}}},[9]=1245},
[161816] = {'Malgorm Hollowhoof',663,663,7,7,1,{[1245]={{79.07,74.63}}},nil,1245,nil},
[162907] = {[1]="Devouring Fire",[2]=144,[3]=144,[4]=6,[5]=6,[6]=0,[7]={[215]={{42.41,58.84},{41.83,59.47},{41.33,58.85},{41.49,58.01},{42.58,59.83},{42.52,60.66},{41.73,60.46},{40.99,59.53},{40.43,58.67},{39.86,58.04},{40.72,57.42}}},[9]=215},
[162909] = {'Thick Kodo',144,144,6,6,0,{[215]={{38.25,63.41},{41.26,62.62},{41.67,62.98},{41.12,63.15},{39.95,62.79}}},nil,215,nil,nil,72,nil,nil,0},
}
-- Backward compatibility (if any code still references AscensionNpcDB.npcData)
AscensionNpcDB = AscensionNpcDB or {}
AscensionNpcDB.npcData = AscensionDB.npcData
@@ -1,129 +0,0 @@
---@type table
local AscensionDB = QuestieLoader:CreateModule("AscensionDB")
AscensionDB.objectData = AscensionDB.objectData or {
-- Path of Ascension
[9908168]={[1]="Resurrect in Closest Town or Capital",[2]=nil,[3]=nil,[4]=nil,[5]=nil,[6]=nil},
[9942043]={[1]="Learn Novice Riding from the Riding Trainer",[2]=nil,[3]=nil,[4]={[12]={{43.97,64.16}},[141]={{56.29,57.01}},[215]={{47.69,58.52}},[14]={{55.28,75.49}},[1]={{49.15,48.13}},[85]={{59.40,51.30}}},[5]=12,[6]=nil},
[9903556]={[1]="Pets Tab (Shift+P), Mounts Tab, Summon Mount",[2]=nil,[3]=nil,[4]={[12]={{43.97,64.16}},[141]={{56.29,57.01}},[215]={{47.69,58.52}},[14]={{55.28,75.49}},[1]={{49.15,48.13}},[85]={{59.40,51.30}}},[5]=12,[6]=nil},
[9903553]={[1]="Open the Dungeon Finder (I) / Green Eye",[2]=nil,[3]=nil,[4]=nil,[5]=nil,[6]=nil},
[9903554]={[1]="Select dungeon(s) then click Find Group",[2]=nil,[3]=nil,[4]=nil,[5]=nil,[6]=nil},
[9905201]={[1]="Talk to the Beginner's Book of Ascension",[2]=nil,[3]=nil,[4]={[14]={{42.4,68.7},{52.2,43.2},{56.2,74.7}},[17]={{28.4,67.0},{63.2,37.0},{52.1,30.2}},[3430]={{44.2,70.9},{38.3,21.4},{47.0,46.1}},[12]={{48.1,41.9},{43.1,66.6}},[1]={{30.1,71.7},{46.9,52.4}},[141]={{58.7,44.3},{57.5,57.5}},[85]={{31.5,65.9},{61.4,53.0}},[3524]={{49.1,51.3},{80.7,46.3}},[215]={{47.1,60.9}},[148]={{37.3,44.0}},[130]={{43.4,41.8}},[38]={{34.9,47.7}},[3433]={{47.6,31.6}},[3525]={{55.1,59.6}},[44]={{28.2,47.7}},[331]={{36.3,49.3}},[10]={{73.9,48.0}},[40]={{56.9,54.7}}},[5]=12,[6]=nil},
[9905202]={[1]="Select Train Me and rank up your spells",[2]=nil,[3]=nil,[4]={[14]={{42.4,68.7},{52.2,43.2},{56.2,74.7}},[17]={{28.4,67.0},{63.2,37.0},{52.1,30.2}},[3430]={{44.2,70.9},{38.3,21.4},{47.0,46.1}},[12]={{48.1,41.9},{43.1,66.6}},[1]={{30.1,71.7},{46.9,52.4}},[141]={{58.7,44.3},{57.5,57.5}},[85]={{31.5,65.9},{61.4,53.0}},[3524]={{49.1,51.3},{80.7,46.3}},[215]={{47.1,60.9}},[148]={{37.3,44.0}},[130]={{43.4,41.8}},[38]={{34.9,47.7}},[3433]={{47.6,31.6}},[3525]={{55.1,59.6}},[44]={{28.2,47.7}},[331]={{36.3,49.3}},[10]={{73.9,48.0}},[40]={{56.9,54.7}}},[5]=12,[6]=nil},
[9903540]={[1]="Visit an Innkeeper and select \"Make this inn your home\"",[2]=nil,[3]=nil,[4]={[12]={{44.77,66.8},{43.45,66.2}},[1]={{47.38,52.52},{47.22,52.19}},[11]={{10.7,60.95}},[267]={{51.17,58.93},{62.78,19.03}},[17]={{51.99,29.89},{62.05,39.41},{45.58,59.04}},[1537]={{18.15,51.45}},[85]={{61.71,52.05}},[33]={{31.49,29.75},{27.04,77.31}},[15]={{66.59,45.22},{41.93,74.17},{36.89,32.35}},[44]={{27.01,44.82}},[38]={{35.53,48.4}},[1657]={{67.42,15.65}},[141]={{57.26, 60.00}},[148]={{37.04,44.13}},[331]={{36.99,49.22},{73.99,60.65}},[130]={{43.18,41.28}},[1519]={{60.39,75.28}},[1497]={{67.74,37.89}},[1638]={{45.81,64.71}},[215]={{46.62,61.09}},[10]={{73.87,44.41}},[14]={{51.51,41.64}},[1637]={{54.1,68.41},{51.14,72.6}},[8]={{45.16,56.66}},[406]={{47.47,62.13},{35.79,5.74}},[440]={{52.51,27.91}},[357]={{30.97,43.49},{74.8,45.18}},[47]={{14.15,41.57},{78.14,81.38}},[40]={{52.86,53.72}},[3]={{2.81,45.85}},[45]={{73.84,32.46}},[405]={{66.27,6.55},{24.09,68.21}},[400]={{46.07,51.52}},[618]={{61.36,38.83}},[1377]={{51.89,39.16}},[3430]={{43.67,71.31},{48.16,47.66}},[139]={{75.85,52.21}},[3433]={{48.91,32.42}},[3524]={{48.37,49.2}},[3483]={{56.71,37.47},{54.22,63.6},{26.88,59.53},{23.35,36.36}},[3487]={{79.48,58.21},{67.86,72.89}},[3557]={{59.59,19.4}},[3525]={{55.85,59.81}},[3521]={{30.66,50.93},{67.17,49.32},{78.49,62.94},{41.85,26.22}},[2367]={{-1,-1}},[3518]={{56.73,34.51},{54.22,76.1}},[3519]={{48.76,45.05},{56.7,53.27}},[3703]={{28.29,49.36},{56.32,81.54}},[3520]={{30.24,27.74},{37.06,58.27},{56.32,59.84},{61.12,28.24},{66.25,87.13}},[3522]={{53.37,55.42},{35.8,63.88},{76.09,60.31},{60.98,68.11},{62.86,38.31}},[3523]={{43.36,36.14},{31.96,64.42}},[495]={{58.39,62.45},{30.86,41.45},{49.51,10.78},{60.48,15.86},{52.15,66.41},{79.73,30.84},{25.39,59.85}},[4080]={{51.18,33.88}},[3537]={{58.29,68.05},{41.92,54.48},{57.12,18.72},{76.26,37.18},{49.67,10.19},{78.39,49.28}},[394]={{59.56,26.3},{65.42,46.89},{31.97,60.28},{20.79,64.58}},[65]={{38.19,46.65},{76.87,63.13},{77.41,51.77},{28.89,56.09},{48.14,74.76},{59.8,54.24}},[3711]={{26.75,59.27}},[4395]={{39.52,71.43},{50.25,39.52},{40.53,55.57},{65.61,32.16},{50.41,41.46},{44.66,63.34},{67.38,35.35}},[66]={{40.83,66.26},{59.33,57.3}},[67]={{41.09,85.91},{28.71,74.38},{37.13,49.52},{30.89,37.36},{67.61,50.61},{48.86,65.04}},[210]={{43.99,22.18},{76.19,19.66},{76.1,23.96}}},[5]=12,[6]=nil},
--Elwynn Forest
[900001]={[1]="Lost Page I",[4]={[12]={{50.29,42.06}}},[5]=12,[6]=nil},
[900002]={[1]="Lost Page II",[4]={[12]={{49.60,39.60}}},[5]=12,[6]=nil},
[900003]={[1]="Lost Page III",[4]={[12]={{49.50,40.80}}},[5]=12,[6]=nil},
[900004]={[1]="Lost Page IV",[4]={[12]={{49.60,39.70}}},[5]=12,[6]=nil},
[999005]={[1]="Abbess Journal Purified",[2]=nil,[3]=nil,[4]={[12]={{51.5,27.5}}},[5]=12,[6]=nil},
[999006]={[1]="Abbesss Staff Purified",[2]=nil,[3]=nil,[4]={[12]={{55.9,30.2}}},[5]=12,[6]=nil},
[999007]={[1]="Heretical Idol Purified",[2]=nil,[3]=nil,[4]={[12]={{52.3,29.4}}},[5]=12,[6]=nil},
[999008]={[1]="Jeweled Relic Purified",[2]=nil,[3]=nil,[4]={[12]={{53.4,31.1}}},[5]=12,[6]=nil},
[999010]={[1]="Hidden Path",[2]=nil,[3]=nil,[4]={[12]={{55.3,37.9}}},[5]=12,[6]=nil},
[999011]={[1]="Ruined Estate",[2]=nil,[3]=nil,[4]={[12]={{58.7,33.3}}},[5]=12,[6]=nil},
[999012]={[1]="Wayward Theologian",[2]=nil,[3]=nil,[4]={[12]={{60.5,28.7}}},[5]=12,[6]=nil},
[999013]={[1]="Melon",[2]=nil,[3]=nil,[4]={[12]={{41.54,67.68},{41.58,67.31},{41.59,67.55},{41.48,67.36},{41.36,67.49},{41.29,67.57},{41.29,67.42},{41.40,67.28},{41.31,67.25},{41.11,67.52}}},[5]=12,[6]=0},
[999014]={[1]="Pumpkin",[2]=nil,[3]=nil,[4]={[12]={{42.05,67.64},{42.22,67.53},{42.25,67.66}}},[5]=12,[6]=0},
[999015]={[1]="apple",[2]=nil,[3]=nil,[4]={[12]={{45.07,64.83},{45.09,64.96},{45.03,64.98},{45.04,65.22},{45.11,65.17},{45.21,65.02},{45.19,64.93},{45.26,64.91},{45.46,64.92},{45.51,65.02},{45.55,64.92},{45.57,65.08},{45.51,65.14},{45.55,65.19},{45.39,65.20},{45.36,65.18},{45.32,65.13}}},[5]=12,[6]=0},
[96000]={[1]="Maclure Supplies",[2]=nil,[3]=nil,[4]={[12]={{48.0,86.9},{48.0,86.9}}},[5]=12,[6]=0},
[2300579]={[1]="Kobold Warren",[2]=nil,[3]=nil,[4]={[12]={{40.4,73.2},{38.2,76.6},{39.3,77.1},{45.6,77.0},{44.6,77.4},{44.7,78.8},{43.3,79.2},{42.3,73.4},{42.3,78.0},{40.5,78.2},{42.3,78.8},{40.5,80.3},{41.2,74.4},{43.5,76.7},{39.5,76.0},{38.4,73.8},{41.0,76.7},{42.4,76.0}}},[5]=12,[6]=0},
[9000057]={[1]="Mirror Shard",[2]=nil,[3]=nil,[4]={[12]={{30.92,58.76},{30.80,58.09},{31.08,57.76},{31.05,57.52},{31.45,58.88},{31.22,58.97},{31.87,59.18},{30.35,59.43},{29.78,59.24},{30.44,58.11},{30.06,57.97},{31.20,57.50}}},[5]=12,[6]=nil},
[9017008]={[1]="Mirror Lake Harvest",[2]=nil,[3]=nil,[4]={[12]={{30.15,66.70},{30.24,66.40},{30.37,66.87},{30.52,66.35},{30.59,67.24},{30.71,66.86},{30.80,66.50},{31.02,66.95},{31.19,66.74},{31.24,66.35},{31.49,66.67}}},[5]=12,[6]=nil},
[9900730]={[1]="Stolen Supply Crate",[2]=nil,[3]=nil,[4]={[12]={{56.75,80.60},{56.90,79.96},{56.88,81.37},{57.11,81.04},{57.55,79.73},{57.78,80.52},{57.39,80.87},{56.90,79.94},{57.02,79.06},{56.98,78.56}}},[5]=12,[6]=nil},
[99017005]={[1]="Smudged Note",[2]={17005},[3]=nil,[4]={[12]={{64.57,41.80}}},[5]=12,[6]=nil},
[4673875] = {"Explore Stormwind to your heart's content, then visit Flightmaster Dungar Longdrink to fly to Westfall to continue your adventure",nil,nil,{[1519]={{71.00,72.66}}},1519,0},
--Dun Morogh
[2300507] = {[1]="Plating examined",[4]={[1239]={{37.8,58.23}}},[5]=1239},
[2300508] = {[1]="Crate examined",[4]={[1239]={{36.66,56.12}}},[5]=1239},
[2300509] = {[1]="Crystal shards examined",[4]={[1239]={{35.98,53.44}}},[5]=1239},
[2300510] = {[1]="Banner examined",[4]={[1239]={{35.31,51.84}}},[5]=1239},
[5401381] = {[1]="Hidden path tread",[4]={[1239]={{39.38,36.91}}},[5]=1239},
[5883992] = {[1]="Ask Arathror to help you put on the disguise",[4]={[1239]={{40.99,33.93}}},[5]=1239},
[5888887] = {[1]="Radiant Devotees doused",[4]={[1239]={{50.89,19.79},{53.29,22.45},{54.28,21.74},{50.47,22.60},{50.08,23.43},{49.82,23.66},{49.45,19.25},{51.25,20.38},{50.74,18.11},{51.15,17.81},{51.78,20.05},{52.48,20.85},{53.84,19.47},{53.95,19.13},{53.19,18.76},{54.40,24.45},{54.00,24.39},{55.64,24.86},{56.32,27.38},{56.94,27.45},{57.22,25.45},{57.42,25.12},{53.40,21.65},{53.08,24.47},{52.38,23.56},{52.15,24.75},{55.46,19.19},{56.89,19.36}}},[5]=1239},
[2300550] = {"Thunderbrew Hop",nil,nil,{[1]={{47.80,56.07},{47.87,55.58},{48.05,55.99},{47.91,56.32},{47.86,56.57},{48.15,56.66},{48.37,56.65}}},1,0},
[5855933] = {[1]="Listen to Gravedigger Nonuid",[4]={[1]={{48.87,52.65}}},[5]=1},
[244620] = {"Dun Morogh Tree",nil,nil,{[1]={{62.93,57.82},{46.76,52.29},{58.25,53.55},{58.38,54.34},{59.23,54.10},{58.42,57.43},{59.80,58.73},{60.68,58.27},{60.81,56.51},{60.33,55.39},{62.01,55.44},{63.67,55.44},{64.25,55.74},{64.09,54.75},{64.69,55.49},{62.81,57.06},{63.51,57.04},{64.34,59.66},{63.94,60.69},{63.14,60.37},{63.40,61.16},{62.21,60.30},{61.76,60.21},{61.58,59.79},{61.14,60.81},{60.77,61.21},{60.54,61.47}}},1,0},
--Teldrassil
[2300512] = {[1]="Cut of Good Meat",[4]={[2031]={{47.9,38.62},{47.83,38.14},{51.23,56.05},{52.08,59.8},{52.87,64.32}}},[5]=2031},
[2300513] = {[1]="Sanctified flesh offered",[4]={[1243]={{72.55,20.55}}},[5]=1243},
[2300526] = {[1]="Newborns saved",[4]={[1243]={{71.96,21.98}}},[5]=1243},
[5943833] = {[1]="Butterflies delivered",[4]={[1243]={{65.9,35.18}}},[5]=1243},
[5166357] = {[1]="Carrion Path traversed",[4]={[1243]={{61.66,36.17}}},[5]=1243},
[5911478] = {[1]="Communion completed",[4]={[1243]={{71.95,21.56}}},[5]=1243},
[5005829] = {[1]="Flesh sanctified at the Moonwell",[4]={[1243]={{65.35,20.54}}},[5]=1243},
[5861249] = {[1]="Speak with Lady Aegya",[4]={[1243]={{69.64,24.5}}},[5]=1243},
[5405229] = {[1]="Speak with Thariel Wingstroke",[4]={[1243]={{51.44,67.98}}},[5]=1243},
[5388202] = {[1]="Vulture Egg destroyed",[4]={[141]={{59.44,49.3},{57.91,50.7}}},[5]=141},
[5399902] = {[1]="Listen to Aleena Whisperbough",[4]={[141]={{59.35,58.93}}},[5]=141},
--Durotar
[1064805] = {"Elemental Fire",nil,nil,{[1244]={{35.31,24.22}}},1244,0},
[2392807] = {"Elemental Earth",nil,nil,{[1244]={{35.71,23.16}}},1244,0},
[3478505] = {"Elemental Air",nil,nil,{[1244]={{36.38,23.63}}},1244,0},
[4541078] = {"Elemental Water",nil,nil,{[1244]={{36.11,24.92}}},1244,0},
[254001] = {"Strange Flower",nil,nil,{[1244]={{35.64,35.81}}},1244,0},
[6649507] = {"Report delivered to Esgramor",nil,nil,{[1244]={{44.77,67.11}}},1244,0},
[9070546] = {"Speak with Karagar in Razor Hill.",nil,nil,{[1244]={{44.80,67.09}}},1244,0},
[2036820] = {"Magical barrier crossed",nil,nil,{[2030]={{16.15,59.24}}},2030,0},
[254004] = {"Crude Centaur Drawing",{254011},{254010},{[14]={{46.55,78.75}}},14,0},
[254003] = {[1]="Metallic Debris",[4]={[14]={{53.04,63.63},{52.79,65.08},{53.69,64.74},{54.05,62.31},{53.29,59.17},{53.96,57.62},{52.66,55.41},{52.81,53.54},{52.9,51.52}}},[5]=14},
[2300551] = {[1]="Elven Relic of Old",[4]={[14]={{58.26,39.18},{57.57,39.15}}},[5]=14},
[2300553] = {[1]="Elven Relic of Old",[4]={[14]={{57.54,37.43},{58.55,39.36}}},[5]=14},
[2300554] = {[1]="Elven Relic of Old",[4]={[14]={{57.51,37.37},{58.81,38.5},{58.16,37.21}}},[5]=14},
[2300555] = {[1]="Elven Relic of Old",[4]={[14]={{57.78,40.33},{59.04,39.44},{57.99,36.24}}},[5]=14},
[2300556] = {[1]="Elven Relic of Old",[4]={[14]={{57.78,38.4},{57.84,35.53}}},[5]=14},
[2300557] = {[1]="Elven Relic of Old",[4]={[14]={{57.83,38.81},{58.14,35.53}}},[5]=14},
[2300558] = {[1]="Elven Relic of Old",[4]={[14]={{58.06,38.53},{59.65,39.47},{58.81,38.16}}},[5]=14},
[5954015] = {[1]="Listen to Bagamul Skyfang",[4]={[14]={{51.77,44.36}}},[5]=14},
[5954415] = {[1]="Full Dirgran's Pitcher",[4]={[14]={{52.10,41.80}}},[5]=14},
[254002] = {[1]="Ouru'Gai Crystal",[4]={[17]={{56.79,20.1}}},[5]=1413},
[5777365] = {[1]="Reversion process observed",[4]={[17]={{62.36,10.25}}},[5]=17},
--Tirisfal Glades
[2300528] = {[1]="Gaudy Painting",[4]={[1240]={{15.83,47.58}}},[5]=1240},
[2300529] = {[1]="Shimmering Jewel",[4]={[1240]={{19.83,48.08}}},[5]=1240},
[2300530] = {[1]="Crystal Ball",[4]={[1240]={{17.67,47.52}}},[5]=1240},
[2300531] = {[1]="Family Signet",[4]={[1240]={{18.62,45.61}}},[5]=1240},
[2306601] = {[1]="Concoction Tested on Skeletons",[4]={[85]={{47.75,37.51},{42.39,33.63},{47.74,29.22},{47.88,34.06},{51.01,34.0},{43.32,32.55},{46.17,29.41},{46.6,31.97},{48.27,37.54},{44.88,35.97},{47.72,30.75},{48.21,30.36},{47.11,32.3},{50.45,31.51},{42.83,34.22},{47.33,30.18},{49.16,27.88},{43.59,28.6},{42.68,35.15},{43.87,30.53},{43.93,34.96},{45.63,30.43},{46.99,42.0},{45.27,42.87},{45.39,41.47},{47.44,38.28},{46.75,37.54},{44.39,38.28},{45.36,39.61},{48.33,39.46},{47.41,40.68},{46.77,39.86},{45.42,40.52},{45.15,37.54},{44.42,37.6},{45.26,32.42},{46.19,31.68},{45.27,34.88},{44.59,40.5},{48.91,42.83},{50.22,42.99},{49.88,36.82},{48.3,41.65},{47.58,42.83},{49.59,36.02},{49.22,33.88},{48.73,34.09},{49.02,34.13},{47.67,31.24},{49.02,35.26},{49.21,33.54},{46.87,33.38},{46.91,34.88},{49.24,36.25},{47.48,36.08},{42.69,32.27},{49.82,36.21}}},[5]=85},
[2306602] = {[1]="Concoction Tested on Zombies",[4]={[85]={{51.31,28.1},{54.72,31.34},{53.41,30.39},{52.1,32.85},{49.76,30.26},{53.26,31.03},{49.73,28.59},{54.36,29.2},{52.67,26.02},{51.58,33.43},{50.58,29.08},{48.6,31.98},{52.53,26.32},{52.4,26.48},{51.28,31.46},{52.64,26.31},{52.55,26.88},{52.02,30.57},{52.24,26.36},{51.97,26.8},{52.63,27.0},{51.78,27.0},{51.9,25.84}}},[5]=85},
[2306603] = {[1]="Concoction Tested on Banshees",[4]={[85]={{52.68,29.32},{55.16,29.96},{52.87,27.04},{54.74,29.53},{53.96,29.82},{51.87,31.48},{53.52,28.0},{52.01,26.7},{52.04,26.35},{50.98,30.53},{51.42,29.26},{52.23,27.45},{51.87,28.76},{52.61,25.83},{51.97,26.02},{52.03,25.63}}},[5]=85},
[2306604] = {[1]="Unusal Subject Tested",[4]={[85]={{51.40,35.30}}},[5]=85},
[5093560] = {[1]="Listen to Dark Priestess Ashara",[4]={[85]={{59.76,54.57}}},[5]=85},
[192380] = {[1]="Gravestone",[4]={[85]={{70.1,63.1},{70,63.3},{70,63.4},{70,63.6},{69.9,63.5},{69.8,63.7},{69.9,63.8},{70,63.8},{70,63.9},{70.1,63.9},{70.2,64},{70.2,63.8},{70.1,63.7},{70.2,63.6},{70.3,63.6},{70.3,63.4},{70.4,63.3}}},[5]=85},
[2300545] = {"Necrotic Spore",nil,nil,{[85]={{57.50,55.75},{57.70,55.74},{57.57,55.50},{57.40,55.30},{57.60,55.12},{57.81,55.01},{57.05,55.80},{57.03,55.51},{56.75,55.14},{56.72,54.76},{56.65,54.32},{57.68,54.42},{57.65,54.03},{57.12,53.67}}},85,0},
[254678] = {[1]="Invincible's Gravestone Polished",[4]={[85]={{78.64,59.52}}},[5]=85},
[254679] = {[1]="Scarlet Supplies Infected",[4]={[85]={{85.79,34.76},{86.42,34.59},{82.27,33.25},{81.36,31.72},{83.85,30.91}}},[5]=85},
--Mulgore
[5976414] = {[1]="Hard Basin discovered",[4]={[1245]={{66.53,84.56}}},[5]=1245},
[2300532] = {[1]="Offering Bone",[4]={[1245]={{61.38,76.42},{58.01,80.26},{62.04,83.4}}},[5]=1245},
[2300514] = {[1]="Grimtotem Armor Piece",[4]={[1245]={{72.63,81.8},{73.04,81.7},{73.78,81.66},{73.69,81.08},{73.31,81.12},{73.21,80.82},{72.88,80},{73.12,79.38},{73.35,79.77},{74.33,81.02},{74.57,80.03},{74.03,79.58},{73.57,78.94},{73.56,78.25}}},[5]=1245},
[2300515] = {[1]="Exalted Pendant",[4]={[1245]={{75.66,75.24}}},[5]=1245},
[2300527] = {"Aquiline Totem",nil,nil,{[1245]={{82.03,81.96}}},1245,0},
[2300533] = {"Owlish Totem",nil,nil,{[1245]={{77.22,84.87}}},1245,0},
[2300534] = {"Taurine Totem",nil,nil,{[1245]={{81.84,77.56}}},1245,0},
[5299566] = {[1]="Listen to Ammus Grey-Eye",[4]={[1245]={{14.39,28.95}}},[5]=1245},
[1942447] = {"Ask Nauchol to dress you in the disguise",nil,nil,{[1245]={{72.39,88.46}}},1245,0},
[5195713] = {[1]="Parachute Used",[4]={[1245]={{14.63,29.54}}},[5]=1245},
[5195711] = {[1]="Full Sanctuary Amphora",[4]={[1245]={{14.30,35.30}}},[5]=1245},
[2300552] = {[1]="Prairie Sap",[4]={[215]={{39.84,61.47},{39.42,60.23},{38.88,59.72},{38.78,59.32},{38.57,59.96},{37.27,59.58},{38.06,60.83},{37.65,61.39},{38.21,62.16},{38.59,62.23},{39.21,62.32},{38.95,63.63},{38.5,63.88},{38.62,64.23}}},[5]=215},
}
-- Backward compatibility (if any code still references AscensionObjectDB.objectData/objectDat)
AscensionObjectDB = AscensionObjectDB or {}
AscensionObjectDB.objectData = AscensionDB.objectData
@@ -1,154 +0,0 @@
---@type table
local AscensionDB = QuestieLoader:CreateModule("AscensionDB")
AscensionDB.questData = AscensionDB.questData or {
--Path of Ascension Quests
[1903520]={[1]="Path to Ascension: Rank Up Your Spells",[2]={{75118}},[3]={{75118}},[4]=7,[5]=8,[6]=0,[8]={"Talk to the Beginner's Book of Ascension: 0/1","Select Train Me and rank up your spells: 0/1"},[10]={nil,{{9905201,"Talk to the Beginner's Book of Ascension: 0/1"},{9905202,"Select Train Me and rank up your spells: 0/1"}}},[17]=nil,[30]=60},
[1903540]={[1]="Path to Ascension: Visit an Innkeeper",[2]={{75118}},[3]={{75118}},[4]=7,[5]=8,[6]=0,[8]={"Visit an Innkeeper and select Make this inn your home."},[10]={nil,{{9903540,'Visit an Innkeeper and select "Make this inn your home": 0/1'}}},[17]=nil,[30]=60},
[580168]={[1]="Path to Ascension: Less Running, More Ressing",[2]={{75118}},[3]={{75118}},[4]=8,[5]=8,[6]=0,[8]={"Cast Resurrect in Closest Town or Capital City next time you die.","Resurrect in Closest Town or Capital: 0/1"},[10]={nil,{{9908168,"Resurrect in Closest Town or Capital: 0/1"}}},[17]=nil,[30]=60},
[4420430]={[1]="Path to Ascension: Novice Rider",[2]={{97921}},[3]={{97921}},[4]=6,[5]=8,[6]=0,[8]={"Learn how to ride and claim your first mount.","Learn Novice Riding from the Riding Trainer: 0/1"},[10]={nil,{{9942043,"Learn Novice Riding from the Riding Trainer: 0/1"}}},[17]=nil,[30]=60},
[4420439] = {[1]="Path to Ascension: Novice Rider",[2]={{449169}},[4]=4,[5]=8,[6]=1101,[8]="Learn how to ride and claim your first mount.",[10]={nil,{{9942043,"Learn Novice Riding from the Riding Trainer: 0/1"}}},[17]=141,},
[1903556]={[1]="Path to Ascension: Mount Up!",[2]={{97921,449169,7954}},[3]={{97921,449169,7954}},[4]=6,[5]=8,[6]=0,[8]={"Learn how to mount up!","Pets Tab (Shift+P), Mounts Tab, Summon Mount: 0/1"},[10]={nil,{{9903556,"Pets Tab (Shift+P), Mounts Tab, Summon Mount: 0/1"}}},[13]={4420430,4420432},[17]=nil,[30]=60},
[1903553]={[1]="Path to Ascension: Dungeon Finder",[2]={{75118}},[3]={{75118}},[4]=15,[5]=15,[6]=0,[8]={"Open the Dungeon Finder and queue for a dungeon!","Open the Dungeon Finder (I) / Green Eye: 0/1","Select dungeon(s) then click Find Group: 0/1"},[10]={nil,{{9903553,"Open the Dungeon Finder (I) / Green Eye: 0/1"},{9903554,"Select dungeon(s) then click Find Group: 0/1"}}},[17]=12},
[4420435]={[1]="Path to Ascension: Novice Rider",[2]={{3690}},[4]=7,[5]=9,[6]=690,[7]=0,[8]={"Learn how to ride and claim your first mount."},[10]={nil,{{9942043,"Learn Novice Riding from the Riding Trainer: 0/1"}}},[17]=215},
[1903557]={[1]="Path to Ascension: Mount Up!",[2]={{3690,7953,4773}},[3]={{3690,7953,4773}},[4]=7,[5]=9,[6]=0,[7]=0,[8]={"Learn how to mount up!"},[10]={nil,{{9903556,"Pets Tab (Shift+P), Mounts Tab, Summon Mount: 0/1"}}},[13]={4420434,4420435,4420437},[17]=nil},
[4420437]={[1]="Path to Ascension: Novice Rider",[2]={{7953}},[4]=6,[5]=8,[6]=690,[7]=0,[8]={"Learn how to ride and claim your first mount."},[10]={nil,{{9942043,"Learn Novice Riding from the Riding Trainer: 0/1"}}},[17]=14},
[4420432] = {[1]="Path to Ascension: Novice Rider",[2]={{7954}},[3]={{7954}},[4]=5,[5]=9,[6]=1101,[8]="Learn how to ride and claim your first mount.",[10]={nil,{{9942043,"Learn Novice Riding from the Riding Trainer: 0/1"}}},[17]=1},
[4420434]={[1]="Path to Ascension: Novice Rider",[2]={{4773}},[3]={{4773}},[4]=6,[5]=8,[6]=690,[7]=0,[8]={"Learn how to ride and claim your first mount."},[10]={nil,{{9942043,"Learn Novice Riding from the Riding Trainer: 0/1"}}},[17]=85},
[100466]={[1]="Path to Ascension: Westfall",[2]={{466}},[4]=10,[5]=12,[6]=0,[7]=0,[8]={"Explore Stormwind to your heart's content, then visit Flightmaster Dungar Longdrink to fly to Westfall to continue your adventure."},[10]={nil,{{4673875}}},[17]=1519},
--Elwynn Forest
[17000]={[1]="Stolen Supplies",[2]={{250}},[3]={{250}},[4]=5,[5]=9,[6]=1101,[7]=nil,[8]={"Return the Stolen Supplies to Pa Maclure."},[9]=nil,[10]={nil,{{96000,"Retrieve the Stolen Supplies"}}},[11]=nil,[12]=nil,[13]=nil,[14]=nil,[15]=nil,[16]=nil,[17]=12,[18]=nil,[19]=nil,[20]=nil,[21]=nil,[22]=nil,[23]=nil,[24]=nil,[25]=nil,[26]={{72,25}}},
[100073]={[1]="Supply Run",[2]={{241}},[3]={{241}},[4]=6,[5]=8,[6]=1101,[7]=nil,[8]={"","Recover 4 Stolen Supply Crates from the Bandit Bastion, east of Goldshire.","","- Stolen Goods x 4"},[9]=nil,[10]={nil,{{9900730,"Stolen Supply Crate"}}},[11]=nil,[12]=nil,[13]={47},[14]=nil,[15]=nil,[16]=nil,[17]=12},
[17001]={[1]="Extravagant Order",[2]={{241}},[3]={{241}},[4]=6,[5]=8,[6]=1101,[7]=nil,[8]={"","Return 4 Gem Encrusted Spider Silk to Tharynn Bouden.","","- Gem Encrusted Spider Silk x 4"},[9]=nil,[10]={nil,nil,{{157001,"Gem Encrusted Spider Silk"}}},[11]=nil,[12]=nil,[13]={47},[14]=nil,[15]=nil,[16]=nil,[17]=12},
[17002]={[1]="The Master's Orders",[2]={{9000017}},[3]={{9000017}},[4]=8,[5]=10,[6]=1101,[7]=nil,[8]={"","Recover 10 Depleted Mana Gems and return to the Tower of Azora.","","- Depleted Mana Gem x 10"},[9]=nil,[10]={nil,nil,{{157002,"Depleted Mana Gem"}}},[11]=nil,[12]=nil,[13]=nil,[14]=nil,[15]=nil,[16]=nil,[17]=12,[18]=nil,[19]=nil,[20]=nil,[21]=nil,[22]=nil,[23]=nil,[24]=nil,[25]=nil,[26]=nil,[27]=nil,[28]=nil,[29]=nil,[30]=nil},
[17003]={[1]="Slimy Solution",[2]={{9000017}},[3]={{9000017}},[4]=8,[5]=10,[6]=1101,[7]=0,[8]={"Retrieve 10 Slimy Murloc Spittle Samples and return to the Tower of Azora."},[9]=nil,[10]={[5]={{{46,732},46,"Slimy Murloc Spittle Collected"}}},[11]=157006,[12]=nil,[13]=nil,[14]=nil,[15]=nil,[16]=nil,[17]=12},
[17004]={[1]="Disarming the Gnolls",[2]={{261}},[3]={{261}},[4]=8,[5]=10,[6]=1101,[7]=0,[8]={"","Retrieve 6 Gnoll Blades and 10 Gnoll Axes and return to Guard Thomas at the east Elwynn bridge.","","- Gnoll Sword x 6","- Gnoll Axe x 10"},[9]=nil,[10]={nil,nil,{{157007,"Gnoll Sword"},{157008,"Gnoll Axe"}}},[11]=nil,[12]=nil,[13]={35},[14]=nil,[15]=nil,[16]=nil,[17]=12},
[17005]={[1]="Last Memento",[2]={nil,{99017005},nil},[3]={{11916}},[4]=8,[5]=10,[6]=1101,[7]=0,[8]={"","Return the Smudged Note to Imelda in Stormwind."},[11]=157012,[17]=12},
[17008]={[1]="Reclaim the Harvest",[2]={{955}},[3]={{955}},[4]=8,[5]=10,[6]=1101,[7]=nil,[8]={"","Retrieve 8 Mirror Lake Apples and return them to Sergeant De Vries in Westbrook Garrison.","","- Mirror Lake Apple x 8"},[9]=nil,[10]={nil,nil,{{157014,"Mirror Lake Apple"}}},[11]=nil,[12]=nil,[13]=nil,[14]=nil,[15]=nil,[16]=nil,[17]=12,[18]=nil,[19]=nil,[20]=nil,[21]=nil,[22]=nil,[23]=nil,[24]=nil,[25]=nil,[26]=nil,[27]=nil,[28]=nil,[29]=nil,[30]=nil,[31]={{nil,4,"Mirror Lake Harvest",1,{{"object",9017008}}}},[32]=nil},
[1660056]={[1]="Agria's Medicine",[2]={{162815}},[3]={{162802}},[4]=5,[5]=8,[6]=1101,[7]=nil,[8]={"Buy the potion's ingredients at the Goldshire market: Elgris Blossom Petals, Dun Kazad Liquor Concentrate, Pumpkin Juice, and a Murloc Eyeball."},[9]=nil,[10]={[3]={{558956,"Collect Elgris Blossom Petals"},{558957,"Collect Dun Kazad Liquor Concentrate"},{558958,"Collect Pumpkin Juice"},{558959,"Collect Murloc Eyeball"}}},[11]=558960,[12]=nil,[13]={1660055},[14]=nil,[15]=nil,[16]=nil,[17]=12,[18]=nil,[19]=nil,[20]=nil,[21]={558956,558957,558958,558959},[22]=nil,[23]=nil,[24]=nil,[25]=nil,[26]={{72,250}}},
[1660057]={[1]="Seven Years of Bad Luck",[2]={{162802}},[3]={{162802}},[4]=8,[5]=10,[6]=1101,[7]=nil,[8]={"Inspect the broken mirror shards that Aldia Crayon blames for the curse afflicting Lady Agria Spada."},[9]=nil,[10]={nil,{{9000057,"Mirror Shard Inspected"}}},[11]=nil,[12]=nil,[13]={1660056},[14]=nil,[15]=nil,[16]=nil,[17]=12},
[1660058]={[1]="Worm-Eaten Apple",[2]={{162805}},[3]={{162805}},[4]=5,[5]=8,[6]=1101,[7]=nil,[8]={"Find and destroy the kobold warrens around Goldshire."},[9]=nil,[10]={nil,{{2300579,"Destroy Kobold Warrens"}}},[11]=nil,[12]=nil,[13]=nil,[14]=nil,[15]=nil,[16]=nil,[17]=12,[18]=nil,[19]=nil,[20]=nil,[21]=nil,[22]=nil,[23]=nil,[24]=nil,[25]=nil,[26]={{72,250}}},
[1660059]={[1]="Goldshire's Generosity",[2]={{162807}},[3]={{162801}},[4]=6,[5]=8,[6]=1101,[8]={"","Gather Melons, Pumpkins, and Apples from the farms around Goldshire. Then deliver them to Eldor Hammer, leader of the refugees.","","- Pumpkin x 3","- Melon x 3","- Apple x 10"},[10]={nil,nil,{{558961},{558962},{558963}}},[13]={1660055},[17]=12,[23]=0,[24]=0},
[1660000]={[1]="Bookworm",[2]={{161700}},[3]={{161701}},[4]=3,[5]=6,[6]=1101,[7]=nil,[8]={"Speak with Seminarian Moroi, brother of Bianca Spada."},[9]=nil,[10]=nil,[11]=nil,[12]=nil,[13]=nil,[14]=nil,[15]=nil,[16]=nil,[17]=9},
[1660001]={[1]="Knowledge Corrupts",[2]={{161701}},[3]={{161701}},[4]=3,[5]=6,[6]=1101,[7]=nil,[8]={"Recover the missing pages from Morois unclassified manuscript, scattered throughout the abbey."},[9]=nil,[10]={nil,nil,{{559130},{559131},{559132},{559133}}},[11]=nil,[12]=nil,[13]={1660000},[14]=nil,[15]=nil,[16]=nil,[17]=9},
[1660002]={[1]="The Ruins of Northshire",[2]={{161701}},[3]={{161702}},[4]=3,[5]=6,[6]=1101,[7]=nil,[8]={"Locate the cellar entrance to the Secret Inquisitorial Dungeon."},[9]={"Secret Inquisitorial Dungeon entrance found: 0/1",{[12]={{52.30,36.30}}}},[10]=nil,[11]=nil,[12]={1660001},[13]=nil,[14]=nil,[15]=nil,[16]=nil,[17]=9},
[1660003]={[1]="Accursed Sisterhood",[2]={{161702}},[3]={{161702}},[4]=3,[5]=6,[6]=1101,[7]=nil,[8]={"Purify the belongings of the former abbess, scattered throughout the Secret Inquisitorial Dungeon."},[9]=nil,[10]={nil,{{999005,"Abbess Journal purified"},{999006,"Abbesss Staff purified"},{999007,"Heretical Idol purified"},{999008,"Jeweled Relic purified"}}},[11]=nil,[12]=nil,[13]={1660002},[14]=nil,[15]=nil,[16]=nil,[17]=9},
[1660004]={[1]="Words That Shepherd Madness",[2]={{161702}},[3]={{161701}},[4]=3,[5]=6,[6]=1101,[7]=nil,[8]={"Find the hidden path leading to the top of the waterfall and confront the sins of the former abbess of Northshire."},[9]=nil,[10]={[2]={{999010,"Hidden Path found"},{999011,"Ruined Estate discovered"},{999012,"Wayward Theologian confronted"}}},[11]=nil,[12]=nil,[13]={1660003},[14]=nil,[15]=nil,[16]=nil,[17]=9},
[1660036]={[1]="Oracular Idol",[2]={nil,nil,{559159}},[3]={{161844}},[4]=3,[5]=6,[6]=1101,[7]=nil,[8]={"Collect three Prophet's Oracular Orbs from the murloc oracles roaming the Shadewell Spring."},[9]=nil,[10]={nil,nil,{{559159,"Prophet's Oracular Orb"}}},[11]=559159,[12]=nil,[13]=nil,[14]=nil,[15]=nil,[16]=nil,[17]=9},
[100074]={[1]="A Betrayal Within",[2]={nil,{5055565}},[3]={{240}},[4]=4,[5]=8,[6]=1101,[7]=nil,[8]={"","Return to Marshal Dughan."},[9]=nil,[10]=nil,[11]=nil,[12]=nil,[13]=nil,[14]=nil,[15]=nil,[16]=nil,[17]=12},
[1660055]={[1]="The Maid I Left Behind",[2]={{161700}},[3]={{162800}},[4]=6,[5]=8,[6]=1101,[7]=nil,[8]=nil,[9]=nil,[10]=nil,[11]=nil,[12]=nil,[13]={1660004},[14]=nil,[15]=nil,[16]=nil,[17]=12},
[1660038]={[1]="The Saddest Among Us",[2]={{161702}},[3]={{161702}},[4]=3,[5]=6,[6]=1101,[7]=nil,[8]={"Defeat the Cursed Censor in the Secret Inquisitorial Dungeon."},[9]=nil,[10]={[1]={{161712,"Accursed Censor slain"}}},[11]=nil,[12]=nil,[13]={1660002},[14]=nil,[15]=nil,[16]=nil,[17]=9},
[1660005]={[1]="The Threat Swept Downstream",[2]={{161705}},[3]={{161705}},[4]=3,[5]=6,[6]=1101,[7]=nil,[8]={"Defeat the Defias lurking in the ruined tower and thin the ranks of the Shadewell murlocs atop the waterfall, across the rope bridge."},[9]=nil,[10]={[1]={{161736,"Defias Plunderer slain"},{161716,"Shadewell Murloc slain"}}},[11]=nil,[12]=nil,[13]={1660003},[14]=nil,[15]=nil,[16]=nil,[17]=9},
[1660060]={[1]="Stay a While",[2]={{162806}},[3]={{162806}},[4]=6,[5]=8,[6]=1101,[7]=nil,[8]={"","Take a moment from the noise and haste and stay a while to listen to Aliscar Lend.","","- Listen to Aliscar Lend x 1"},[9]=nil,[10]={[1]={{162943,"Listen to Aliscar Lend"}}},[11]=nil,[12]=nil,[13]=nil,[14]=nil,[15]=nil,[16]=nil,[17]=12},
[100071]={[1]="Defias Disruption",[2]={{6778}},[3]={{6778}},[4]=6,[5]=8,[6]=1101,[7]=nil,[8]={"","Thin the ranks of the Defias at the Bandit Bastion, east of Goldshire.","","- Defias Bandit x 6","- Defias Rogue Wizard x 4"},[9]=nil,[10]={[1]={{116,"Defias Bandit slain"},{474,"Defias Rogue Wizard slain"}}},[11]=nil,[12]=nil,[13]={47},[14]=nil,[15]=nil,[16]=nil,[17]=12},
--Dun Morogh
[254000] = {[1]="A Small Mistake",[2]={{254000}},[3]={{254000}},[4]=2,[5]=2,[6]=1101,[8]="Search the Frostmane Encampment for Clues.",[10]={nil,nil,{{254000}}},[17]=1239},
[254001] = {[1]="We Found Her!",[2]={{254000}},[3]={{254000}},[4]=2,[5]=2,[6]=1101,[8]="Search for Nylrisa to the south-west of Brewnall Village.",[10]={nil,nil,{{254001}}},[13]={254000},[17]=1239},
[254002] = {[1]="The Scout's Favor",[2]={{254000}},[3]={{254002}},[4]=1,[5]=2,[6]=1101,[8]="Slay 4 Rockjaw Raiders and meet with Mountaineer Tagnur on the other end of the tunnel.",[10]={{{1718}},nil,nil},[13]={57393},[17]=1239},
[254003] = {[1]="Old Mirsinth",[2]={{254002}},[3]={{254003}},[4]=1,[5]=4,[6]=1101,[8]="Find the exiled Frostmane troll.",[13]={254002},[17]=1},
[1660006] = {[1]="Smoke on the Wind",[2]={{161718}},[3]={{161719}},[4]=2,[5]=6,[6]=1101,[8]="Follow in the footsteps of Grelbin, son of Groldha, and investigate the source of the smoke.",[10]={{{2300507},{2300508},{2300509},{2300510}}},[17]=1239},
[1660007] = {[1]="A Promising Path",[2]={{161719}},[3]={{161720}},[4]=2,[5]=6,[6]=1101,[8]="Follow the mountain path to uncover the location of the mysterious group.",[10]={nil,{{5401381}},nil},[13]={1660006},[17]=1239},
[1660008] = {[1]="A Fitting Disguise",[2]={{161720}},[3]={{161720}},[4]=2,[5]=6,[6]=1101,[8]="Slay Radiant fanatics and collect their armor pieces. Deliver them to Arathror so he can craft a disguise.",[10]={nil,nil,{{559142}}},[13]={1660007},[17]=1239},
[1660009] = {[1]="His Radiant Majesty",[2]={{161720}},[3]={{161718}},[4]=2,[5]=6,[6]=1101,[8]="Tell Arathror when youre ready to don the disguise. Then infiltrate Radiance Town and slay the cult leader, His Radiant Majesty.",[10]={{{161775}},{{5883992}},nil},[13]={1660008},[17]=1239},
[1660010] = {[1]="Deciphering Radiation",[2]={{161820}},[3]={{161820}},[4]=2,[5]=6,[6]=1101,[8]="Slay radioactive slimes in Radiance Town and use the Contamination Extractor on their corpses to harvest mutagen.",[10]={nil,nil,{{559162}}},[11]=559161,[17]=1239},
[1660011] = {[1]="Soaking the Masses",[2]={{161839}},[3]={{161839}},[4]=2,[5]=6,[6]=1101,[8]="Use the Radiation Sprayer to douse Radiavilles townsfolk with radiation.",[10]={nil,{{5888887}},nil},[11]=559163,[17]=1239},
[1660039] = {[1]="Sever the Right Hand",[2]={{161720}},[3]={{161820}},[4]=2,[5]=6,[6]=1101,[8]="Defeat Right Hand of His Majesty in Radiance Town.",[10]={{{161835}},nil,nil},[13]={1660008},[17]=1239},
[1660076] = {[1]="A Growing Business",[2]={{162882}},[3]={{162883}},[4]=4,[5]=8,[6]=1101,[8]="Speak with Eyma Thunderbrew at the Thunderbrew Distillery in Kharanos.",[17]=1239},
[1660077] = {[1]="Thunderbrew's Hop",[2]={{162883}},[3]={{162883}},[4]=6,[5]=10,[6]=1101,[8]="Harvest seven Thunderbrew Hops from the Thunderbrew Distillery grounds in Kharanos.",[10]={nil,nil,{{558964}}},[13]={1660076},[17]=28},
[1660080] = {[1]="Stay a While",[2]={{162901}},[3]={{162901}},[4]=6,[5]=10,[6]=1101,[8]="Take a moment from the noise and haste and stay a while to listen to Gravedigger Nonuid.",[10]={nil,{{5855933}},nil},[17]=1},
[1660079] = {[1]="Live-Fire Demo",[2]={{162891}},[3]={{162891}},[4]=6,[5]=10,[6]=1101,[8]="Test Gornarn's Blunderbuss and ammo on the practice targets up on the ridge above Kharanos.",[10]={{{162917}},nil,nil},[11]=558950,[17]=1},
[1660078] = {[1]="Bots on Strike",[2]={{162884}},[3]={{162884}},[4]=6,[5]=10,[6]=1101,[8]="Defeat Out-of-Control Automata clogging the Kharanos tunnel and recover Reusable Mechanical Parts from their remains.",[10]={{{162888},{162889},{162890}},nil,{{558965}}},[17]=1},
[254004] = {[1]="A Brother's Betrayal",[2]={{254003}},[3]={{254003}},[4]=3,[5]=7,[6]=1101,[8]="Get Mirsinth the Exiles totem from JunKon at Frostmane Hold.",[10]={nil,nil,{{254002}}},[13]={254003},[17]=1},
[254005] = {[1]="The True Story",[2]={{254003}},[3]={{254000}},[4]=6,[5]=10,[6]=1101,[8]="Find Efry Cogspark at the Stoutlager Inn in Thelsamar.",[13]={254004},[17]=1},
[500005] = {[1]="Timber for the Coldhewn",[2]={{765556}},[3]={{765556}},[4]=6,[5]=10,[6]=1101,[8]="Chop down Dun Morogh trees near Coldhewn Camp and return with 12 Frostpine Logs.",[10]={nil,nil,{{662336}}},[17]=1},
[500006] = {[1]="Icehide the Unbroken",[2]={{764536}},[3]={{764536}},[4]=7,[5]=11,[6]=1101,[8]="Youve been asked to track and slay Icehide, the elite Frostsaber haunting Coldhewn Ridge above the camp.",[10]={{{76555}},nil,nil},[17]=1},
--Teldrassil
[1660012] = {[1]="The Carrion Road",[2]={{161725}},[3]={{161726}},[4]=2,[5]=6,[6]=1101,[8]="Walk the Carrion Path and defeat its guardians.",[10]={{{161787}},{{5166357}}},[17]=1243},
[1660013] = {[1]="The Sister Who Never Returned",[2]={{161726}},[3]={{161727}},[4]=2,[5]=6,[6]=1101,[8]="Speak with Lady Aegya, leader of the Vultures Cult, and ask what became of Thariels sister, Elydna.",[10]={nil,{{5861249}}},[13]={1660012},[17]=1243},
[1660014] = {[1]="Finding the Good Meat",[2]={{161727}},[3]={{161727}},[4]=2,[5]=6,[6]=1101,[8]="Gather five cuts of good meat from the Moonlit Ossuary within the Vulture Cult Eyrie.",[10]={nil,nil,{{559143}}},[13]={1660013},[17]=1243},
[1660015] = {[1]="Transsubstantiating the Flesh",[2]={{161727}},[3]={{161728}},[4]=2,[5]=6,[6]=1101,[8]="Carry the gathered flesh to the Moonwell and sanctify it in the waters.",[10]={nil,{{5005829}},{{559145}}},[11]=559144,[13]={1660014},[17]=1243},
[1660016] = {[1]="Communion Banquet",[2]={{161728}},[3]={{161727}},[4]=2,[5]=6,[6]=1101,[8]="Place the sanctified flesh upon the bowl in the Great Vultures nest. Then, aid Elydna in completing her communion.",[10]={nil,{{2300513},{5911478}}},[13]={1660015},[17]=1243},
[1660017] = {[1]="A Trail of Petals",[2]={{161848}},[3]={{161848}},[4]=2,[5]=6,[6]=1101,[8]="Channel Eldyas power over the newborns in the Great Nest to transform them into butterflies. Then guide the butterflies back to Eldya.",[10]={nil,{{2300526},{5943833}}},[13]={1660016},[17]=1243},
[1660040] = {[1]="Restless entrails",[2]={{161916}},[3]={{161916}},[4]=2,[5]=6,[6]=1101,[8]="Defeat the Rotting Flesh Spawn in the Lunar Ossuary.",[10]={{{161832}},nil,nil},[17]=1243},
[1660071] = {[1]="A Dark Warning",[2]={{161725}},[3]={{3567}},[4]=4,[5]=8,[6]=1101,[8]="Speak with Tallonkai Swiftroot in Dolanaar.",[13]={1660085},[17]=141},
[1660072] = {[1]="The Aid of Theren-Dion",[2]={{3567}},[3]={{162880}},[4]=4,[5]=8,[6]=1101,[8]="Speak with the Sentinels at Theren-Dion Sanctuary and challenge them to duels to aid their training.",[10]={[5]={{{162856,162870,162871,162872,162873},"Theren-Dion Sentinel"}}},[13]={1660071},[17]=141},
[1660073] = {[1]="No Place for Scavengers",[2]={{162880}},[3]={{162880}},[4]=4,[5]=8,[6]=1101,[8]="Destroy Vulture Eggs around the Theren-Dion Sanctuary near Dolanaar.",[10]={{{162925}},{{5388202}}},[13]={1660072},[17]=141},
[1660074] = {[1]="Termites in Teldrassil",[2]={{162879}},[3]={{162879}},[4]=5,[5]=9,[6]=1101,[8]="Enter the bark of Teldrassil near Dolanaar and defeat the termites infesting its depths.",[10]={{{162876},{162877}}},[13]={1660071},[17]=141},
[1660075] = {[1]="Stay a While",[2]={{162881}},[3]={{162881}},[4]=4,[5]=8,[6]=1101,[8]="Take a moment from the noise and haste and stay a while to listen to Alenna Whisperbough.",[10]={nil,{{5399902}}},[17]=141},
[1660085] = {[1]="Elydna's Heirloom",[2]={{161727}},[3]={{161725}},[4]=3,[5]=7,[6]=1101,[8]="Speak with Thariel Wingstroke and deliver to him the pendant of his sister, Elydna.",[10]={nil,{{5405229}}},[13]={1660016},[17]=141},
--Durotar
[254008]={[1]="To Find a Cure",[2]={{254011}},[3]={{254011}},[4]=1,[5]=2,[6]=690,[7]=0,[8]={"Find the strange flower."},[10]={nil,nil,{{254005}}},[17]=1244},
[254009]={[1]="A Dangerous Sample",[2]={{254011}},[3]={{254011}},[4]=1,[5]=2,[6]=690,[7]=0,[8]={"Collect demon blood from a strong demon."},[10]={nil,nil,{{254006}}},[13]={254008},[17]=1244},
[254010]={[1]="Knowledge of the Centaurs",[2]={{254011}},[3]={{254004}},[4]=2,[5]=4,[6]=690,[7]=0,[8]={"Search the centaur camp for clues to the flower's properties."},[11]=11584,[13]={254009},[17]=1244},
[1660018]={[1]="Those Who Fell",[2]={{161732}},[3]={{161733}},[4]=3,[5]=6,[6]=690,[7]=0,[8]={"Use the Unremarkable Stone to extract samples of spiritual unrest from the restless orcs and trolls, and present your findings to the witch of Zeb'Goro."},[10]={nil,nil,{{559155}}},[11]=559158,[17]=1244},
[1660019]={[1]="The Way is Shut",[2]={{161733}},[3]={{161734}},[4]=3,[5]=6,[6]=690,[7]=0,[8]={"Use the amulet given to you by Swa'li to break through the magical barrier guarding the entrance to the Sinister Lair."},[10]={nil,{{2036820}},nil},[11]=559146,[13]={1660018},[17]=1244},
[1660020]={[1]="The Sinister Triad",[2]={{161734}},[3]={{161734}},[4]=3,[5]=6,[6]=690,[7]=0,[8]={"Gather the spiritual essences of the beasts haunting the Sinister Lair. You will need one from a spider, one from a bat, and one from a serpent."},[10]={nil,nil,{{559148},{559149},{559150}}},[13]={1660019},[17]=2030},
[1660021]={[1]="So That He May Hear Again",[2]={{161734}},[3]={{161732}},[4]=3,[5]=6,[6]=690,[7]=0,[8]={"Free the elementals next to the cave. Then, speak with Esgramor and tell him of Hirsutta's true intentions."},[10]={nil,{{6649507}},{{559172},{559173},{559174},{559175}}},[13]={1660020},[17]=2030},
[1660022]={[1]="A Sinister Ritual",[2]={{161732}},[3]={{161732}},[4]=3,[5]=6,[6]=690,[7]=0,[8]={"Confront Hirsutta the Witch and put an end to her dark ritual."},[10]={{{161790}},nil,nil},[13]={1660021},[17]=1244},
[1660023]={[1]="Innocents for Sinners",[2]={{161732}},[3]={{161732}},[4]=3,[5]=6,[6]=690,[7]=0,[8]={"Defeat the voodoo devotees guarding the path that leads to Hirsutta."},[10]={{{161807}},nil,nil},[13]={1660021},[17]=1244},
[1660037]={[1]="Unease Makes Tongues Wag",[2]={{161733}},[3]={{161733}},[4]=3,[5]=6,[6]=690,[7]=0,[8]={"Destroy the talking Tiki Masks around Zeb'Goro."},[10]={{{161854},{161855},{161856}},nil,nil},[11]=559146,[13]={1660018},[17]=1244},
[1660041]={[1]="A Door Left Ajar",[2]={{161734}},[3]={{161734}},[4]=3,[5]=6,[6]=690,[7]=0,[8]={"Defeat Techla'tu, Gatekeeper, in the Sinister Lair."},[10]={{{161833},{161793},{161792}},nil,nil},[13]={1660019},[17]=2030},
[1660061]={[1]="Esgramor's Master",[2]={{161732}},[3]={{162839}},[4]=4,[5]=8,[6]=690,[7]=0,[8]={"Speak with Karagar in Razor Hill."},[10]={nil,{{9070546}},nil},[13]={1660022},[17]=1244},
[254011]={[1]="Shinies!",[2]={{254004}},[4]=2,[5]=4,[6]=690,[7]=0,[8]={"Collect metallic debris."},[10]={nil,nil,{{254007}}},[13]={254010},[17]=14},
[1660062] = {[1]="Echoes of Hirsutta",[2]={{162839}},[3]={{162839}},[4]=4,[5]=8,[6]=690,[8]="Defeat naga in Rivenruin Cave on the Durotar coast.",[10]={{{162834},{162835},{162916}}},[13]={1660061},[17]=14},
[1660063] = {[1]="Auction the Past",[2]={{162840}},[3]={{162840}},[4]=4,[5]=8,[6]=690,[8]="Recover Elven Relics of Old from the ruins in Rivenruin Cave, Durotar.",[10]={nil,nil,{{558966}}},[17]=14},
[1660065]={[1]="Stay a While",[2]={{162841}},[3]={{162841}},[4]=6,[5]=8,[6]=690,[7]=0,[8]={"Take a moment from the noise and haste and stay a while to listen to Bagamul Skyfang."},[10]={nil,{{5954015}}},[17]=14},
[1660064] = {[1]="Durotar's Dire Drought",[2]={{162838}},[3]={{162838}},[4]=6,[5]=8,[6]=690,[8]="Fill the pitcher with water from one of the pools outside Razor Hill, then give the mine peons a drink.",[10]={{{162836,"Thirsty peons served"}},nil,{{558974,"Full Dirgran's Pitcher"}}},[11]=558973,[17]=14},
[254012] = {[1]="The Queen's Decree",[2]={{254012}},[3]={{254012}},[4]=5,[5]=7,[6]=690,[8]="Slay harpies for Queen Erethina.",[10]={{{3115},{3116}}},[13]={254011},[17]=14},
[254013] = {[1]="Avianna's Rose",[2]={{254012}},[3]={{254013}},[4]=6,[5]=10,[6]=690,[8]="Bring the information you learned to Sakari in Orgrimmar.",[13]={254012},[17]=14},
[254014] = {[1]="The Last Piece",[2]={{254013}},[3]={{254014}},[4]=6,[5]=10,[6]=690,[8]="Find Ourugai Crystal in the Barrens.",[10]={nil,nil,{{254008}}},[13]={254014},[17]=1413},
[254015] = {[1]="Reversion",[2]={{254014}},[3]={{254014}},[4]=6,[5]=10,[6]=690,[8]="Watch Sakari create the cure.",[10]={{{254016}},{{5777365}}},[13]={254014},[17]=1413},
--Tirisfal Glades
[363] = {"Rude Awakening",{{1568}},{{1569}},1,1,16,nil,{"Speak with Shadow Priest Sarvis."},nil,{{{1512}},nil,nil},nil,nil,nil,nil,nil,nil,154,nil,nil,nil,nil,364,524296,nil,nil,{{68,75}}},
[6395] = {[1]="Marla's Last Wish",[2]={{1661}},[3]={{1661}},[4]=3,[5]=5,[6]=690,[8]="Bring Samuel Fipps' Remains to Marla's Grave, then return to Novice Elreth.",[10]={{{1919}},{{178090,"Samuel's Remains Buried"}},{{16333}}},[13]={364},[17]=1240,[21]={16333},[27]={{nil,4,"Samuel's Remains Buried",0,{{"object",178090}}}}},
[1660024]={[1]="Monsters With Noble Intentions",[2]={{161739}},[3]={{161740}},[4]=3,[5]=6,[6]=690,[7]=0,[8]={"Speak with Riscell Cain at the Heritage League camp."},[17]=1240},
[1660025] = {[1]="Restless Family Members",[2]={{161740}},[3]={{161740}},[4]=3,[5]=6,[6]=690,[8]="Purify the remains of Riscells deceased relatives in the Cain Family Crypt, and send their spirits back to the Afterlife.",[10]={{{161762},{161763},{161764},{161765}},nil,nil},[13]={1660024},[17]=1240},
[1660026] = {[1]="An Unspeakable Secret",[2]={{161740}},[3]={{161741}},[4]=3,[5]=6,[6]=690,[8]="Retrieve the key fragments held by the manors majordomo, maid, and stablemaster.",[10]={nil,nil,{{559138},{559139},{559140}}},[13]={1660025},[17]=1240},
[1660028] = {[1]="A Noble Heritage",[2]={{161747}},[3]={{161747}},[4]=3,[5]=6,[6]=690,[8]="Explore Cain Family Manor and recover whatever valuables remain. Then bring them to Thris.",[10]={nil,nil,{{559164},{559165},{559166},{559167}}},[13]={1660025},[17]=1240},
[1660027] = {[1]="The True Heir of the Cains",[2]={{161741}},[4]=3,[5]=6,[6]=690,[8]="Use the key to access the basement and defeat the creature within.",[10]={{{161757}}},[13]={1660026},[17]=1240},
[1660029] = {[1]="The Friends We Make Along the Way",[2]={{161742}},[3]={{161742}},[4]=3,[5]=6,[6]=690,[8]="Slay the creatures prowling Cain Manor: zombies, ghouls, and bears.",[10]={{{161743},{161752},{161749}},nil,nil},[13]={1660025},[17]=1240},
[1660042] = {[1]="I'm Home",[2]={{161746}},[3]={{161746}},[4]=3,[5]=6,[6]=690,[8]="Defeat the Hound of House Cain behind the manor.",[10]={{{161836}},nil,nil},[13]={1660025},[17]=1240},
[1660050] = {[1]="Apothecary Flemer",[2]={{161742}},[3]={{162843}},[4]=4,[5]=8,[6]=690,[8]="Speak with Apothecary Flemer in Brill.",[10]={nil,nil,nil},[13]={1660029},[17]=1240},
[254064] = {[1]="The Nature of Freedom",[2]={{749136}},[3]={{749136}},[4]=4,[5]=8,[6]=690,[8]="Test Rod Toxicstrike's concoction on 3 zombies, 3 skeletons, 3 banshees, and Mallek the Tormented",[10]={{{1522},{1530},{1534},{254584}},{{2306601},{2306602},{2306603},{2306604}},nil},[11]=354655,[17]=85},
[1660052] = {[1]="Spotless Standing",[2]={{162844}},[3]={{162844}},[4]=5,[5]=9,[6]=690,[8]="Find the Forsaken Rebels entrenched along the shores of Brightwater Lake and put them down.",[10]={{{162857},{162853},{162854}},nil,nil},[17]=85},
[1660054] = {[1]="Stay a While",[2]={{162847}},[3]={{162847}},[4]=4,[5]=8,[6]=690,[8]="Take a moment from the noise and haste and stay a while to listen to Dark Priestess Ashara.",[10]={nil,{{5093560}},nil},[17]=85},
[1660051] = {[1]="More Than the Sum of its Parts",[2]={{162843}},[3]={{162843}},[4]=4,[5]=8,[6]=690,[8]="Collect Necrotic Spores from the fungus in the abandoned tower overlooking Brill. They come in two forms: clinging to creatures and encapsulated in mucous globules on the ground.",[10]={nil,nil,{{558953},{558954}}},[13]={1660050},[17]=85},
[1660053] = {[1]="Scarlet Correspondence",[2]={nil,nil,{{558955}}},[3]={{162844}},[4]=4,[5]=8,[8]="Find the Scarlet Crusade camp and put down their agents.",[10]={{{162859},{162860},{162861}},nil,nil},[17]=85},
[254053] = {[1]="A Humble Duty",[2]={{991483}},[3]={{991483}},[4]=7,[5]=11,[6]=690,[8]="Polish 6 gravestones at Father Alastor's cemetary and Invincible's grave at Balnir Farmstead.",[10]={nil,{{192380},{254678}},nil},[17]=85},
[254054] = {[1]="The Balnirs' Rest",[2]={{991483}},[3]={{991483}},[4]=8,[5]=12,[6]=690,[8]="Put the spirits of the Balnir family, Jorum Balnir, Vara Balnir, and Jarim Balnir to rest.",[10]={{{254936},{254937},{254938}},nil,nil},[17]=85},
[254056] = {[1]="Brewing Disarray",[2]={{764555}},[3]={{764554}},[4]=8,[5]=12,[6]=690,[8]="Slay Lieutenant Sanders in Venomweb Vale and bring his head to Apothecary Ralden",[10]={nil,nil,{{354678}}},[17]=85},
[254057] = {[1]="This Is Justice",[2]={{764554}},[3]={{764554}},[4]=8,[5]=12,[6]=690,[8]="Use Ralden's Transformation Elixir to infiltrate the Scarlet Monastery's courtyard and infect their supplies.",[10]={nil,{{254679}},nil},[11]=354654,[13]={254056},[17]=85},
--Mulgore
[1660030] = {[1]="Death and Tribute",[2]={{161817}},[3]={{161818}},[4]=3,[5]=4,[6]=690,[8]="Slay seven Grimtotem Marauders in Red Cloud Mesa, take their manes as proof, and deliver them to Lady Redhorns mistress.",[10]={nil,nil,{{559156}}},[17]=1245},
[1660031]={[1]="Death and Exile",[2]={{161818}},[3]={{161819}},[4]=3,[5]=6,[5]=0,[7]=0,[8]={"Follow the Grimtotem Mountain Path to Hard Basin and show Morriga Hollowhoofs ring to Sage Nauchol."},[10]={nil,{{5976414}},nil},[11]=559157,[13]={1660030},[17]=1245},
[1660032]={[1]="Death and Dishonor",[2]={{161819}},[3]={{161819}},[4]=3,[5]=5,[6]=690,[7]=0,[8]={"Gather pieces of armor and the identifying pendant of Three Totems warriors to complete your disguise."},[10]={nil,nil,{{559151},{559152}}},[11]=559151,[13]={1660031},[17]=1245},
[1660033]={[1]="Death and Justice",[2]={{161819}},[3]={{161818}},[4]=3,[5]=5,[6]=690,[7]=0,[8]={"Speak with Nauchol when you are ready for the disguise, then infiltrate Three Totems and slay Malgorm Hollowhoof."},[10]={{{161816}},{{1942447}}},[13]={1660032},[17]=1245,[27]={{nil,4,"Ask Nauchol to dress you in the disguise",0,{{"object",1942447}}},{nil,1,"Malgorm Hollowhoof",0,{{"monster",161816}}}}},
[1660034]={[1]="Death by Laughter",[2]={{161840}},[3]={{161840}},[4]=3,[5]=5,[6]=690,[7]=0,[8]={"Channel the Great Hyenas blessing into the village totems and defeat the guardian spirits that protect them."},[10]={{{161850},{161851},{161852}},{{2300527},{2300533},{2300534}},nil},[13]={1660032},[17]=1245},
[1660035]={[1]="To Whom I Devote",[2]={{161818}},[3]={{161840}},[4]=3,[5]=5,[6]=690,[7]=0,[8]={"Gather bones along the mountain path and offer them at the Great Hyenas altar in Hard Basin."},[10]={nil,nil,{{559168}}},[11]=559168,[13]={1660030},[17]=1245},
[1660043]={[1]="Fighting Over Carrion",[2]={{161840}},[3]={{161840}},[4]=3,[5]=5,[6]=690,[7]=0,[8]={"Defeat the Cruel Carrion Spirit in Hard Basin."},[10]={{{161834}},nil,nil},[13]={1660035},[17]=1245},
[1660066]={[1]="Smoke on the Horizon",[2]={{162902}},[3]={{162903}},[4]=3,[5]=6,[6]=690,[7]=0,[8]={"Speak with Ammus Grey-Eye at the summit of the Iris Sanctuary."},[13]={1660033},[17]=1245},
[1660067] = {[1]="Amphora of Sacred Water",[2]={{162903}},[3]={{162906}},[4]=4,[5]=8,[6]=690,[8]="Fill the amphora with the blessed water of the Iris Sanctuary, and bring it to Sage Muudren in Bloodhoof Village.",[10]={nil,{{5195713},{5195711}},{{558972}}},[11]=558971,[13]={1660066},[17]=1245},
[1660070] = {[1]="Stay a While",[2]={{162903}},[3]={{162903}},[4]=4,[5]=8,[6]=690,[8]="Take a moment from the noise and haste and stay a while to listen to Ammus Grey-Eye.",[10]={nil,{{5299566}}},[13]={1660066},[17]=1245},
[1660068]={[1]="Exile of Embers",[2]={{162906}},[3]={{162906}},[4]=6,[5]=8,[6]=690,[7]=0,[8]={"Channel the blessing to weaken the fire elementals prowling around Ardunno's hut and banish them back to their elemental plane."},[10]={{{162907}},nil,nil},[11]=558967,[13]={1660067},[17]=1412},
[1660069] = {[1]="The Smoke that Remembers",[2]={{162908}},[3]={{162908}},[4]=4,[5]=8,[6]=690,[8]="Obtain incense for Ancestor Emnil's altar. You will need Prairie Sage and Kodo Tallow.",[10]={nil,nil,{{558968},{558969}}},[13]={1660067},[17]=1412},
[500004] = {[1]="The Circles Rite",[2]={{991485}},[3]={{991485}},[4]=6,[5]=10,[6]=690,[8]="Collect 8 Ritual Totems and bring them to Maur Tharok Windhoof at Stonefather's Circle.",[10]={nil,nil,{{662335}}},[17]=1412},
}
AscensionQuestDB = AscensionQuestDB or {}
AscensionQuestDB.questData = AscensionDB.questData
@@ -1,326 +0,0 @@
---@class AscensionUiMapData
AscensionUiMapData = AscensionUiMapData or {}
AscensionUiMapData.uiMapData = {
-- Alliance Starting Zone
[2031] = {
[1] = 302.51,
[2] = 200.0,
[3] = 581.66,
[4] = 10745.9,
instance = 1,
mapID = 2031,
name = "Moonlit Ossuary",
mapType = 3,
parentMapID = 10207,
},
[1230] = {
[1] = 230.01,
[2] = 153.34000000000015,
[3] = 1685.0,
[4] = 9881.67,
instance = 1,
mapID = 1230,
name = "Upper Ban'ethil Barrow Den",
mapType = 3,
parentMapID = 262,
},
[1231] = {
[1] = 380.01,
[2] = 253.34000000000015,
[3] = 1735.0,
[4] = 9931.67,
instance = 1,
mapID = 1231,
name = "Lower Ban'ethil Barrow Den",
mapType = 3,
parentMapID = 10133,
},
[1232] = {
[1] = 279.5999999999999,
[2] = 186.40000000000146,
[3] = 1249.8,
[4] = 10211.7,
instance = 1,
mapID = 1232,
name = "Fel Rock",
mapType = 3,
parentMapID = 258,
},
[1243] = {
[1] = 1450.0040000000001,
[2] = 966.5999999999985,
[3] = 1491.67,
[4] = 11033.3,
instance = 1,
mapID = 1243,
name = "Shadowglen",
mapType = 3,
parentMapID = 10143,
},
[1233] = {
[1] = 480.0,
[2] = 320.0,
[3] = 1140.0,
[4] = 11035.0,
instance = 1,
mapID = 1233,
name = "Shadowthread Cave",
mapType = 3,
parentMapID = 257,
},
[1222] = {
[1] = 323.25,
[2] = 215.5,
[3] = -445.875,
[4] = -8985.0,
instance = 0,
mapID = 1222,
name = "Jasperlode mine",
mapType = 3,
parentMapID = 10126,
},
[1220] = {
[1] = 240.0,
[2] = 160.0,
[3] = 281.75,
[4] = -9700.0,
instance = 0,
mapID = 1220,
name = "Upper Fargodeep Mine",
mapType = 3,
parentMapID = 10124,
},
[1221] = {
[1] = 255.0,
[2] = 170.0,
[3] = 289.25,
[4] = -9710.0,
instance = 0,
mapID = 1221,
name = "Lower Fargodeep Mine",
mapType = 3,
parentMapID = 10125,
},
[1238] = {
[1] = 968.75,
[2] = 645.8400000000001,
[3] = 187.5,
[4] = -8570.83,
["mapType"] = 3,
["parentMapID"] = 10138,
["mapID"] = 1238,
["instance"] = 0,
["name"] = "Northshire Valley",
},
[1226] = {
[1] = 279.0,
[2] = 186.0,
[3] = -27.0,
[4] = -8500.0,
["mapType"] = 3,
["parentMapID"] = 10130,
["mapID"] = 1226,
["instance"] = 0,
["name"] = "Echo Ridge Mine",
},
[2028] = {
[1] = 1300.008,
[2] = 866.67,
[3] = 266.658,
[4] = -7933.33,
mapType = 3,
parentMapID = 10196,
mapID = 2028,
instance = 0,
name = "Shadewell Spring",
},
[1202] = {
[1] = 204.99,
[2] = 136.67,
[3] = -660.0,
[4] = 2948.83,
mapType = 3,
parentMapID = 796,
mapID = 1202,
instance = 0,
name = "Scarlet Monastery Entrance",
},
[2029] = {
[1] = 499.9961,
[2] = 333.33,
[3] = -66.6719,
[4] = -8500.0,
mapType = 3,
parentMapID = 10197,
mapID = 2029,
instance = 0,
name = "Secret Inquisitorial Dungeon",
},
[1239] = {
[1] = 1266.8,
[2] = 842.0,
[3] = 1200.0,
[4] = -5724.66,
mapType = 3,
parentMapID = 10139,
mapID = 1239,
instance = 0,
name = "Coldridge Valley",
},
[1215] = {
[1] = 330.0,
[2] = 220.0,
[3] = 245.0,
[4] = -6020.0,
instance = 0,
mapID = 1215,
name = "Coldridge Pass",
mapType = 3,
parentMapID = 10120,
},
[1216] = {
[1] = 505.5,
[2] = 337.0,
[3] = 32.75,
[4] = -5313.0,
instance = 0,
mapID = 1216,
name = "The Grizzled Den",
mapType = 3,
parentMapID = 10121,
},
[1214] = {
[1] = 374.01,
[2] = 249.34000000000015,
[3] = -1542.99,
[4] = -5486.83,
instance = 0,
mapID = 1214,
name = "Gol'bolar Quarry",
mapType = 3,
parentMapID = 10119,
},
-- Horde Starting Zone
[1219] = {
[1] = 270.0,
[2] = 180.0,
[3] = -4629.0,
[4] = 1580.5,
instance = 1,
mapID = 1219,
name = "Skull Rock",
mapType = 3,
parentMapID = 10123,
},
[2030] = {
[1] = 550.29,
[2] = 366.6328125,
[3] = -4100.0,
[4] = 0.0078125,
instance = 1,
mapID = 2030,
name = "Sinister Lair",
mapType = 3,
parentMapID = 10205,
},
[1217] = {
[1] = 266.0,
[2] = 177.33,
[3] = -4166.5,
[4] = 5.5,
instance = 1,
mapID = 1217,
name = "Burning Blade Coven",
mapType = 3,
parentMapID = 365,
},
[1244] = {
[1] = 1350.0,
[2] = 900.0,
[3] = -3641.67,
[4] = 0.0,
instance = 1,
mapID = 1244,
name = "Valley of Trials",
mapType = 3,
parentMapID = 10144,
},
[1240] = {
[1] = 1089.5900000000001,
[2] = 727.0799999999999,
[3] = 2147.92,
[4] = 2270.83,
instance = 0,
mapID = 1240,
name = "Deathknell",
mapType = 3,
parentMapID = 10140,
},
[1213] = {
[1] = 220.0,
[2] = 146.66999999999985,
[3] = 2020.0,
[4] = 2123.33,
instance = 0,
mapID = 1213,
name = "Night Web's Hollow",
mapType = 3,
parentMapID = 10118,
},
[1245] = {
[1] = 1799.8799999999999,
[2] = 1200.0400000000004,
[3] = 266.54,
[4] = -2566.74,
instance = 1,
mapID = 1245,
name = "Camp Narache",
mapType = 3,
parentMapID = 10146,
},
[1225] = {
[1] = 741.0,
[2] = 494.0,
[3] = -818.0,
[4] = -1436.0,
instance = 1,
mapID = 1225,
name = "The Venture Co. Mine",
mapType = 3,
parentMapID = 10129,
},
[1224] = {
[1] = 350.01,
[2] = 233.32999999999993,
[3] = 580.0,
[4] = -2263.33,
instance = 1,
mapID = 1224,
name = "Palemane Rock",
mapType = 3,
parentMapID = 10128,
},
}
local function ApplyUiMapData()
if not QuestieCompat then return end
if not AscensionUiMapData or not AscensionUiMapData.uiMapData then return end
QuestieCompat.UiMapData = QuestieCompat.UiMapData or {}
for uiMapId, data in pairs(AscensionUiMapData.uiMapData) do
if QuestieCompat.UiMapData[uiMapId] == nil then
QuestieCompat.UiMapData[uiMapId] = data
end
end
end
if QuestieCompat and QuestieCompat.LoadUiMapData then
hooksecurefunc(QuestieCompat, "LoadUiMapData", ApplyUiMapData)
end
ApplyUiMapData()
@@ -1,60 +0,0 @@
---@class AscensionZoneTables
AscensionZoneTables = AscensionZoneTables or {}
AscensionZoneTables.uiMapIdToAreaId = AscensionZoneTables.uiMapIdToAreaId or {
--Alliance
[1238] = 12, -- Northshire Valley -> Elwynn Forest
[2029] = 12, -- Secret Inquisitorial Dungeon -> Elwynn Forest
[2028] = 12, -- Shadewell Spring -> Elwynn Forest
[1226] = 12, -- Echo Ridge Mine -> Elwynn Forest
[1222] = 12, -- Jasperlode mine -> Elwynn Forest
[1239] = 1, -- Coldridge Valley -> Dun Morogh
[1215] = 1, -- Coldridge Pass -> Dun Morogh
[1216] = 1, -- The Grizzled Den -> Dun Morogh
[1214] = 1, -- Gol'bolar Quarry -> Dun Morogh
[1243] = 141, -- Shadowglen -> Teldrassil
[1233] = 141, -- Shadowthread Cave -> Teldrassil
[1232] = 141, -- Fel Rock -> Teldrassil
[2031] = 141, -- Moonlit Ossuary -> Teldrassil
[1230] = 141, -- Upper Ban'ethil Barrow Den -> Teldrassil
[1231] = 141, -- Lower Ban'ethil Barrow Den -> Teldrassil
--Horde
[1244] = 14, -- Valley of Trials -> Durotar
[1217] = 14, -- Burning Blade Coven -> Durotar
[2030] = 14, -- Sinister Lair -> Durotar
[1219] = 14, -- Skull Rock -> Durotar
[1240] = 85, -- Deathknell -> Tirisfal Glades
[1213] = 85, -- Night Web's Hollow -> Tirisfal Glades
[1245] = 215, -- Camp Narache -> Mulgore
[1225] = 215, -- The Venture Co. Mine -> Mulgore
[1224] = 215, -- Palemane Rock -> Mulgore
}
-- Register zone sort names for custom zones so they can be used in quest zoneOrSort field
AscensionZoneTables.zoneSort = AscensionZoneTables.zoneSort or {
[1238] = "Northshire Valley",
[2029] = "Secret Inquisitorial Dungeon",
[2028] = "Shadewell Spring",
[1226] = "Echo Ridge Mine",
[1222] = "Jasperlode Mine",
[1239] = "Coldridge Valley",
[1215] = "Coldridge Pass",
[1243] = "Shadowglen",
[1233] = "Shadowthread Cave",
[1244] = "Valley of Trials",
[1217] = "Burning Blade Coven",
[2030] = "Sinister Lair",
[1240] = "Deathknell",
[1213] = "Night Web's Hollow",
[1245] = "Camp Narache",
[1232] = "Fel Rock",
[2031] = "Moonlit Ossuary",
[1230] = "Upper Ban'ethil Barrow Den",
[1231] = "Lower Ban'ethil Barrow Den",
[1225] = "The Venture Co. Mine",
[1224] = "Palemane Rock",
[1219] = "Skull Rock",
[1216] = "The Grizzled Den",
[1214] = "Gol'bolar Quarry",
}
+12
View File
@@ -13,6 +13,18 @@ function QuestieTBCNpcFixes:Load()
local waypointPresets = QuestieDB.waypointPresets
return {
[16876] = {
[npcKeys.spawns] = { [3483] = {{51.2,57.6},{51.4,41.8},{51.4,56.4},{51.4,57.2},{51.6,41.8},{51.6,57.2},{51.6,57.8},{52.2,47.4},{52.2,48.2},{53,48.6},{53.2,47.2},{53.2,47.8},{57.4,52.4},{57.4,52.6},{57.6,51.8},{57.6,52.8},{58,47.8},{58.2,46.4},{58.2,47.2},{58.2,51.4},{58.8,47.4},{58.8,47.6},{59.4,46.2},{59.8,46.2},{59.8,46.6},{60.6,46.4},{60.8,47.4},{61,48},{61.6,47.8},{62.2,53.4},{62.4,53.8},{62.6,53.4},{62.6,53.8}} },
},
[16925] = {
[npcKeys.spawns] = { [3483] = {{49.8,55.8},{50,56.6},{50.8,55.6},{50.8,56.6},{51,54.4},{51,55.4},{52.2,47.4},{52.2,47.6},{52.4,53.6},{52.6,53.8},{52.8,53.4},{53,48.4},{53,48.6},{53.4,46.4},{53.4,47},{53.6,46.4},{53.6,47.2},{53.8,47.8},{54.2,53.6},{54.4,52.4},{54.4,52.6},{54.6,52.4},{54.6,52.6},{55.2,47.4},{55.2,48},{55.2,53.6},{55.6,53.4},{55.8,53.6},{56,46.4},{56,47.2},{56.2,48},{56.4,52.4},{56.6,52.6},{57,47.4},{57,47.6},{57,52.2},{57.6,51.8},{58.2,51.4},{59.4,51.4},{59.4,51.6},{60,52.6},{60.2,51.8},{60.4,47.4},{60.4,47.8},{60.4,51.2},{60.6,48},{61,47.4},{61,51},{61.4,51.8},{61.6,47.4},{61.6,47.8},{61.6,51.4}} },
},
[19701] = {
[npcKeys.spawns] = { [3483] = {{49.8,55.8},{51,54.4},{51,54.6},{51.6,41.8},{52.4,47.4},{52.4,47.6},{52.4,53.6},{52.6,53.6},{52.8,53},{53,48.4},{53.2,48.6},{53.4,47.2},{53.6,47.2},{54.2,52.2},{54.4,52.6},{54.6,52.6},{55,52.2},{55,53.8},{55.2,47},{55.2,48.2},{56.2,48},{56.4,46.4},{56.4,46.6},{56.6,46.4},{56.6,46.6},{56.6,52},{57,48},{58,47.8},{58,53.2},{58.2,47.4},{58.2,51.4},{58.2,51.6},{58.8,47.4},{58.8,47.8},{59.4,51.4},{59.6,47},{60.4,51.2},{60.4,52.2},{60.6,48},{60.6,52.2},{61.4,50.6},{61.6,47.4},{61.6,48},{62,50.6},{62.2,50.4},{62.4,53.2},{62.4,53.6},{62.6,53.4},{62.6,53.6},{63.6,51},{67.2,46.2}} },
},
[18952] = {
[npcKeys.spawns] = { [3483] = {{49.8,55.8},{50.2,56.6},{50.8,56},{51,54.4},{51,55},{51.2,42},{51.4,42.8},{51.4,57},{51.4,57.6},{51.6,57},{51.8,43},{52.2,45.4},{52.2,47.6},{52.4,46.4},{52.4,47.2},{52.6,46.4},{53,47.8},{53,54.4},{53,54.6},{53.2,48.6},{53.4,47},{53.6,46.4},{53.6,47.2},{53.8,47.8},{54.2,53.2},{54.4,52.4},{54.4,53.6},{55.2,46.4},{55.2,47.6},{55.2,52.2},{55.2,53},{55.2,53.6},{55.4,47},{55.8,46.4},{56,46.8},{56.2,48},{56.4,53.4},{56.4,53.6},{56.6,46.4},{56.8,53.6},{57,47.2},{57,47.6},{57.4,52.4},{57.4,52.6},{58,47.4},{58,47.8},{58.2,51.4},{58.4,46.4},{58.4,52.4},{58.4,52.6},{58.6,52.4},{58.6,52.6},{58.8,47},{58.8,47.6},{59,46.4},{59.4,51.2},{59.8,51.6},{60.2,46.4},{60.4,46.6},{60.4,47.6},{60.4,51.2},{60.4,52.6},{60.6,46.4},{60.6,46.6},{60.8,51},{60.8,52.6},{61,47.6},{61,52.2},{61.4,50.4},{61.6,47.4},{61.6,47.8},{61.8,51.4},{61.8,51.6},{62,53.4},{62,53.6},{62.2,50.4},{62.6,51.2},{62.6,53.2},{62.6,53.6},{65.4,46.6},{65.8,46.4},{65.8,46.6},{67,45.2},{67,46.2},{67.6,45.8},{67.8,45.4}} },
},
[331] = {
[npcKeys.questStarts] = { 8250, 64038 },
},
+9
View File
@@ -32,6 +32,15 @@ function QuestieTBCQuestFixes:Load()
local specKeys = QuestieProfessions.specializationKeys
return {
[10482] = {
[questKeys.objectives] = {
nil,
nil,
nil,
nil,
{ { { 16876, 16925, 18952, 19701 }, 16876, "Bonechewer Orcs slain" } },
},
},
[62] = {
[questKeys.triggerEnd] = {"Scout through the Fargodeep Mine", {[zoneIDs.ELWYNN_FOREST]={{40.01,81.42}}}},
},
+21
View File
@@ -15,6 +15,27 @@ function QuestieWotlkNpcFixes:Load()
local waypointPresets = QuestieDB.waypointPresets
return {
[16876] = {
[npcKeys.spawns] = { [3483] = {{51.2,57.6},{51.4,41.8},{51.4,56.4},{51.4,57.2},{51.6,41.8},{51.6,57.2},{51.6,57.8},{52.2,47.4},{52.2,48.2},{53,48.6},{53.2,47.2},{53.2,47.8},{57.4,52.4},{57.4,52.6},{57.6,51.8},{57.6,52.8},{58,47.8},{58.2,46.4},{58.2,47.2},{58.2,51.4},{58.8,47.4},{58.8,47.6},{59.4,46.2},{59.8,46.2},{59.8,46.6},{60.6,46.4},{60.8,47.4},{61,48},{61.6,47.8},{62.2,53.4},{62.4,53.8},{62.6,53.4},{62.6,53.8}} },
},
[18694] = {
[npcKeys.spawns] = { [3520] = {{70.04,66.27},{70.58,29.14},{45.98,53.33}} },
},
[18695] = {
[npcKeys.spawns] = { [3520] = {{29.9,58.03},{45.15,68.66},{67.43,60.6},{55.07,38.55},{48.06,29.46}} },
},
[18696] = {
[npcKeys.spawns] = { [3520] = {{42.64,67.66},{60.4,49.18},{45.41,12.26},{41.07,40.53}} },
},
[16925] = {
[npcKeys.spawns] = { [3483] = {{49.8,55.8},{50,56.6},{50.8,55.6},{50.8,56.6},{51,54.4},{51,55.4},{52.2,47.4},{52.2,47.6},{52.4,53.6},{52.6,53.8},{52.8,53.4},{53,48.4},{53,48.6},{53.4,46.4},{53.4,47},{53.6,46.4},{53.6,47.2},{53.8,47.8},{54.2,53.6},{54.4,52.4},{54.4,52.6},{54.6,52.4},{54.6,52.6},{55.2,47.4},{55.2,48},{55.2,53.6},{55.6,53.4},{55.8,53.6},{56,46.4},{56,47.2},{56.2,48},{56.4,52.4},{56.6,52.6},{57,47.4},{57,47.6},{57,52.2},{57.6,51.8},{58.2,51.4},{59.4,51.4},{59.4,51.6},{60,52.6},{60.2,51.8},{60.4,47.4},{60.4,47.8},{60.4,51.2},{60.6,48},{61,47.4},{61,51},{61.4,51.8},{61.6,47.4},{61.6,47.8},{61.6,51.4}} },
},
[19701] = {
[npcKeys.spawns] = { [3483] = {{49.8,55.8},{51,54.4},{51,54.6},{51.6,41.8},{52.4,47.4},{52.4,47.6},{52.4,53.6},{52.6,53.6},{52.8,53},{53,48.4},{53.2,48.6},{53.4,47.2},{53.6,47.2},{54.2,52.2},{54.4,52.6},{54.6,52.6},{55,52.2},{55,53.8},{55.2,47},{55.2,48.2},{56.2,48},{56.4,46.4},{56.4,46.6},{56.6,46.4},{56.6,46.6},{56.6,52},{57,48},{58,47.8},{58,53.2},{58.2,47.4},{58.2,51.4},{58.2,51.6},{58.8,47.4},{58.8,47.8},{59.4,51.4},{59.6,47},{60.4,51.2},{60.4,52.2},{60.6,48},{60.6,52.2},{61.4,50.6},{61.6,47.4},{61.6,48},{62,50.6},{62.2,50.4},{62.4,53.2},{62.4,53.6},{62.6,53.4},{62.6,53.6},{63.6,51},{67.2,46.2}} },
},
[18952] = {
[npcKeys.spawns] = { [3483] = {{49.8,55.8},{50.2,56.6},{50.8,56},{51,54.4},{51,55},{51.2,42},{51.4,42.8},{51.4,57},{51.4,57.6},{51.6,57},{51.8,43},{52.2,45.4},{52.2,47.6},{52.4,46.4},{52.4,47.2},{52.6,46.4},{53,47.8},{53,54.4},{53,54.6},{53.2,48.6},{53.4,47},{53.6,46.4},{53.6,47.2},{53.8,47.8},{54.2,53.2},{54.4,52.4},{54.4,53.6},{55.2,46.4},{55.2,47.6},{55.2,52.2},{55.2,53},{55.2,53.6},{55.4,47},{55.8,46.4},{56,46.8},{56.2,48},{56.4,53.4},{56.4,53.6},{56.6,46.4},{56.8,53.6},{57,47.2},{57,47.6},{57.4,52.4},{57.4,52.6},{58,47.4},{58,47.8},{58.2,51.4},{58.4,46.4},{58.4,52.4},{58.4,52.6},{58.6,52.4},{58.6,52.6},{58.8,47},{58.8,47.6},{59,46.4},{59.4,51.2},{59.8,51.6},{60.2,46.4},{60.4,46.6},{60.4,47.6},{60.4,51.2},{60.4,52.6},{60.6,46.4},{60.6,46.6},{60.8,51},{60.8,52.6},{61,47.6},{61,52.2},{61.4,50.4},{61.6,47.4},{61.6,47.8},{61.8,51.4},{61.8,51.6},{62,53.4},{62,53.6},{62.2,50.4},{62.6,51.2},{62.6,53.2},{62.6,53.6},{65.4,46.6},{65.8,46.4},{65.8,46.6},{67,45.2},{67,46.2},{67.6,45.8},{67.8,45.4}} },
},
[23728] = {
[npcKeys.spawns] = { [495] = { { 60.1, 62.4 } } },
},
+9
View File
@@ -43,6 +43,15 @@ function QuestieWotlkQuestFixes:Load()
local specKeys = QuestieProfessions.specializationKeys
return {
[10482] = {
[questKeys.objectives] = {
nil,
nil,
nil,
nil,
{ { { 16876, 16925, 18952, 19701 }, 16876, "Bonechewer Orcs slain" } },
},
},
[55] = {
[questKeys.objectives] = {{{1200}}},
},
@@ -1,10 +0,0 @@
---@type table
local EbonholdDB = QuestieLoader:CreateModule("EbonholdDB")
EbonholdDB.itemData = EbonholdDB.itemData or {
-- Ebonhold Custom Items would go here
-- [ItemID] = {Name, ...}
}
EbonholdItemDB = EbonholdItemDB or {}
EbonholdItemDB.itemData = EbonholdDB.itemData
@@ -1,21 +0,0 @@
-- Generated by Ebonhold
EbonholdDB = EbonholdDB or {}
EbonholdDB.npcData = EbonholdDB.npcData or {
[32398] = { "King Ping", nil, nil, 71, 71, 2, { [495] = { { 25.6, 69.2 }, { 26.0, 63.8 }, { 26.6, 63.2 }, { 30.4, 71.4 }, { 30.8, 56.4 }, { 30.8, 70.8 }, { 31.0, 71.6 }, { 31.2, 56.6 }, { 31.2, 57.6 }, { 31.6, 77.4 }, { 31.8, 75.4 }, { 32.2, 75.8 }, { 32.6, 78.8 }, { 33.0, 80.2 }, { 33.4, 80.6 }, { 33.6, 80.2 }, { 33.6, 81.0 } } }, nil, 495, nil, nil, 12 },
[32377] = { "Perobas the Bloodthirster", nil, nil, 71, 71, 2, { [495] = { { 47.8, 5.8 }, { 50.0, 4.6 }, { 50.4, 4.4 }, { 50.6, 4.2 }, { 52.4, 10.8 }, { 53.0, 11.8 }, { 53.2, 12.6 }, { 53.8, 11.8 }, { 60.0, 19.8 }, { 60.6, 21.0 }, { 60.8, 22.0 }, { 61.0, 19.8 }, { 68.2, 17.8 }, { 68.4, 17.2 }, { 68.6, 16.8 }, { 69.4, 14.2 }, { 71.2, 13.2 }, { 71.2, 14.6 }, { 71.4, 14.0 }, { 71.6, 14.4 }, { 72.2, 13.4 } } }, nil, 495, nil, nil, 12 },
[32386] = { "Vigdis the War Maiden", nil, nil, 71, 71, 2, { [495] = { { 68.4, 46.0 }, { 68.4, 58.4 }, { 68.6, 48.6 }, { 68.8, 47.8 }, { 68.8, 59.0 }, { 70.0, 50.4 }, { 70.0, 56.8 }, { 70.0, 57.6 }, { 70.4, 49.2 }, { 70.6, 50.2 }, { 71.0, 52.2 }, { 71.0, 56.8 }, { 71.2, 55.4 }, { 71.2, 55.6 }, { 71.6, 44.4 }, { 71.6, 45.6 }, { 71.8, 47.0 }, { 72.2, 42.8 }, { 72.2, 48.6 }, { 72.2, 52.6 }, { 72.4, 44.8 }, { 72.4, 50.6 }, { 72.6, 46.0 }, { 72.6, 52.4 }, { 72.6, 61.2 }, { 72.8, 39.2 }, { 72.8, 41.0 }, { 72.8, 44.4 }, { 72.8, 49.0 }, { 72.8, 51.4 }, { 72.8, 61.8 }, { 73.0, 40.2 }, { 73.0, 48.0 }, { 73.2, 44.6 }, { 73.2, 53.2 }, { 73.6, 45.4 }, { 73.8, 49.6 }, { 73.8, 61.4 }, { 74.0, 52.6 }, { 74.2, 45.8 }, { 74.2, 47.8 }, { 74.2, 59.2 }, { 74.4, 54.6 }, { 74.4, 60.2 }, { 74.6, 50.0 }, { 74.6, 51.4 }, { 74.6, 54.8 }, { 74.8, 45.2 }, { 74.8, 56.6 }, { 74.8, 58.4 }, { 75.0, 48.2 }, { 75.0, 52.6 }, { 75.6, 45.2 }, { 76.2, 42.8 } } }, nil, 495, nil, nil, 12 },
[7040] = { "Black Dragonspawn", nil, nil, 52, 53, 1, { [46] = { { 85.41, 27.2 }, { 83.57, 28.6 }, { 56.96, 61.45 }, { 87.21, 39.79 }, { 90.47, 37.34 }, { 82.35, 26.62 }, { 58.26, 64.5 }, { 87.2, 35.15 }, { 90.44, 38.44 }, { 75.54, 62.52 }, { 86.97, 28.34 }, { 88.48, 36.45 }, { 56.1, 64.35 }, { 92.19, 54.61 }, { 93.86, 55.37 }, { 92.78, 57.53 }, { 90.5, 54.29 }, { 56.33, 60.61 }, { 90.47, 52.28 }, { 86.82, 26.3 } } }, nil, 46, nil, nil, 103 },
[7041] = { "Black Wyrmkin", nil, nil, 53, 54, 1, { [46] = { { 88.37, 39.97 }, { 77.87, 62.23 }, { 58.44, 60.82 }, { 88.93, 37.64 }, { 77.32, 61.9 }, { 76.7, 62.5 }, { 89.19, 35.49 }, { 57.51, 62.19 }, { 84.67, 28.67 }, { 84.71, 26.89 }, { 83.99, 26.9 }, { 91.38, 55.93 }, { 91.8, 53.16 }, { 92.77, 53.76 }, { 91.6, 50.35 }, { 88.29, 37.47 }, { 57.59, 60.56 }, { 77.14, 61.57 } } }, nil, 46, nil, nil, 103 },
[7042] = { "Flamescale Dragonspawn", nil, nil, 56, 57, 1, { [46] = { { 20.84, 45.04 }, { 30.68, 61.44 }, { 22.3, 45.17 }, { 20.17, 48.79 }, { 33.8, 71.2 }, { 32.92, 66.48 }, { 34.68, 48.65 }, { 31.69, 66.49 }, { 32.59, 71.06 }, { 23.41, 47.57 }, { 31.19, 59.11 }, { 34.47, 68.92 } } }, nil, 46, nil, nil, 103 },
[7043] = { "Flamescale Wyrmkin", nil, nil, 57, 58, 1, { [46] = { { 29.98, 60.53 }, { 37.2, 49.1 }, { 32.54, 62.37 }, { 32.36, 60.6 }, { 30.03, 62.81 }, { 21.44, 46.43 }, { 19.91, 45.36 }, { 33.7, 69.84 }, { 32.3, 69.47 }, { 30.91, 62.33 }, { 31.44, 61.33 }, { 36.9, 47.25 }, { 21.65, 47.41 }, { 35.75, 49.08 }, { 36.09, 48.57 } } }, nil, 46, nil, nil, 103 },
[7044] = { "Black Drake", nil, nil, 50, 52, 1, { [46] = { { 89.94, 43.86 }, { 84.9, 28.47 }, { 89.5, 56.96 } } }, { [46] = { { { 89.96, 43.86 }, { 89.99, 44.74 }, { 90.07, 46.4 }, { 89.95, 48.47 }, { 90.54, 49.75 }, { 90.66, 50.69 }, { 90.68, 51.68 }, { 90.65, 52.73 }, { 90.02, 53.21 }, { 88.83, 53.58 }, { 89.03, 50.61 }, { 89.19, 49.39 }, { 89.45, 47.86 }, { 89.26, 46.76 }, { 89.02, 45.61 }, { 89.53, 44.81 }, { 89.83, 44.1 } }, { { 84.91, 28.51 }, { 85.56, 29.06 }, { 86.35, 29.73 }, { 87.56, 30.77 }, { 88.9, 31.47 }, { 89.65, 32.07 }, { 90.27, 33.21 }, { 90.62, 34.25 }, { 90.31, 35.58 }, { 89.95, 35.87 }, { 89.56, 35.54 }, { 88.91, 34.27 }, { 87.76, 32.12 }, { 86.74, 30.92 }, { 86.02, 30.68 }, { 85.66, 29.86 }, { 85.12, 28.91 } }, { { 89.02, 57.48 }, { 87.82, 58.51 }, { 87.0, 58.89 }, { 85.76, 59.23 }, { 85.0, 59.12 }, { 84.04, 58.85 }, { 83.4, 58.53 }, { 82.87, 58.41 }, { 82.43, 58.81 }, { 81.98, 59.75 }, { 81.96, 60.38 }, { 82.31, 61.04 }, { 82.66, 61.33 }, { 83.13, 61.42 }, { 83.8, 61.26 }, { 84.5, 61.08 }, { 85.1, 60.93 }, { 85.52, 60.7 }, { 86.17, 60.03 }, { 87.45, 59.17 }, { 89.49, 58.05 }, { 90.89, 58.15 }, { 91.89, 58.36 }, { 93.16, 57.98 }, { 93.75, 57.24 }, { 93.85, 56.88 }, { 93.89, 56.36 }, { 93.71, 55.73 }, { 93.32, 55.0 }, { 93.0, 54.44 }, { 92.27, 53.6 }, { 91.95, 53.03 }, { 91.74, 52.69 }, { 91.23, 52.48 }, { 90.74, 52.76 }, { 89.89, 54.41 }, { 89.78, 55.27 }, { 89.49, 56.53 } } } }, 46, nil, nil, 103 },
[7045] = { "Scalding Drake", nil, nil, 53, 55, 1, { [46] = { { 60.28, 59.02 }, { 63.73, 58.42 } } }, { [46] = { { { 60.18, 59.02 }, { 60.13, 59.32 }, { 60.02, 59.68 }, { 59.67, 60.38 }, { 58.9, 61.33 }, { 57.97, 62.36 }, { 57.46, 63.02 }, { 56.95, 64.35 }, { 55.79, 63.79 }, { 55.23, 63.83 }, { 54.46, 63.8 }, { 53.51, 63.66 }, { 51.91, 63.62 }, { 51.46, 63.79 }, { 50.95, 63.56 }, { 50.49, 62.87 }, { 50.29, 62.6 }, { 50.09, 62.27 }, { 49.99, 62.04 }, { 49.74, 61.59 }, { 48.89, 60.43 }, { 49.46, 59.95 }, { 49.9, 59.25 }, { 50.05, 58.81 }, { 50.42, 58.39 }, { 50.87, 58.31 }, { 51.05, 58.04 }, { 51.72, 57.47 }, { 52.35, 57.39 }, { 52.58, 57.43 }, { 53.53, 57.55 }, { 54.36, 58.41 }, { 54.63, 58.96 }, { 55.16, 59.32 }, { 55.74, 59.18 }, { 56.21, 58.98 }, { 56.72, 58.49 }, { 57.95, 58.86 }, { 58.45, 59.35 }, { 59.09, 59.64 }, { 59.95, 59.65 } }, { { 63.77, 58.53 }, { 64.46, 59.11 }, { 65.35, 59.82 }, { 65.8, 60.29 }, { 66.53, 60.57 }, { 66.87, 60.26 }, { 67.46, 59.59 }, { 68.03, 59.47 }, { 68.4, 59.38 }, { 68.77, 59.3 }, { 69.26, 59.24 }, { 69.86, 58.96 }, { 71.01, 58.59 }, { 71.65, 58.59 }, { 72.37, 59.25 }, { 72.45, 58.33 }, { 71.98, 57.62 }, { 71.52, 57.81 }, { 70.81, 58.33 }, { 69.99, 58.71 }, { 68.45, 59.34 }, { 68.08, 59.45 }, { 67.54, 59.46 }, { 66.7, 59.47 }, { 65.85, 59.48 }, { 65.27, 59.42 }, { 64.78, 59.23 }, { 64.3, 58.88 } } } }, 46, nil, nil, 103 },
[7046] = { "Searscale Drake", nil, nil, 56, 58, 1, { [46] = { { 17.44, 52.46 }, { 32.02, 61.97 }, { 24.54, 67.17 } } }, { [46] = { { { 17.32, 52.66 }, { 17.01, 53.57 }, { 17.04, 55.22 }, { 17.38, 56.98 }, { 17.5, 57.64 }, { 18.0, 58.4 }, { 18.72, 58.97 }, { 19.33, 59.4 }, { 19.75, 59.56 }, { 19.06, 59.25 }, { 17.83, 58.1 }, { 17.43, 57.24 }, { 17.38, 56.3 }, { 17.32, 54.62 }, { 17.72, 53.02 }, { 18.02, 51.2 }, { 17.46, 49.27 }, { 17.71, 48.01 }, { 18.11, 47.13 }, { 18.58, 46.92 }, { 18.74, 47.4 }, { 18.85, 48.27 }, { 18.87, 48.73 }, { 18.89, 49.72 }, { 18.44, 50.69 }, { 17.62, 52.07 } } } }, 46, nil, nil, 103 },
[7047] = { "Black Broodling", nil, nil, 51, 52, 0, { [46] = { { 86.92, 30.55 }, { 84.87, 31.86 }, { 91.86, 38.48 }, { 81.01, 28.2 }, { 91.67, 35.54 }, { 81.37, 26.48 }, { 88.32, 29.78 }, { 87.8, 33.45 }, { 91.59, 33.36 }, { 89.47, 43.89 }, { 90.53, 45.22 }, { 90.48, 50.92 }, { 90.57, 47.39 }, { 84.59, 62.1 } } }, nil, 46, nil, nil, 103 },
[7048] = { "Scalding Broodling", nil, nil, 53, 54, 0, { [46] = { { 57.59, 31.63 }, { 38.74, 46.15 }, { 61.13, 31.24 }, { 55.73, 64.44 }, { 63.78, 57.27 }, { 73.18, 27.12 }, { 70.94, 62.13 }, { 59.86, 63.91 }, { 37.81, 62.51 }, { 72.4, 28.17 }, { 34.62, 55.43 }, { 78.39, 27.5 }, { 40.92, 48.81 }, { 52.67, 26.04 }, { 59.19, 32.29 }, { 64.36, 60.61 } } }, nil, 46, nil, nil, 103 },
[7049] = { "Flamescale Broodling", nil, nil, 55, 56, 0, { [46] = { { 24.82, 47.18 }, { 24.33, 67.37 }, { 28.66, 57.82 }, { 22.48, 68.9 }, { 23.35, 70.57 }, { 22.32, 58.87 }, { 25.37, 45.74 }, { 16.96, 55.36 } } }, nil, 46, nil, nil, 103 },
}
-- Backward compatibility
EbonholdNpcDB = EbonholdNpcDB or {}
EbonholdNpcDB.npcData = EbonholdDB.npcData
@@ -1,17 +0,0 @@
---@type table
local EbonholdDB = QuestieLoader:CreateModule("EbonholdDB")
EbonholdDB.objectData = EbonholdDB.objectData or {
-- Object 600600: Elemental Shrine (starts quest 50026)
[600600] = {
[1] = "Elemental Shrine", -- Name
[2] = nil, -- Type
[3] = nil, -- Zones
[4] = { [3703] = { { 54.29, 45.69 } } }, -- Spawns: Shattrath City
[5] = 12, -- Faction
[6] = nil, -- Unknown
},
}
EbonholdObjectDB = EbonholdObjectDB or {}
EbonholdObjectDB.objectData = EbonholdDB.objectData
File diff suppressed because it is too large Load Diff
-323
View File
@@ -1,323 +0,0 @@
---@class EbonholdLoader
---@type table
local EbonholdLoader = QuestieLoader:CreateModule("EbonholdLoader")
---@type QuestieDB
local QuestieDB = QuestieLoader:ImportModule("QuestieDB")
---@type table
local EbonholdDB = QuestieLoader:ImportModule("EbonholdDB")
_G.EbonholdDB = _G.EbonholdDB or EbonholdDB
local _overridesInjected = false
local _zonesApplied = false
local function _LoadIfString(data, label)
if not data then return nil end
if type(data) == "string" then
local fn, err = loadstring(data)
if not fn then
if Questie and Questie.Debug then
Questie:Debug(Questie.DEBUG_CRITICAL,
"[EbonholdLoader] loadstring failed for " .. tostring(label) .. ": " .. tostring(err))
end
return nil
end
local ok, tbl = pcall(fn)
if not ok then
if Questie and Questie.Debug then
Questie:Debug(Questie.DEBUG_CRITICAL,
"[EbonholdLoader] executing chunk failed for " .. tostring(label) .. ": " .. tostring(tbl))
end
return nil
end
return tbl
end
return data
end
local function _MergeInto(dst, src)
if type(dst) ~= "table" or type(src) ~= "table" then return end
for id, entry in pairs(src) do
dst[id] = entry
end
end
-- Apply Ebonhold custom uiMapId->areaId mappings into ZoneDB (used by map/Journey)
function EbonholdLoader:ApplyZoneTables()
if _zonesApplied then return end
if not EbonholdZoneTables or not EbonholdZoneTables.uiMapIdToAreaId then return end
local ZoneDB = QuestieLoader:ImportModule("ZoneDB")
if not ZoneDB then return end
ZoneDB.private = ZoneDB.private or {}
ZoneDB.private.uiMapIdToAreaId = ZoneDB.private.uiMapIdToAreaId or {}
ZoneDB.private.areaIdToUiMapId = ZoneDB.private.areaIdToUiMapId or {}
ZoneDB.private.subZoneToParentZone = ZoneDB.private.subZoneToParentZone or {}
ZoneDB.private.dungeons = ZoneDB.private.dungeons or {}
ZoneDB.private.dungeonLocations = ZoneDB.private.dungeonLocations or {}
ZoneDB.private.dungeonParentZones = ZoneDB.private.dungeonParentZones or {}
for uiMapId, areaId in pairs(EbonholdZoneTables.uiMapIdToAreaId) do
if uiMapId and areaId then
-- Always set these mappings (remove the nil check to ensure they're set)
ZoneDB.private.uiMapIdToAreaId[uiMapId] = areaId
-- Ebonhold uses custom map ids for spawns/waypoints (e.g. 1238 for Northshire Valley).
-- QuestieMap draws by converting AreaId->UiMapId, so register these ids as self-mapping.
ZoneDB.private.areaIdToUiMapId[uiMapId] = uiMapId
-- If this uiMapId represents a *dungeon* map, prefer it for that dungeon's AreaId.
-- This keeps normal zones intact (e.g. Elwynn stays 1429), while letting Ebonhold
-- provide real instance maps (e.g. mapID 691 for The Stockade).
if type(ZoneDB.private.dungeons) == "table" and ZoneDB.private.dungeons[areaId] then
ZoneDB.private.areaIdToUiMapId[areaId] = uiMapId
end
-- Register subzone to parent zone mapping so GetParentZoneId works with Ebonhold zones
if uiMapId ~= areaId then
ZoneDB.private.subZoneToParentZone[uiMapId] = areaId
end
end
end
-- Optional: allow Ebonhold to define custom dungeon zones/entrances without touching core tables.
if type(EbonholdZoneTables.dungeons) == "table" then
for areaId, data in pairs(EbonholdZoneTables.dungeons) do
if areaId and data then
ZoneDB.private.dungeons[areaId] = data
end
end
end
if type(EbonholdZoneTables.dungeonLocations) == "table" then
for areaId, data in pairs(EbonholdZoneTables.dungeonLocations) do
if areaId and data then
ZoneDB.private.dungeonLocations[areaId] = data
end
end
end
if type(EbonholdZoneTables.dungeonParentZones) == "table" then
for subZoneId, parentZoneId in pairs(EbonholdZoneTables.dungeonParentZones) do
if subZoneId and parentZoneId then
ZoneDB.private.dungeonParentZones[subZoneId] = parentZoneId
end
end
end
-- Also map parentMapIDs (e.g. 10138) to a usable uiMapId to avoid fallback errors.
if EbonholdUiMapData and EbonholdUiMapData.uiMapData then
for uiMapId, data in pairs(EbonholdUiMapData.uiMapData) do
if uiMapId and ZoneDB.private.areaIdToUiMapId[uiMapId] == nil then
ZoneDB.private.areaIdToUiMapId[uiMapId] = uiMapId
end
if data and type(data.parentMapID) == "number" and ZoneDB.private.areaIdToUiMapId[data.parentMapID] == nil then
ZoneDB.private.areaIdToUiMapId[data.parentMapID] = uiMapId
end
end
end
-- Register zone sort names for custom zones
if EbonholdZoneTables.zoneSort then
ZoneDB.private.zoneSort = ZoneDB.private.zoneSort or {}
for zoneId, zoneName in pairs(EbonholdZoneTables.zoneSort) do
ZoneDB.private.zoneSort[zoneId] = zoneName
end
end
-- Clear cached zone lookups after adding custom zones
if QuestieDB and QuestieDB.private and QuestieDB.private.zoneCache then
QuestieDB.private.zoneCache = {}
end
-- Clear auto-blacklist since zone validation might have changed
if QuestieDB and QuestieDB.autoBlacklist then
QuestieDB.autoBlacklist = {}
end
_zonesApplied = true
end
-- Inject Ebonhold tables into QuestieDB *Overrides* so QueryQuestSingle/QueryNPCSingle can see them
function EbonholdLoader:InjectOverrides()
if _overridesInjected then return end
_overridesInjected = true
-- Apply zone tables FIRST, before any ZoneDB functions use the local variables
EbonholdLoader:ApplyZoneTables()
QuestieDB.npcDataOverrides = QuestieDB.npcDataOverrides or {}
QuestieDB.objectDataOverrides = QuestieDB.objectDataOverrides or {}
QuestieDB.itemDataOverrides = QuestieDB.itemDataOverrides or {}
QuestieDB.questDataOverrides = QuestieDB.questDataOverrides or {}
local npcData = _LoadIfString(EbonholdDB and EbonholdDB.npcData, "EbonholdDB.npcData")
local objectData = _LoadIfString(EbonholdDB and EbonholdDB.objectData, "EbonholdDB.objectData")
local itemData = _LoadIfString(EbonholdDB and EbonholdDB.itemData, "EbonholdDB.itemData")
local questData = _LoadIfString(EbonholdDB and EbonholdDB.questData, "EbonholdDB.questData")
_MergeInto(QuestieDB.npcDataOverrides, npcData)
_MergeInto(QuestieDB.objectDataOverrides, objectData)
_MergeInto(QuestieDB.itemDataOverrides, itemData)
_MergeInto(QuestieDB.questDataOverrides, questData)
-- Keep a lightweight list of custom quest ids for search/UI (DO NOT touch QuestPointers; those are numeric stream pointers)
if type(questData) == "table" then
QuestieDB.ebonholdQuestIds = QuestieDB.ebonholdQuestIds or {}
for questId, _ in pairs(questData) do
if type(questId) == "number" then
QuestieDB.ebonholdQuestIds[questId] = true
end
end
end
-- Keep a lightweight list of custom NPC ids for search/UI
if type(npcData) == "table" then
QuestieDB.ebonholdNpcIds = QuestieDB.ebonholdNpcIds or {}
for npcId, _ in pairs(npcData) do
if type(npcId) == "number" then
QuestieDB.ebonholdNpcIds[npcId] = true
end
end
end
-- Keep a lightweight list of custom object ids for search/UI
if type(objectData) == "table" then
QuestieDB.ebonholdObjectIds = QuestieDB.ebonholdObjectIds or {}
for objectId, _ in pairs(objectData) do
if type(objectId) == "number" then
QuestieDB.ebonholdObjectIds[objectId] = true
end
end
end
-- Keep a lightweight list of custom item ids for search/UI
if type(itemData) == "table" then
QuestieDB.ebonholdItemIds = QuestieDB.ebonholdItemIds or {}
for itemId, _ in pairs(itemData) do
if type(itemId) == "number" then
QuestieDB.ebonholdItemIds[itemId] = true
end
end
end
end
-- Hook ZoneDB.Initialize to inject custom zones BEFORE standard zones are processed
do
local ZoneDB = QuestieLoader:ImportModule("ZoneDB")
if ZoneDB then
local originalZoneInitialize = ZoneDB.Initialize
if type(originalZoneInitialize) == "function" then
function ZoneDB:Initialize(...)
-- Apply custom zones FIRST, before standard zone processing
EbonholdLoader:ApplyZoneTables()
-- Then initialize standard zones
return originalZoneInitialize(self, ...)
end
end
end
end
-- Hook QuestieDB.Initialize to guarantee timing for overrides
do
local originalInitialize = QuestieDB and QuestieDB.Initialize
if type(originalInitialize) == "function" then
function QuestieDB:Initialize(...)
-- 1) Inject overrides before the DB handles are created
EbonholdLoader:InjectOverrides()
local ret = originalInitialize(self, ...)
-- 2) Refresh Journey caches (zoneMap/zones) so "Quests by Zone" sees the new data
local ZoneDB = QuestieLoader:ImportModule("ZoneDB")
local QuestieJourney = QuestieLoader:ImportModule("QuestieJourney")
if ZoneDB and QuestieJourney then
QuestieJourney.zoneMap = ZoneDB:GetZonesWithQuests(true)
QuestieJourney.zones = ZoneDB:GetRelevantZones()
-- Clear the UI cache so the tree gets rebuilt
if QuestieJourney.private then
QuestieJourney.private.treeCache = nil
QuestieJourney.private.lastZoneSelection = {}
end
-- If the Journey window is open, rebuild the current tab
if QuestieJourneyFrame and QuestieJourneyFrame:IsShown() and QuestieJourney.tabGroup then
local p = QuestieJourney.private
if p and p.containerCache and p.lastOpenWindow then
p:HandleTabChange(p.containerCache, p.lastOpenWindow)
end
end
end
return ret
end
end
end
-- >>> NEW: Make QuestieDB.GetQuest work for Ebonhold override quests (Journey needs this)
do
local originalGetQuest = QuestieDB.GetQuest
if type(originalGetQuest) == "function" then
function QuestieDB.GetQuest(questId)
local q = originalGetQuest(questId)
if q then return q end
-- Fallback: build a minimal quest object from QueryQuestSingle (works with overrides)
local name = QuestieDB.QueryQuestSingle(questId, "name")
if not name then return nil end
local level = QuestieDB.QueryQuestSingle(questId, "level") or
QuestieDB.QueryQuestSingle(questId, "questLevel")
local reqLevel = QuestieDB.QueryQuestSingle(questId, "requiredLevel") or
QuestieDB.QueryQuestSingle(questId, "minLevel")
local desc = QuestieDB.QueryQuestSingle(questId, "objectiveText") or
QuestieDB.QueryQuestSingle(questId, "description") or QuestieDB.QueryQuestSingle(questId, "details")
-- Build the Starts field from startedBy (CRITICAL for available quests to show icons!)
local startedBy = QuestieDB.QueryQuestSingle(questId, "startedBy")
local starts = {
NPC = startedBy and startedBy[1] or {},
GameObject = startedBy and startedBy[2] or {},
Item = startedBy and startedBy[3] or {},
}
-- Also get other fields needed for quest display
local finishedBy = QuestieDB.QueryQuestSingle(questId, "finishedBy")
local specialFlags = QuestieDB.QueryQuestSingle(questId, "specialFlags")
local isRepeatable = specialFlags and (bit.band(specialFlags, 1) ~= 0) or false
-- Questie modules expect these common fields
return {
Id = questId,
id = questId,
name = name,
level = level or reqLevel or 0,
requiredLevel = reqLevel or 0,
Description = desc, -- Journey tooltip reads quest.Description
Starts = starts, -- CRITICAL: AvailableQuests needs this!
finishedBy = finishedBy,
IsRepeatable = isRepeatable,
}
end
end
end
-- Ensure zones also get applied when Questie finishes loading (covers edge cases)
do
local f = CreateFrame("Frame")
f:RegisterEvent("ADDON_LOADED")
f:SetScript("OnEvent", function(_, _, name)
if name ~= "Questie-335" then return end
if C_Timer and C_Timer.After then
C_Timer.After(0, function() EbonholdLoader:ApplyZoneTables() end)
else
EbonholdLoader:ApplyZoneTables()
end
end)
end
return EbonholdLoader
@@ -1,36 +0,0 @@
---@class EbonholdUiMapData
EbonholdUiMapData = EbonholdUiMapData or {}
EbonholdUiMapData.uiMapData = {
-- Ebonhold custom dungeon maps
-- Example from Ascension (Reference only for structure):
-- [691] = {
-- [1] = 375.0,
-- [2] = 251.0,
-- [3] = 189.0,
-- [4] = 220.0,
-- instance = 34,
-- mapID = 691.1,
-- name = "The Stockade",
-- mapType = 3,
-- parentMapID = 717,
-- },
}
local function ApplyUiMapData()
if not QuestieCompat then return end
if not EbonholdUiMapData or not EbonholdUiMapData.uiMapData then return end
QuestieCompat.UiMapData = QuestieCompat.UiMapData or {}
for uiMapId, data in pairs(EbonholdUiMapData.uiMapData) do
if QuestieCompat.UiMapData[uiMapId] == nil then
QuestieCompat.UiMapData[uiMapId] = data
end
end
end
if QuestieCompat and QuestieCompat.LoadUiMapData then
hooksecurefunc(QuestieCompat, "LoadUiMapData", ApplyUiMapData)
end
ApplyUiMapData()
@@ -1,17 +0,0 @@
---@class EbonholdZoneTables
EbonholdZoneTables = EbonholdZoneTables or {}
EbonholdZoneTables.uiMapIdToAreaId = EbonholdZoneTables.uiMapIdToAreaId or {
-- Example mappings:
-- [1238] = 12, -- Custom Northshire Valley Map -> Elwynn Forest AreaID
}
-- Register zone sort names for custom zones so they can be used in quest zoneOrSort field
EbonholdZoneTables.zoneSort = EbonholdZoneTables.zoneSort or {
-- [1238] = "Northshire Valley",
}
-- Optional: custom dungeon registration (merged into ZoneDB by EbonholdLoader).
EbonholdZoneTables.dungeons = EbonholdZoneTables.dungeons or {}
EbonholdZoneTables.dungeonLocations = EbonholdZoneTables.dungeonLocations or {}
EbonholdZoneTables.dungeonParentZones = EbonholdZoneTables.dungeonParentZones or {}
+13
View File
@@ -1163,6 +1163,10 @@ function QuestieDB.GetQuest(questId) -- /dump QuestieDB.GetQuest(867)
if (not rawdata) then
Questie:Debug(Questie.DEBUG_CRITICAL, "[QuestieDB.GetQuest] rawdata is nil for questID:", questId)
if questId == 0 then
Questie:Error("[QuestieDB.GetQuest] rawdata is nil for questID:", questId)
print(debugstack())
end
return nil
end
@@ -1322,6 +1326,7 @@ function QuestieDB.GetQuest(questId) -- /dump QuestieDB.GetQuest(867)
Type = "killcredit",
IdList = creditObjective[1],
RootId = creditObjective[2],
Id = creditObjective[2] or (creditObjective[1] and creditObjective[1][1]) or 0,
Text = creditObjective[3]
}
@@ -1481,6 +1486,14 @@ function QuestieDB:GetCreatureLevels(quest)
end
end
end
if quest.objectives[5] then -- Kill credit objectives
for _, creditObjective in pairs(quest.objectives[5]) do
local npcIds = creditObjective[1]
if npcIds then
_CollectCreatureLevels(npcIds)
end
end
end
end
if quest.Id then
QuestieDB._CreatureLevelCache[quest.Id] = creatureLevels