Files
Questie-Octo/Data/pfDB/overwrites-octo.lua
T

1540 lines
66 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- The database under ./db is autogenerated. Changing the entries there
-- will result in a data loss whenever a new database gets extracted.
-- To be able to customize and/or fix entries that aren't yet detected
-- by the extractor logic, this file here can be used to save overwrites.
--
-- This pack is the TurtleWoW database with the Octo pack folded in, so this
-- file carries three things in order:
-- 1. records the Octo DB has that the TurtleWoW build does not
-- 2. the Octo pack's own corrections
-- 3. the TurtleWoW pack's own corrections
-- Records come first so that anything indexing into them further down finds
-- them present.
do -- Octo-only records, carried over from the pfQuest-octo database
-- 24 entries where the Octo DB holds real data the Kludge Bureau turtle build
-- does not: either it has no entry for that id, or only a "_" placeholder.
-- Kept here rather than patched into the autogenerated files under ./db, so a
-- future database refresh cannot silently drop them.
-- quests: 1 absent from the turtle build, 0 only a placeholder there
pfDB["quests"]["data-turtle"][1704] = {
["class"] = 1,
["end"] = {
["U"] = { 6169 },
},
["lvl"] = 28,
["min"] = 20,
["pre"] = { 1701 },
["race"] = 589,
["start"] = {
["U"] = { 5413 },
},
}
-- units: 6 absent from the turtle build, 0 only a placeholder there
pfDB["units"]["data-turtle"][5327] = {
["coords"] = {
[1] = { 28.1, 59.4, 357, 300 },
[2] = { 26, 59.2, 357, 300 },
[3] = { 34, 56.3, 357, 300 },
[4] = { 35.4, 52.2, 357, 300 },
[5] = { 35.9, 51.6, 357, 300 },
[6] = { 37.2, 50, 357, 300 },
[7] = { 36, 48.6, 357, 300 },
[8] = { 39.6, 48.4, 357, 300 },
[9] = { 37.9, 45.8, 357, 300 },
[10] = { 39.7, 45.2, 357, 300 },
[11] = { 36.8, 44.1, 357, 300 },
[12] = { 37.7, 42.2, 357, 300 },
[13] = { 36.8, 41.9, 357, 300 },
[14] = { 33.2, 32.1, 357, 300 },
},
["lvl"] = "44-45",
["rnk"] = "1",
}
pfDB["units"]["data-turtle"][7044] = {
["coords"] = {
[1] = { 89.9, 43.9, 46, 500 },
[2] = { 91.5, 37.7, 46, 500 },
[3] = { 84.9, 28.5, 46, 500 },
},
["lvl"] = "50-52",
["rnk"] = "1",
}
pfDB["units"]["data-turtle"][11661] = {
["coords"] = {
[1] = { 32.3, 48.9, 2717, 7200 },
[2] = { 32.5, 47.1, 2717, 7200 },
},
["lvl"] = "62",
["rnk"] = "1",
}
pfDB["units"]["data-turtle"][12259] = {
["coords"] = {
[1] = { 32.8, 48, 2717, 604800 },
},
["lvl"] = "63",
["rnk"] = "3",
}
pfDB["units"]["data-turtle"][12360] = {
["coords"] = {
[1] = { 31, 62.1, 141, 120 },
[2] = { 25.4, 50, 141, 300 },
[3] = { 66.5, 73, 1657, 120 },
[4] = { 39.4, 14.9, 1657, 300 },
},
["fac"] = "AH",
["lvl"] = "1-2",
}
pfDB["units"]["data-turtle"][62229] = {
["coords"] = {},
["lvl"] = "34-35",
}
-- objects: 5 absent from the turtle build, 0 only a placeholder there
pfDB["objects"]["data-turtle"][944] = {
["coords"] = {
[1] = { 39.1, 91.4, 139, 25 },
},
["fac"] = "AH",
}
pfDB["objects"]["data-turtle"][21145] = {
["coords"] = {
[1] = { 30.7, 62.8, 141, 300 },
[2] = { 64.7, 76.3, 1657, 300 },
},
}
pfDB["objects"]["data-turtle"][181021] = {
["coords"] = {
[1] = { 54.1, 34.6, 1, 120 },
[2] = { 45.5, 12.1, 14, 120 },
[3] = { 46.4, 9.2, 14, 120 },
[4] = { 30.9, 57.1, 141, 120 },
[5] = { 31.2, 57.1, 141, 120 },
[6] = { 31.6, 57.1, 141, 120 },
[7] = { 36.1, 54.4, 141, 120 },
[8] = { 35.2, 54.4, 141, 120 },
[9] = { 30.9, 53.6, 141, 120 },
[10] = { 31.2, 53.5, 141, 120 },
[11] = { 31.5, 53.5, 141, 120 },
[12] = { 38.9, 29.3, 215, 120 },
[13] = { 18.8, 84.2, 1537, 120 },
[14] = { 20.4, 82.3, 1537, 120 },
[15] = { 16.9, 80.7, 1537, 120 },
[16] = { 21.9, 80.4, 1537, 120 },
[17] = { 18.4, 78.7, 1537, 120 },
[18] = { 20, 76.8, 1537, 120 },
[19] = { 58.9, 13.7, 1537, 120 },
[20] = { 58.9, 13.7, 1537, 900 },
[21] = { 39.5, 12.4, 1537, 120 },
[22] = { 39.5, 12.4, 1537, 900 },
[23] = { 49.1, 95.4, 1637, 120 },
[24] = { 52.5, 84.3, 1637, 120 },
[25] = { 46.2, 65.6, 1637, 120 },
[26] = { 47.3, 65.5, 1637, 120 },
[27] = { 45.6, 64.2, 1637, 120 },
[28] = { 46.1, 62.9, 1637, 120 },
[29] = { 47, 62.7, 1637, 120 },
[30] = { 17.8, 60.6, 1637, 120 },
[31] = { 44.7, 61.5, 1638, 120 },
[32] = { 66.1, 49, 1657, 120 },
[33] = { 67.5, 49, 1657, 120 },
[34] = { 69.1, 48.9, 1657, 120 },
[35] = { 90.7, 35.8, 1657, 120 },
[36] = { 86.5, 35.7, 1657, 120 },
[37] = { 65.8, 31.8, 1657, 120 },
[38] = { 67.2, 31.8, 1657, 120 },
[39] = { 68.7, 31.7, 1657, 120 },
},
}
pfDB["objects"]["data-turtle"][186250] = {
["coords"] = {
[1] = { 30.4, 63, 141, 300 },
[2] = { 30.3, 62.9, 141, 300 },
[3] = { 63.4, 77.5, 1657, 300 },
[4] = { 62.9, 77, 1657, 300 },
},
}
pfDB["objects"]["data-turtle"][1000373] = {
["coords"] = {
[1] = { 49.6, 73.5, 10, 25 },
[2] = { 21.2, 69.6, 10, 25 },
[3] = { 22.2, 69, 10, 25 },
[4] = { 22, 67.8, 10, 25 },
[5] = { 20.8, 67.4, 10, 25 },
[6] = { 73, 53.8, 10, 25 },
[7] = { 73.4, 53.2, 10, 25 },
[8] = { 75.7, 42.3, 10, 25 },
[9] = { 16.5, 71.2, 11, 25 },
[10] = { 20.5, 69.1, 11, 25 },
[11] = { 20, 69, 11, 25 },
[12] = { 41.7, 88.1, 12, 25 },
[13] = { 41.1, 87.3, 12, 25 },
[14] = { 42.6, 86.8, 12, 25 },
[15] = { 41.9, 86.8, 12, 25 },
[16] = { 40.8, 86.7, 12, 25 },
[17] = { 32.7, 86.4, 12, 25 },
[18] = { 41.1, 86.2, 12, 25 },
[19] = { 42.1, 86, 12, 25 },
[20] = { 41.5, 85.9, 12, 25 },
[21] = { 32, 85.4, 12, 25 },
[22] = { 33.3, 85.4, 12, 25 },
[23] = { 32.6, 84.4, 12, 25 },
[24] = { 69.3, 80.2, 12, 25 },
[25] = { 70.1, 79.3, 12, 25 },
[26] = { 68.9, 78.9, 12, 25 },
[27] = { 69.4, 78.2, 12, 25 },
[28] = { 34.3, 57.8, 12, 25 },
[29] = { 34.1, 51.4, 12, 25 },
[30] = { 35, 51.2, 12, 25 },
[31] = { 35.6, 50.5, 12, 25 },
[32] = { 33.9, 50.5, 12, 25 },
[33] = { 34.9, 50.5, 12, 25 },
[34] = { 34.9, 50.2, 12, 25 },
[35] = { 34.9, 49.9, 12, 25 },
[36] = { 54.1, 49.7, 12, 25 },
[37] = { 33.8, 49.5, 12, 25 },
[38] = { 33.7, 48.3, 12, 25 },
[39] = { 53.9, 47.8, 12, 25 },
[40] = { 63, 95.7, 14, 25 },
[41] = { 60.8, 90.2, 14, 25 },
[42] = { 55.4, 34.5, 14, 25 },
[43] = { 43.6, 30.1, 14, 25 },
[44] = { 48.4, 15.7, 14, 25 },
[45] = { 42.8, 15.1, 14, 25 },
[46] = { 42.1, 8.9, 14, 25 },
[47] = { 41.6, 42.6, 16, 300 },
[48] = { 42.4, 93.2, 17, 300 },
[49] = { 78.1, 47, 17, 25 },
[50] = { 77, 44.2, 17, 25 },
[51] = { 46.1, 38.1, 17, 25 },
[52] = { 46.4, 38.1, 17, 25 },
[53] = { 46.5, 37.9, 17, 25 },
[54] = { 45.9, 37.5, 17, 25 },
[55] = { 46.5, 37.4, 17, 25 },
[56] = { 46.2, 37.1, 17, 25 },
[57] = { 46, 37.1, 17, 25 },
[58] = { 60.9, 24.7, 17, 300 },
[59] = { 54, 20.7, 17, 25 },
[60] = { 35, 87.8, 33, 25 },
[61] = { 60.3, 87.6, 36, 25 },
[62] = { 59.6, 86, 36, 25 },
[63] = { 59.2, 85.6, 36, 25 },
[64] = { 60, 85.5, 36, 25 },
[65] = { 83.1, 80.4, 36, 25 },
[66] = { 40.5, 19.3, 36, 25 },
[67] = { 38.1, 13.6, 36, 25 },
[68] = { 51.1, 23.5, 40, 25 },
[69] = { 52, 22.8, 40, 25 },
[70] = { 50.5, 21.8, 40, 25 },
[71] = { 51.2, 20.5, 40, 25 },
[72] = { 58.8, 18.2, 40, 25 },
[73] = { 58, 18.2, 40, 25 },
[74] = { 20.4, 46.2, 44, 25 },
[75] = { 63.1, 58.6, 45, 25 },
[76] = { 63.2, 58.2, 45, 25 },
[77] = { 61.6, 57.7, 45, 25 },
[78] = { 61, 57.6, 45, 25 },
[79] = { 55.4, 40.3, 45, 25 },
[80] = { 55, 39.6, 45, 25 },
[81] = { 32.4, 29, 45, 25 },
[82] = { 32.5, 28.3, 45, 25 },
[83] = { 36, 52, 85, 25 },
[84] = { 35.6, 52, 85, 25 },
[85] = { 35.5, 51.7, 85, 25 },
[86] = { 36.9, 51.6, 85, 25 },
[87] = { 34.7, 51.6, 85, 25 },
[88] = { 35.4, 51.3, 85, 25 },
[89] = { 36.1, 51.3, 85, 25 },
[90] = { 36.9, 50.7, 85, 25 },
[91] = { 35.3, 50.4, 85, 25 },
[92] = { 36.1, 50.4, 85, 25 },
[93] = { 34.9, 50.3, 85, 25 },
[94] = { 36.9, 50, 85, 25 },
[95] = { 35.3, 49.6, 85, 25 },
[96] = { 36.1, 49.6, 85, 25 },
[97] = { 34.7, 49.4, 85, 25 },
[98] = { 36.9, 49.4, 85, 25 },
[99] = { 23.3, 61.3, 141, 25 },
[100] = { 27.3, 61.1, 141, 25 },
[101] = { 31.2, 56.4, 141, 25 },
[102] = { 23.5, 48.2, 141, 25 },
[103] = { 43.6, 76.3, 148, 25 },
[104] = { 68.3, 19.1, 148, 300 },
[105] = { 44.7, 59.4, 215, 25 },
[106] = { 44.2, 59.4, 215, 25 },
[107] = { 45, 58.7, 215, 25 },
[108] = { 44.3, 58.7, 215, 25 },
[109] = { 44.1, 58.3, 215, 25 },
[110] = { 44.6, 58.1, 215, 25 },
[111] = { 51.1, 38.5, 215, 25 },
[112] = { 47.6, 29.9, 215, 25 },
[113] = { 51.2, 28.4, 215, 25 },
[114] = { 39.9, 25.2, 215, 25 },
[115] = { 45.7, 22.6, 215, 25 },
[116] = { 45.6, 21.4, 215, 25 },
[117] = { 47, 16, 215, 25 },
[118] = { 64.1, 62.4, 267, 25 },
[119] = { 64.7, 62.2, 267, 25 },
[120] = { 63.8, 61.9, 267, 25 },
[121] = { 65.3, 60.8, 267, 25 },
[122] = { 64.3, 60.4, 267, 25 },
[123] = { 53.9, 56.5, 267, 25 },
[124] = { 53.9, 56, 267, 25 },
[125] = { 34.5, 46.9, 267, 25 },
[126] = { 35, 46.9, 267, 25 },
[127] = { 34.1, 46.8, 267, 25 },
[128] = { 35.5, 46.7, 267, 25 },
[129] = { 34.3, 46.2, 267, 25 },
[130] = { 35.9, 46, 267, 25 },
[131] = { 35.7, 45.6, 267, 25 },
[132] = { 34.7, 45.3, 267, 25 },
[133] = { 35.2, 45, 267, 25 },
[134] = { 34.2, 41.3, 267, 25 },
[135] = { 34.9, 41.1, 267, 25 },
[136] = { 35.6, 41.1, 267, 25 },
[137] = { 35.7, 40.6, 267, 25 },
[138] = { 34.2, 40.4, 267, 25 },
[139] = { 34.9, 40.3, 267, 25 },
[140] = { 31.6, 38.5, 267, 25 },
[141] = { 31.3, 38.3, 267, 25 },
[142] = { 30.6, 38.1, 267, 25 },
[143] = { 31.2, 37.2, 267, 25 },
[144] = { 31.6, 37.1, 267, 25 },
[145] = { 30.5, 36.8, 267, 25 },
[146] = { 33.8, 35.5, 267, 25 },
[147] = { 61.6, 25.1, 267, 25 },
[148] = { 61, 23.7, 267, 25 },
[149] = { 60.6, 23.3, 267, 25 },
[150] = { 61.4, 23.2, 267, 25 },
[151] = { 81.5, 18.8, 267, 25 },
[152] = { 22.4, 52.5, 331, 25 },
[153] = { 51.5, 60.6, 357, 300 },
[154] = { 51.5, 60.4, 357, 300 },
[155] = { 51.5, 59.9, 357, 300 },
[156] = { 51.6, 59.6, 357, 300 },
[157] = { 51.5, 59.3, 357, 300 },
[158] = { 49.1, 19.3, 357, 25 },
[159] = { 43.6, 17.6, 357, 25 },
[160] = { 43.7, 16.5, 357, 25 },
[161] = { 44.1, 16.4, 357, 25 },
[162] = { 43.5, 16.3, 357, 25 },
[163] = { 43.7, 16, 357, 25 },
[164] = { 28.2, 24.4, 400, 300 },
[165] = { 31.1, 36.7, 440, 300 },
[166] = { 78.4, 64.7, 490, 300 },
[167] = { 38.3, 12.6, 490, 300 },
[168] = { 37.2, 11.5, 490, 300 },
[169] = { 35.8, 41.3, 493, 25 },
[170] = { 54.5, 49, 1497, 25 },
[171] = { 69.3, 71.3, 1519, 25 },
[172] = { 37, 67, 1519, 25 },
[173] = { 33.8, 64.6, 1519, 25 },
[174] = { 35.7, 62.9, 1519, 25 },
[175] = { 55.1, 59.3, 1537, 25 },
[176] = { 36.3, 83.3, 1637, 25 },
[177] = { 49.8, 41.2, 1638, 25 },
[178] = { 78.4, 28.5, 1638, 25 },
[179] = { 77.7, 22.4, 1638, 25 },
[180] = { 29.4, 69, 1657, 25 },
[181] = { 48.7, 68.3, 1657, 25 },
[182] = { 67.3, 45.4, 1657, 25 },
[183] = { 30.1, 6.3, 1657, 25 },
[184] = { 36.2, 93.5, 3478, 25 },
[185] = { 35.3, 92.9, 3478, 25 },
[186] = { 36.6, 92.6, 3478, 25 },
[187] = { 36.4, 92.5, 3478, 25 },
[188] = { 35.9, 91.5, 3478, 25 },
[189] = { 36.4, 91.2, 3478, 25 },
[190] = { 89.7, 9.9, 5179, 25 },
[191] = { 90.2, 9.9, 5179, 25 },
[192] = { 89.4, 9.8, 5179, 25 },
[193] = { 90.6, 9.7, 5179, 25 },
[194] = { 89.5, 9.2, 5179, 25 },
[195] = { 91, 9.1, 5179, 25 },
[196] = { 90.8, 8.7, 5179, 25 },
[197] = { 89.9, 8.5, 5179, 25 },
[198] = { 90.4, 8.2, 5179, 25 },
[199] = { 89.5, 5, 5179, 25 },
[200] = { 90.1, 4.9, 5179, 25 },
[201] = { 90.7, 4.8, 5179, 25 },
[202] = { 90.8, 4.4, 5179, 25 },
[203] = { 89.5, 4.2, 5179, 25 },
[204] = { 90.1, 4.1, 5179, 25 },
[205] = { 87.2, 2.6, 5179, 25 },
[206] = { 86.9, 2.4, 5179, 25 },
[207] = { 86.3, 2.2, 5179, 25 },
[208] = { 86.9, 1.4, 5179, 25 },
[209] = { 87.2, 1.3, 5179, 25 },
[210] = { 86.3, 1.1, 5179, 25 },
},
}
-- items: 3 absent from the turtle build, 7 only a placeholder there
pfDB["items"]["data-turtle"][3053] = {
["U"] = {
[2344] = 1.5,
[62114] = 1.5,
[62115] = 1.5,
[62117] = 1.5,
[62131] = 1.5,
[62132] = 1.5,
[62133] = 1.5,
[62134] = 1.5,
},
}
pfDB["items"]["data-turtle"][9425] = {
["U"] = {
[4848] = 0.02,
[4853] = 0.06,
[4855] = 0.02,
[4860] = 0.02,
[7012] = 0.02,
[7023] = 0.02,
[7320] = 0.02,
[7321] = 0.02,
[61364] = 0.02,
[61365] = 0.02,
[61388] = 0.02,
[61389] = 0.02,
[61390] = 0.02,
[61391] = 0.02,
[61417] = 0.02,
},
}
pfDB["items"]["data-turtle"][50234] = {
["V"] = {
[50070] = 0,
},
}
pfDB["items"]["data-turtle"][50235] = {
["V"] = {
[50070] = 0,
},
}
pfDB["items"]["data-turtle"][50238] = {
["V"] = {
[51531] = 0,
[51533] = 0,
},
}
pfDB["items"]["data-turtle"][60002] = {
["V"] = {
[50070] = 0,
},
}
pfDB["items"]["data-turtle"][65029] = {
["V"] = {
[50070] = 0,
},
}
pfDB["items"]["data-turtle"][65031] = {
["V"] = {
[50070] = 0,
},
}
pfDB["items"]["data-turtle"][81187] = {
["V"] = {
[50070] = 0,
[51531] = 0,
[51533] = 0,
[61644] = 0,
[81057] = 0,
},
}
pfDB["items"]["data-turtle"][81278] = {
["V"] = {
[81063] = 0,
},
}
-- minimap: 1 absent from the turtle build, 0 only a placeholder there
-- minimap and meta are top-level pfDB keys, not nested under a
-- "data-turtle" field like the other databases -- see
-- db/minimap-turtle.lua and the separate handling at the bottom of
-- patchtable.lua. Using the nested path here made this line throw,
-- which aborted the rest of the file and silently dropped 166 of the
-- corrections below it.
pfDB["minimap-turtle"][2041] = { 1513.0, 1003.0 }
-- quests-itemreq: 1 absent from the turtle build, 0 only a placeholder there
pfDB["quests-itemreq"]["data-turtle"][15209] = {
[-177528] = "18987",
[-944] = "18987",
}
end
-- ==== corrections carried over from pfQuest-octo ====
do -- custom mounts: strip mass-attributed drop sources (2026-08-11)
-- Reported in Discord: a level-6 Venture Co. Lumber Worker (61675) on the
-- goblin starter island showed "Onyxian Drake 2.50%" in its loot tooltip,
-- and a second report of "mounts on non possible creatures".
--
-- Cause is in the extracted data, not the display: 21 custom mount items
-- carry ["U"] tables attributing them to 240-977 ordinary units each, at
-- uniform 0.5/1/2.5/5 percent chances -- unit 6 (Kobold Vermin) included,
-- and 61675 is on four of the lists. The custom mounts with REAL drop
-- sources (30000-30007: chargers, crocolisks, two crabs) have 1-7 specific
-- units, so the artifact class is unmistakable: everything at >=50 sources
-- is a flattened template, not a drop table. Deliberately NOT touched:
-- world-drop materials (varied per-unit chances), pickpocket pouches, and
-- the jewelcrafting plans seeded into shared recipe pools -- those look
-- like server design, not extraction error.
--
-- Only ["U"] is removed; vendor/object/container sources stay. Runs before
-- patchtable.lua merges data-turtle, so the merged database never carries
-- the fake sources. pfExtend rebuilds its cached loot DB via the pack
-- version, so tooltips heal on the first login after updating.
local massmounts = {
30008, 30009, 30010, 30011, 30012, 30013, 30014, 30015, 30016, 30017,
30018, 30019, 30020, 30021, 30022, 30023, 30024, 30025, 30026, 30040,
81091,
}
for _, id in pairs(massmounts) do
if pfDB["items"]["data-turtle"][id] then
pfDB["items"]["data-turtle"][id]["U"] = nil
end
end
end
do -- quests: restore missing objective data (2026-08-11, /db checkdb report)
-- Reported by a player in Moonwhisper Coast using /db checkdb: four quests
-- flagged with no objective data. Two are collect/find quests in the pack
-- whose targets exist in the data with spawns exactly where the quest
-- happens -- verified by hand per the corrections.lua doctrine (name matches
-- the objective text, spawns in the quest's zone):
-- 41990 Phasmophobia -- "Collect Maras'ethil Relics in the ruins" ->
-- objects 2020322-2020325 "Maras'ethil Relic", all zone 5642 only,
-- quest ender Olgra (62899) in 5642
-- 41920 Fallen One Cargo -- "Find Maghan's lost cargo" ->
-- object 2020265 "Maghan's Cargo", zone 5642 only
-- Applied only where ["obj"] is absent, so real data ships ahead of this.
-- (The other two flagged quests: 6570 is a base-database gap corrected in
-- pfQuest's own corrections.lua; 40823 is a talk-to quest and legitimately
-- draws no pins.)
local objfix = {
[41990] = { ["O"] = { 2020322, 2020323, 2020324, 2020325 } },
[41920] = { ["O"] = { 2020265 } },
}
for qid, obj in pairs(objfix) do
local entry = pfDB["quests"]["data-turtle"][qid]
if entry and not entry["obj"] then
entry["obj"] = obj
end
end
end
do -- quests: restore missing objective data (2026-08-12, /db checkdb reports)
-- Two more player reports covering 20 log quests around Moonwhisper Coast.
-- Same doctrine as the block above: a correction is added only when the
-- unit's name matches what the objective text names, and its spawns sit in
-- zone 5642 where the quest says they should. Everything here was checked
-- by hand against units-turtle.lua coordinates.
--
-- Kill quests, targets named in the objective line:
-- 41993 Hiding in the Shade -- "Kill the Shadewalkers of An'she's
-- Respite" -> Shadewalker Brute/Bonerattler/Sharpshooter
-- (62996/62999/63000), one cluster at 41-47,18-23. Suntail (62997)
-- and Matriarch Ohanzee (62998) stand among them but are not "the
-- Shadewalkers", so they are left out.
-- 41994 Shade Mother -- "Kill Matriarch Ohanzee" -> 62998,
-- single spawn 42.9,19.2 inside the Shadewalker camp.
-- 41948 Wanted: Growlpaw -- Growlpaw -> 63081, single spawn
-- 53.6,95.2 in the bearfolk village "in the far south". The stolen
-- wares and the turn-in NPC (Chief Defender Hamaam) are not in the
-- database -- Moro'gai Village (zone 5649) has zero extracted
-- spawns -- so the kill pin is all that can be restored.
-- 42011 Collectors of Draenethyst -- "Retrieve one Starshard from the
-- Starshard Collectors" -> 62826.
-- 42013 The Windhorn Burden -- "Slay the Druids of the Moth and
-- Disciples of Lo'sho" -> 63061/63062, Grove of the Moon cluster.
-- 42019 The Mighty Elekk -- "Bring an Elekk Tusk" -> Moonwhisper
-- Elekk (63008), five roaming spawns ("rare, almost nomadic").
-- 42046 Ritual Ready -- "Bring 7 Stagwing Feathers" ->
-- Azureshimmer Stagwing (63036), 24 spawns in the fields.
--
-- Collect quests whose objective line names the holders (the collectable
-- itself is not in the database, so the named source is pinned instead):
-- 42064 Blackroot Hold -- "Recover the stolen expedition supplies
-- from the Blackroot furbolgs" -> the nine Blackroot units, both
-- camps of their village to the south (y 77-95).
-- 42069 The Withered Den -- "Find what caused the expedition to
-- wither in the Barrow Den north of Sunsworn Camp" -> Withered
-- Ranger/Explorer/Researcher (63152/63153/63154), a tight cluster
-- at 53-55,68-69 just north of the camp (56,71) -- the withered
-- expedition itself, marking the den.
--
-- Reported but NOT fixable from this database (nothing to reference):
-- 41997 Taste for Hydra -- no hydra unit carries spawns anywhere.
-- 42010 Powerless Runestone -- the Frozen Highborne Vials (Owl Wing
-- Thicket ground objects) are not in the object data; the turn-in
-- spire (Keeper N'las, 63183) already pins.
-- 42066 Ghosts of Maras'ethil -- no artifact objects exist; the ruins
-- hold 41990's "Maras'ethil Relic" spawns, but borrowing another
-- quest's objects would be a guess, not a verification.
-- 42067 Heaven Falling Down -- no Meteor Shard object; Servitor's
-- Sanctuary is a named subzone (5670) but spawns only record the
-- parent zone, so no Fallen One cluster can be verified as it.
-- 41909 Glowing Draenethyst Cluster -- no text, no start, no end: the
-- entry is an id and levels, nothing more.
-- 41912 An Ill Omen / 41944 The Long Hunt -- pure deliveries, and their
-- Moro'gai Village turn-in NPCs are part of the zone-5649 gap.
-- 40823 / 42049 / 6823 -- talk-to or reputation quests; no
-- objective data is correct for them.
-- 6570 Emberstrife -- vanilla-database gap, already corrected
-- in pfQuest's own corrections.lua (2026-08-11).
local objfix = {
[41993] = { ["U"] = { 62996, 62999, 63000 } },
[41994] = { ["U"] = { 62998 } },
[41948] = { ["U"] = { 63081 } },
[42011] = { ["U"] = { 62826 } },
[42013] = { ["U"] = { 63061, 63062 } },
[42019] = { ["U"] = { 63008 } },
[42046] = { ["U"] = { 63036 } },
[42064] = { ["U"] = { 62786, 62787, 62788, 62789, 62790, 62791, 62792, 62793, 63092 } },
[42069] = { ["U"] = { 63152, 63153, 63154 } },
}
for qid, obj in pairs(objfix) do
local entry = pfDB["quests"]["data-turtle"][qid]
if entry and not entry["obj"] then
entry["obj"] = obj
end
end
end
do -- quests: restore missing objective data in bulk (2026-08-12, 1.0.8 audit)
-- Result of the full-database audit: of 6,889 merged quests, 2,580 carry no
-- ["obj"]. 1,265 are talk/delivery texts and 9 reputation grinds (no
-- objectives is CORRECT for them), 39 are deprecated, and 659 name nothing
-- that exists in the database (the genuinely-absent class). The remainder
-- went through a name-match pipeline holding the same doctrine as the
-- blocks above -- a unit/item name from the database appearing in the
-- quest's own objective text, spawns/sources verified, quest enders and
-- location mentions excluded -- and every surviving row was reviewed by
-- hand. 56 ship here; 268 more had matches but not proof (object-only
-- matches, cross-zone name reuse, ambiguous intent) and are documented in
-- the audit report rather than guessed at.
-- Items ship only when their own drop-source table intersects units named
-- in the same text, which is what keeps carried delivery items out.
-- Applied only where ["obj"] is absent, so real data ships ahead of this.
local objfix = {
[2] = { ["I"] = { 16305 } }, -- Sharptalon's Claw
[23] = { ["I"] = { 16303 } }, -- Ursangous's Paw
[24] = { ["I"] = { 16304 } }, -- Shadumbra's Head
[269] = { ["U"] = { 288 } }, -- Seeking Wisdom
[281] = { ["U"] = { 285 } }, -- Reclaiming Goods
[285] = { ["U"] = { 285 } }, -- Search More Hovels
[361] = { ["U"] = { 1656 } }, -- A Letter Undelivered
[636] = { ["U"] = { 2755 } }, -- Legends of the Earth
[770] = { ["U"] = { 3056 } }, -- The Demon Scarred Cloak
[883] = { ["I"] = { 5099 } }, -- Lakota'mani
[884] = { ["I"] = { 5102 } }, -- Owatanka
[885] = { ["I"] = { 5103 } }, -- Washte Pawne
[1098] = { ["U"] = { 3849 } }, -- Deathstalkers in Shadowfang
[1265] = { ["U"] = { 4966 } }, -- The Missing Diplomat
[2969] = { ["U"] = { 5278 } }, -- Freedom for All Creatures
[2986] = { ["U"] = { 5901 } }, -- Call of Water
[3446] = { ["U"] = { 14834 } }, -- Into the Depths
[4863] = { ["U"] = { 10301 } }, -- Enraged Wildkin
[4866] = { ["U"] = { 10596 } }, -- Mother's Milk
[5048] = { ["U"] = { 10778 } }, -- Good Natured Emma
[5049] = { ["U"] = { 10778 } }, -- The Jeremiah Blues
[6000] = { ["U"] = { 6122 } }, -- Swearing to Gakin
[6601] = { ["U"] = { 11872 } }, -- Ascension...
[8183] = { ["I"] = { 19802 } }, -- The Heart of Hakkar
[40033] = { ["U"] = { 61987 } }, -- Finding Akh Z'ador
[40572] = { ["U"] = { 4972 } }, -- Aid Kagoro
[40948] = { ["U"] = { 61458 } }, -- Wolf Amongst Sheep
[41169] = { ["U"] = { 61748 } }, -- Bearer Of Bad News
[41234] = { ["U"] = { 61843 } }, -- To Raise An Ancient
[41324] = { ["U"] = { 61987 } }, -- Novice In A Barren Land
[41552] = { ["U"] = { 73102 } }, -- Renewed Teachings
[41825] = { ["I"] = { 58180 } }, -- The Matron Will Know
[41898] = { ["U"] = { 62786, 62789, 62791, 62794 } }, -- Twisted Relations
[41930] = { ["U"] = { 62934 } }, -- Proof of Conviction
[41931] = { ["U"] = { 62871 }, ["I"] = { 42171 } }, -- The Corruption of Timbermaw Hold
[41952] = { ["U"] = { 63092 } }, -- Out of the Moonlight
[41969] = { ["U"] = { 9690 }, ["I"] = { 42250 } }, -- Raiments of Ritual
[41995] = { ["U"] = { 63116 } }, -- Mindless Monster
[42003] = { ["I"] = { 12662, 42296 } }, -- The Silver Blade
[42005] = { ["U"] = { 60748 } }, -- The Rift Calls
[42014] = { ["U"] = { 63063, 63067 } }, -- Roots of the Grove
[42015] = { ["U"] = { 63064 } }, -- Lady Stargazer
[42016] = { ["U"] = { 63066 } }, -- In Lucid Dreams
[42047] = { ["U"] = { 63164 } }, -- Back to Sleep
[42052] = { ["U"] = { 62827 } }, -- In Blue Defiance
[42053] = { ["U"] = { 62830, 62831 } }, -- Jawtaker
[42056] = { ["U"] = { 63199 } }, -- Garments of the Three Siblings
[42075] = { ["U"] = { 63037, 63039 } }, -- Price of Betrayal
[42077] = { ["U"] = { 63068 } }, -- Mothshroud Falls
[42088] = { ["U"] = { 62996, 62999, 63000 } }, -- An’she’s Respite
[42090] = { ["U"] = { 63148, 63149 } }, -- Serpents Without Heads
[42092] = { ["U"] = { 62830 } }, -- A Star That Calls Back
[42094] = { ["U"] = { 63061, 63065, 63066 } }, -- The Moth’s Heresy
[42096] = { ["U"] = { 63142, 63146 } }, -- The Rot of Elun’aran
[42097] = { ["U"] = { 63141 } }, -- Keeper of the Broken Grove
[80341] = { ["U"] = { 1201 } }, -- Taming the Beast
}
for qid, obj in pairs(objfix) do
local entry = pfDB["quests"]["data-turtle"][qid]
if entry and not entry["obj"] then
entry["obj"] = obj
end
end
end
do -- quests: site-authoritative corrections, batch 1 (2026-08-12, 1.0.9)
-- Source: the server's own database as rendered by octowow.st/db, crawled
-- and parsed in full (all 6,889 known quest ids; tooling and caches in
-- Documents\OctoWoW Works\octowow-db). Two absent-only sets:
--
-- objfix -- kill/interact objectives the pack lacked, every id verified to
-- exist with spawns in the merged data. 41982 (Destroy the Deathtotem) was
-- demoted from the 1.0.8 name-match batch as unverifiable; the site data
-- settles it as npc 62781.
--
-- maskfix -- race/class requirements the pack never carried. The Tauren
-- priest chain had only its race mask, which is why a Tauren druid saw
-- "Light of An'she" pinned (player report by Dusk): race passed and there
-- was no class field to filter on. Values are the site's literal masks
-- (class 16 priest, 64 shaman, 128 mage).
--
-- Still pending from the same crawl: 923 collect quests whose pins need
-- item drop-sources (item pages still crawling), and 665 pack-vs-site
-- objective differences held for a compared review, not blind overwrite.
local objfix = {
[41906] = { ["O"] = { 3000203 } }, -- No Mercy For The Wicked
[41916] = { ["U"] = { 62992 } }, -- The Elder's End
[41939] = { ["U"] = { 62783 } }, -- Vortalus' Edict
[41943] = { ["U"] = { 13282, 12236 } }, -- Foul Waters
[41967] = { ["U"] = { 4124, 4248 } }, -- The Need to Survive
[41978] = { ["U"] = { 62760 } }, -- The Wrath of Malgan
[41982] = { ["U"] = { 62781 } }, -- Destroy the Deathtotem
[41996] = { ["U"] = { 63001 } }, -- Siren's Song
[42000] = { ["U"] = { 62890, 62891, 62889 } }, -- Highborne Burden
[42038] = { ["U"] = { 63170, 63167, 63166 } }, -- The Frostmane War
[42039] = { ["U"] = { 63131 } }, -- Chieftain Ubukaz
[42042] = { ["U"] = { 63173, 63172, 63145, 63144 } }, -- Led Astray
}
for qid, obj in pairs(objfix) do
local entry = pfDB["quests"]["data-turtle"][qid]
if entry and not entry["obj"] then
entry["obj"] = obj
end
end
local maskfix = {
[40053] = { class = 128 }, -- Hidden Secrets
[40056] = { race = 589 }, -- Zinfizzlex's Portable Shredder Unit
[41873] = { race = 589 }, -- Brangar's Journal
[41938] = { class = 64 }, -- Windtorn Crest Stone
[41939] = { class = 64 }, -- Vortalus' Edict
[42055] = { class = 16 }, -- In Favor of the Three Siblings
[42056] = { class = 16 }, -- Garments of the Three Siblings
[42057] = { class = 16 }, -- Light of An'she
[42058] = { class = 16 }, -- Light of An'she
[42059] = { class = 16 }, -- Spiritwalk
[42060] = { class = 16 }, -- Spiritwalk
[42079] = { class = 16 }, -- Secrets of Moonwhisper
}
for qid, fix in pairs(maskfix) do
local entry = pfDB["quests"]["data-turtle"][qid]
if entry then
if fix.race and not entry["race"] then entry["race"] = fix.race end
if fix.class and not entry["class"] then entry["class"] = fix.class end
end
end
end
do -- quests + items: site-authoritative collect batch (2026-08-13, 1.0.10)
-- The item pages of the server database are crawled and parsed; this ships
-- every collect quest whose objective items have a known source. 197 quests
-- gain ["I"] objectives (166 draw pins immediately). The 20 item entries
-- below are Moonwhisper collectables whose ground objects the extraction
-- carried all along under ids nothing referenced -- including the Frozen
-- Highborne Vials, the Meteor Shard and the Maras'ethil-era relics that
-- 1.0.8 had classified as genuinely absent. Drop percents are the site's.
-- 726 collect quests stay unfixed: no source is listed even server-side.
-- Absent-only throughout, like every block above.
local objfix = {
[78] = { ["I"] = { 921 } }, -- The Legend of Stalvan
[337] = { ["I"] = { 2794 } }, -- An Old History Book
[351] = { ["I"] = { 8623 } }, -- Find OOX-17/TN!
[373] = { ["I"] = { 2874 } }, -- The Unsent Letter
[383] = { ["I"] = { 2885 } }, -- Vital Intelligence
[460] = { ["I"] = { 3317 } }, -- Resting in Pieces
[485] = { ["I"] = { 8704 } }, -- Find OOX-09/HL!
[521] = { ["I"] = { 3554 } }, -- The Crown of Will
[522] = { ["I"] = { 3668 } }, -- Assassin's Contract
[531] = { ["I"] = { 2713 } }, -- Vyrin's Revenge
[551] = { ["I"] = { 3706 } }, -- The Ensorcelled Parchment
[554] = { ["I"] = { 3706 } }, -- Stormpike's Deciphering
[708] = { ["I"] = { 4613 } }, -- The Black Box
[723] = { ["I"] = { 4635 } }, -- Prospect of Faith
[724] = { ["I"] = { 4635 } }, -- Prospect of Faith
[819] = { ["I"] = { 4926 } }, -- Chen's Empty Keg
[824] = { ["I"] = { 16408 } }, -- Je'neu of the Earthen Ring
[832] = { ["I"] = { 4903 } }, -- Burning Shadows
[897] = { ["I"] = { 5138 } }, -- The Harvester
[906] = { ["I"] = { 5072 } }, -- Betrayal from Within
[909] = { ["I"] = { 16782 } }, -- Baron Aquanis
[922] = { ["I"] = { 5168 } }, -- Rellian Greenspyre
[927] = { ["I"] = { 5179 } }, -- The Moss-twined Heart
[968] = { ["I"] = { 5352 } }, -- The Powers Below
[1024] = { ["I"] = { 5463 } }, -- Raene's Cleansing
[1091] = { ["I"] = { 5717 } }, -- Kaela's Update
[1183] = { ["I"] = { 5852 } }, -- Goblin Sponsorship
[1188] = { ["I"] = { 5862 } }, -- Safety First
[1245] = { ["I"] = { 5947 } }, -- The Missing Diplomat
[1262] = { ["I"] = { 5942 } }, -- Report to Zor
[1392] = { ["I"] = { 6196 } }, -- Noboru the Cudgel
[1423] = { ["I"] = { 6172 } }, -- The Lost Supplies
[1457] = { ["I"] = { 6245 } }, -- The Karnitol Shipwreck
[1480] = { ["I"] = { 20310 } }, -- The Corrupter
[1898] = { ["I"] = { 7231 } }, -- The Deathstalkers
[1918] = { ["I"] = { 16408 } }, -- The Befouled Element
[1978] = { ["I"] = { 7294 } }, -- The Deathstalkers
[2198] = { ["I"] = { 7666 } }, -- The Shattered Necklace
[2766] = { ["I"] = { 8705 } }, -- Find OOX-22/FE!
[2871] = { ["I"] = { 9248 } }, -- Delivering the Relic
[2876] = { ["I"] = { 9250 } }, -- Ship Schedules
[2945] = { ["I"] = { 9326 } }, -- Grime-Encrusted Ring
[2978] = { ["I"] = { 9370 } }, -- The Gordunni Scroll
[3002] = { ["I"] = { 9371 } }, -- The Gordunni Orb
[3366] = { ["I"] = { 10441 } }, -- The Glowing Shard
[3373] = { ["I"] = { 10454 } }, -- The Essence of Eranikus
[3507] = { ["I"] = { 10597 } }, -- Betrayed
[3513] = { ["I"] = { 10621 } }, -- The Runed Scroll
[3518] = { ["I"] = { 10538 } }, -- Delivery to Magatha
[3541] = { ["I"] = { 10539 } }, -- Delivery to Jes'rimon
[3542] = { ["I"] = { 10540 } }, -- Delivery to Andron Gant
[3561] = { ["I"] = { 10541 } }, -- Delivery to Archmage Xylem
[3884] = { ["I"] = { 11116 } }, -- Williden's Journal
[4142] = { ["I"] = { 11316 } }, -- A Visit to Gregan
[4264] = { ["I"] = { 11446 } }, -- A Crumpled Up Note
[4451] = { ["I"] = { 11818 } }, -- The Key to Freedom
[4722] = { ["I"] = { 12289 } }, -- Beached Sea Turtle
[4723] = { ["I"] = { 12242 } }, -- Beached Sea Creature
[4882] = { ["I"] = { 12558 } }, -- Guarding Secrets
[4883] = { ["I"] = { 12558 } }, -- Guarding Secrets
[5083] = { ["I"] = { 12771 } }, -- Winterfall Firewater
[5089] = { ["I"] = { 12780 } }, -- General Drakkisath's Command
[5123] = { ["I"] = { 12842 } }, -- The Final Piece
[5128] = { ["I"] = { 12842 } }, -- Words of the High Chief
[5202] = { ["I"] = { 13140 } }, -- A Strange Red Key
[5262] = { ["I"] = { 13250 } }, -- The Truth Comes Crashing Down
[5462] = { ["I"] = { 13585 } }, -- The Dying, Ras Frostwhisper
[5463] = { ["I"] = { 13585 } }, -- Menethil's Gift
[5582] = { ["I"] = { 13920 } }, -- Healthy Dragon Scale
[6522] = { ["I"] = { 17008 } }, -- An Unholy Alliance
[6564] = { ["I"] = { 16790 } }, -- Allegiance to the Old Gods
[6844] = { ["I"] = { 17346 } }, -- Umber, Archivist
[6922] = { ["I"] = { 16782 } }, -- Baron Aquanis
[6981] = { ["I"] = { 10441 } }, -- The Glowing Shard
[7490] = { ["I"] = { 18422 } }, -- Victory for the Horde
[7495] = { ["I"] = { 18423 } }, -- Victory for the Alliance
[7498] = { ["I"] = { 18356 } }, -- Garona: A Study on Stealth and Treachery
[7499] = { ["I"] = { 18357 } }, -- Codex of Defense
[7500] = { ["I"] = { 18358 } }, -- The Arcanist's Cookbook
[7501] = { ["I"] = { 18359 } }, -- The Light and How To Swing It
[7502] = { ["I"] = { 18360 } }, -- Harnessing Shadows
[7503] = { ["I"] = { 18361 } }, -- The Greatest Race of Hunters
[7504] = { ["I"] = { 18362 } }, -- Holy Bologna: What the Light Won't Tell You
[7505] = { ["I"] = { 18363 } }, -- Frost Shock and You
[7506] = { ["I"] = { 18364 } }, -- The Emerald Dream...
[7507] = { ["I"] = { 18401 } }, -- Foror's Compendium
[7632] = { ["I"] = { 18703 } }, -- The Ancient Leaf
[7644] = { ["I"] = { 18792 } }, -- Blessed Arcanite Barding
[7735] = { ["I"] = { 18969 } }, -- Pristine Yeti Hide
[7738] = { ["I"] = { 18972 } }, -- Perfect Yeti Hide
[7781] = { ["I"] = { 19003 } }, -- The Lord of Blackrock
[7783] = { ["I"] = { 19002 } }, -- The Lord of Blackrock
[7787] = { ["I"] = { 19018 } }, -- Rise, Thunderfury!
[7937] = { ["I"] = { 19423 } }, -- Your Fortune Awaits You...
[7938] = { ["I"] = { 19424 } }, -- Your Fortune Awaits You...
[7944] = { ["I"] = { 19443 } }, -- Your Fortune Awaits You...
[7945] = { ["I"] = { 19452 } }, -- Your Fortune Awaits You...
[8308] = { ["I"] = { 20461 } }, -- Brann Bronzebeard's Lost Letter
[8446] = { ["I"] = { 20644 } }, -- Shrouded in Nightmare
[8470] = { ["I"] = { 20741 } }, -- Deadwood Ritual Totem
[8471] = { ["I"] = { 20742 } }, -- Winterfall Ritual Totem
[8552] = { ["I"] = { 3985 } }, -- The Monogrammed Sash
[8784] = { ["I"] = { 21230 } }, -- Secrets of the Qiraji
[8791] = { ["I"] = { 21220 } }, -- The Fall of Ossirian
[8801] = { ["I"] = { 21221 } }, -- C'Thun's Legacy
[8802] = { ["I"] = { 21221 } }, -- The Savior of Kalimdor
[9120] = { ["I"] = { 22520 } }, -- The Fall of Kel'Thuzad
[40231] = { ["I"] = { 60188 } }, -- The Forgotten Tome
[40236] = { ["I"] = { 60319 } }, -- The Secrets of Darkforging
[40389] = { ["I"] = { 4866 } }, -- Zalazane's Fall
[40391] = { ["I"] = { 60521 } }, -- A Hunt for Honor
[40695] = { ["I"] = { 60935 } }, -- The Sputtervalve Fix
[40696] = { ["I"] = { 60935 } }, -- The Fixed Sputtervalve Conductor
[40723] = { ["I"] = { 60817 } }, -- Honoring Treaties
[40749] = { ["I"] = { 60989 } }, -- Translating The Unknown
[40797] = { ["I"] = { 61153 } }, -- A Foul Effigy
[40931] = { ["I"] = { 61474 } }, -- The Gilneas Lighthouse III
[41042] = { ["I"] = { 61742 } }, -- The Word of the Archdruid
[41063] = { ["I"] = { 61759 } }, -- Scythe of the Goddess
[41064] = { ["I"] = { 61759 } }, -- Scythe of the Goddess
[41066] = { ["I"] = { 61759 } }, -- Scythe of the Goddess
[41091] = { ["I"] = { 61775 } }, -- Finding a Demon Hunter
[41195] = { ["I"] = { 41122 } }, -- Message for the Windrunner
[41352] = { ["I"] = { 41398 } }, -- Auntie Tillia
[41377] = { ["I"] = { 61759 } }, -- Scythe of the Goddess
[41380] = { ["I"] = { 61759 } }, -- Scythe of the Goddess
[41806] = { ["I"] = { 41907 } }, -- Dragonfire Bombs!
[41820] = { ["I"] = { 41924 } }, -- To My Father, Vol'jin
[41899] = { ["I"] = { 41996 } }, -- Blackroot Totems
[41905] = { ["I"] = { 42072 } }, -- Dark Iron Aggression
[41907] = { ["I"] = { 42073 } }, -- Riverhorn Village
[41908] = { ["I"] = { 42001 } }, -- Raw Draenethyst Formation
[41909] = { ["I"] = { 42015 } }, -- Glowing Draenethyst Cluster
[41911] = { ["I"] = { 42133 } }, -- Wolf in Sheep's Clothing
[41913] = { ["I"] = { 42134, 42135, 8831, 42001 } }, -- Draenei Divination
[41914] = { ["I"] = { 42137, 42138 } }, -- Hooves and Horns, Clad in Red
[41918] = { ["I"] = { 42139 } }, -- Silken Song
[41919] = { ["I"] = { 42139 } }, -- More Silk for the Wounded
[41935] = { ["I"] = { 42179, 42178 } }, -- Rite of Resurrection
[41936] = { ["I"] = { 42181, 42180 } }, -- Twisting Rift Crystal
[41938] = { ["I"] = { 42206 } }, -- Windtorn Crest Stone
[41940] = { ["I"] = { 42207, 42208, 42209, 42210 } }, -- Elemental Cores
[41941] = { ["I"] = { 42211 } }, -- Duality of Flame
[41942] = { ["I"] = { 42212, 42213 } }, -- The Plaguewood
[41944] = { ["I"] = { 42216, 42010 } }, -- The Long Hunt
[41945] = { ["I"] = { 42217 } }, -- Respect the Elderly
[41947] = { ["I"] = { 42218 } }, -- Wanted: Tama’an the Ruthless
[41949] = { ["I"] = { 42221 } }, -- Horns of their Allies
[41950] = { ["I"] = { 42222 } }, -- Parcel to Nowhere
[41951] = { ["I"] = { 42222 } }, -- Merchant’s Knowledge
[41953] = { ["I"] = { 42224 } }, -- Draenethyst Recovery
[41955] = { ["I"] = { 42215, 42225, 42226, 42227 } }, -- Tricolored Hide-ra
[41956] = { ["I"] = { 58306 } }, -- Bounty: Head of Highlord Bolvar Fordragon
[41957] = { ["I"] = { 58307 } }, -- Bounty: Head of King Magni Bronzebeard
[41958] = { ["I"] = { 58309 } }, -- Bounty: Head of Arch Druid Fandral Staghelm
[41959] = { ["I"] = { 58308 } }, -- Bounty: Head of Cairne Bloodhoof
[41960] = { ["I"] = { 58310 } }, -- Bounty: Head of Thrall
[41961] = { ["I"] = { 58311 } }, -- Bounty: Head of Lady Sylvanas Windrunner
[41968] = { ["I"] = { 42246 } }, -- Worthy of Cloudhoof
[41974] = { ["I"] = { 42258 } }, -- Glimmering Hydra Scale
[41976] = { ["I"] = { 42262 } }, -- In Search of Tauren Relics
[41977] = { ["I"] = { 42262 } }, -- Relics of the Windhorn Tribe
[41984] = { ["I"] = { 19221 } }, -- Restocking for Vacation
[41987] = { ["I"] = { 22527 } }, -- Core of the Elements
[41989] = { ["I"] = { 42273 } }, -- Slithering Snakes
[41991] = { ["I"] = { 42000 } }, -- Preparation for Hibernation
[41992] = { ["I"] = { 42278 } }, -- Youngest Sibling, Always Last
[41997] = { ["I"] = { 42279 } }, -- Taste for Hydra
[41998] = { ["I"] = { 42001 } }, -- Collecting Draenethyst
[41999] = { ["I"] = { 42280 } }, -- Before They Hatch
[42001] = { ["I"] = { 42281 } }, -- What Upsets the Elements?
[42008] = { ["I"] = { 42300 } }, -- The Finest Pelt
[42010] = { ["I"] = { 42301 } }, -- Powerless Runestone
[42017] = { ["I"] = { 42304 } }, -- Heart Full of Shadows
[42018] = { ["I"] = { 42304 } }, -- Gifting the Matron
[42037] = { ["I"] = { 42320 } }, -- Airfield Supplies
[42040] = { ["I"] = { 42326 } }, -- A Grave Misunderstanding!
[42043] = { ["I"] = { 42336 } }, -- Belated Preservation
[42065] = { ["I"] = { 42351 } }, -- Falling the Fallen
[42066] = { ["I"] = { 42352, 42353, 42354, 42355 } }, -- Ghosts of Maras’ethil
[42067] = { ["I"] = { 42356 } }, -- Heaven Falling Down
[42074] = { ["I"] = { 42380 } }, -- Seeking the Truth
[42076] = { ["I"] = { 42381 } }, -- Return to the Dream
[42079] = { ["I"] = { 42385 } }, -- Secrets of Moonwhisper
[42082] = { ["I"] = { 42387, 42388 } }, -- Starstrider Headdress
[42083] = { ["I"] = { 42389 } }, -- The Rod of Preservation
[42084] = { ["I"] = { 42390 } }, -- A Tale of Scales
[42086] = { ["I"] = { 42394 } }, -- Echoes of Nendis
[42087] = { ["I"] = { 42395 } }, -- The Light of Elunaris
[42089] = { ["I"] = { 42396 } }, -- Scales of the Tideblade
[42093] = { ["I"] = { 42397 } }, -- Feathers on Point
[55051] = { ["I"] = { 81334 } }, -- Return to Port!
[70057] = { ["I"] = { 70035 } }, -- A Simple Memory
[80321] = { ["I"] = { 80868 } }, -- [Deprecated] The Lies that Bind Us
[80322] = { ["I"] = { 80868 } }, -- [Deprecated] The Lies That Bind Us
[80323] = { ["I"] = { 80868 } }, -- [Deprecated] The Lies That Bind Us
[80404] = { ["I"] = { 81284 } }, -- Delivery for Drazzit
}
for qid, obj in pairs(objfix) do
local entry = pfDB["quests"]["data-turtle"][qid]
if entry and not entry["obj"] then
entry["obj"] = obj
end
end
local itemfix = {
[42072] = { ["O"] = { [2020263] = 100 } },
[42073] = { ["O"] = { [2020264] = 100 } },
[42178] = { ["O"] = { [179703] = 30 } },
[42180] = { ["O"] = { [179703] = 30 } },
[42211] = { ["O"] = { [2020310] = 100 } },
[42213] = { ["O"] = { [2020311] = 100 } },
[42262] = { ["O"] = { [2020320] = 100 } },
[42273] = { ["O"] = { [2020321] = 100 } },
[42278] = { ["O"] = { [2020326] = 100 } },
[42280] = { ["O"] = { [2020327] = 100 } },
[42301] = { ["O"] = { [2020334] = 100 } },
[42320] = { ["O"] = { [2020338] = 100 } },
[42326] = { ["O"] = { [2020339] = 100 } },
[42336] = { ["O"] = { [2020420] = 100 } },
[42356] = { ["O"] = { [2020342] = 100 } },
[42380] = { ["O"] = { [2020343] = 100 } },
[42389] = { ["O"] = { [2020344] = 100 } },
[42394] = { ["O"] = { [2020345] = 100, [2020346] = 100 } },
[42395] = { ["O"] = { [300609] = 100, [2020346] = 100 } },
[42397] = { ["O"] = { [300608] = 100 } },
}
local itemnames = {
[42072] = "Refugee Supplies",
[42073] = "Riverhorn Heirloom",
[42178] = "Rite of Resurrection",
[42180] = "Twisting Rift Crystal",
[42211] = "Volcanic Soil",
[42213] = "Twisted Tree Sapling",
[42262] = "Windhorn Relic",
[42273] = "Cracked Idol of Neptulon",
[42278] = "Scroll of Lo’sho",
[42280] = "Mothsilk Cocoon",
[42301] = "Frozen Highborne Vial",
[42320] = "Airfield Supplies",
[42326] = "Tablet of Kaz'gan",
[42336] = "Elunaris Relic",
[42356] = "Meteor Shard",
[42380] = "Worn Letter",
[42389] = "Rod of Preservation",
[42394] = "Nendis Memento",
[42395] = "Relic of Elunaris",
[42397] = "Azureshimmer Hippogryph Feather",
}
for iid, data in pairs(itemfix) do
if not pfDB["items"]["data-turtle"][iid] then
pfDB["items"]["data-turtle"][iid] = data
end
end
for iid, nm in pairs(itemnames) do
if not pfDB["items"]["enUS-turtle"][iid] then
pfDB["items"]["enUS-turtle"][iid] = nm
end
end
end
do -- area trigger
-- Investigating Hateforge (Quest)
pfDB["areatrigger"]["data-turtle"][40486] = { ["coords"] = { [1] = { 96.1, 57.6, 46 } } }
-- Gathering Intel (Quest)
pfDB["areatrigger"]["data-turtle"][80204] = { ["coords"] = { [1] = { 78.3, 72.3, 38 } } }
end
do -- items
-- Once Upon a Sheep: Lost Farm Sheep (Interaction)
pfDB["items"]["data-turtle"][51220] = { ["U"] = { [50610] = 100 } }
-- The Boran Family: Letter from Karl & Letter from Samual (Interaction)
pfDB["items"]["data-turtle"][60202] = { ["U"] = { [1242] = 100 } }
pfDB["items"]["data-turtle"][60203] = { ["U"] = { [92936] = 100 } }
-- Sailors Innovation: Pinch of Salt (Interaction)
pfDB["items"]["data-turtle"][60207] = { ["U"] = { [91950] = 100 } }
-- Southsea Reserve: Southsea Reserve (Interaction)
pfDB["items"]["data-turtle"][60217] = { ["U"] = { [92137] = 100 } }
-- The Good Snuff: 'The Good Snuff' (Interaction)
pfDB["items"]["data-turtle"][60597] = { ["U"] = { [8139] = 100 } }
-- Reports of Dustwallow: Sentry Point Report & North Point Report (Interaction)
pfDB["items"]["data-turtle"][60602] = { ["U"] = { [60729] = 100 } }
pfDB["items"]["data-turtle"][60603] = { ["U"] = { [60730] = 100 } }
-- Report from Burnside: Report from Burnside (Interaction)
pfDB["items"]["data-turtle"][60635] = { ["U"] = { [60792] = 100 } }
-- Fel Energy Irregularities I: Engineer Wigglestip's Report (Interaction)
pfDB["items"]["data-turtle"][60640] = { ["U"] = { [60794] = 100 } }
-- To Purchase Secret Information: Arcane Golem Core Information (Interaction)
pfDB["items"]["data-turtle"][60670] = { ["U"] = { [8139] = 100 } }
-- Preparation for Divination: Arcane Resonator (Interaction)
pfDB["items"]["data-turtle"][60815] = { ["U"] = { [2543] = 100 } }
-- Apple a Day: Healing Balm (Interaction)
pfDB["items"]["data-turtle"][80865] = { ["U"] = { [8090] = 100 } }
end
do -- units/npcs
-- AQ Commendation NPCs
pfDB["units"]["data-turtle"][15761] = { }
pfDB["units"]["data-turtle"][15762] = { }
pfDB["units"]["data-turtle"][15763] = { }
pfDB["units"]["data-turtle"][15764] = { }
pfDB["units"]["data-turtle"][15765] = { }
pfDB["units"]["data-turtle"][15766] = { }
pfDB["units"]["data-turtle"][15767] = { }
pfDB["units"]["data-turtle"][15768] = { }
-- Fara Boltbreaker: Horde only
pfDB["units"]["data-turtle"][50530]["fac"] = "H"
-- quest_40124_dummy_triger
pfDB["units"]["enUS-turtle"][60312] = "Spitelash Shrine"
pfDB["units"]["data-turtle"][60312]["coords"] = { [1] = { 48.8, 55.2, 16, 333 } }
-- Kex Blowmaster: Horde only
pfDB["units"]["data-turtle"][60443]["fac"] = "H"
-- Technician Steelbolt: Horde only
pfDB["units"]["data-turtle"][60960]["fac"] = "H"
-- Head Technician Klazfit: Horde only
pfDB["units"]["data-turtle"][60961]["fac"] = "H"
-- Fusemaster Blammo: Horde only
pfDB["units"]["data-turtle"][60962]["fac"] = "H"
-- Gig Xevno: Horde only
pfDB["units"]["data-turtle"][60967]["fac"] = "H"
-- Security Officer Mort Tozzlefume: Horde only
pfDB["units"]["data-turtle"][60970]["fac"] = "H"
-- Senior Foreman Nazz Firecracker: Horde only
pfDB["units"]["data-turtle"][61024]["fac"] = "H"
-- Alleana Moonfeather (Ashenvale), coords missing
pfDB["units"]["data-turtle"][61292]["coords"] = { [1] = { 85, 43.5, 331, 280 } }
-- Pezzik Villamar: Horde only
pfDB["units"]["data-turtle"][70060]["fac"] = "H"
-- Nert Blastentom (Razor Hill): Horde only
pfDB["units"]["data-turtle"][80121]["fac"] = "H"
-- Grand Taskmaster Nert Blastentom (Sparkwater Port): Horde only
pfDB["units"]["data-turtle"][80178]["fac"] = "H"
-- Quest 80261 Custom Objective
pfDB["units"]["enUS-turtle"][80270] = "Search Mage Tower"
pfDB["units"]["data-turtle"][80270]["coords"] = { [1] = { 48.7, 87.4, 1519, 30 } }
-- Quest 80261 Custom Objective
pfDB["units"]["enUS-turtle"][80271] = "Search Mage District"
pfDB["units"]["data-turtle"][80271]["coords"] = { [1] = { 50.4, 86.5, 1519, 30 } }
-- Quest 80261 Custom Objective
pfDB["units"]["enUS-turtle"][80272] = "Search Mage District Tavern"
pfDB["units"]["data-turtle"][80272]["coords"] = { [1] = { 41.7, 82.6, 1519, 30 } }
-- Quest 80261 Custom Objective
pfDB["units"]["enUS-turtle"][80273] = "Search Mage District Tavern Basement"
pfDB["units"]["data-turtle"][80273]["coords"] = { [1] = { 39.5, 84.8, 1519, 30 } }
-- Quest 80261 Custom Objective
pfDB["units"]["enUS-turtle"][80274] = "Search Stormwind Park"
pfDB["units"]["data-turtle"][80274]["coords"] = { [1] = { 36.5, 67.4, 1519, 30 } }
-- Quest 80261 Custom Objective
pfDB["units"]["enUS-turtle"][80275] = "Search Dwarven District"
pfDB["units"]["data-turtle"][80275]["coords"] = { [1] = { 64.6, 38.3, 1519, 30 } }
-- Quest 80261 Custom Objective
pfDB["units"]["enUS-turtle"][80276] = "Search Dwarf District Embassy"
pfDB["units"]["data-turtle"][80276]["coords"] = { [1] = { 65.4, 29.6, 1519, 30 } }
-- Quest 80261 Custom Objective
pfDB["units"]["enUS-turtle"][80277] = "Search Little Silvermoon"
pfDB["units"]["data-turtle"][80277]["coords"] = { [1] = { 64.1, 46.8, 1519, 30 } }
-- Quest 80261 Custom Objective
pfDB["units"]["enUS-turtle"][80278] = "Search Deeprun Tram Entrance"
pfDB["units"]["data-turtle"][80278]["coords"] = { [1] = { 66.3, 34.3, 1519, 30 } }
-- Quest 80261 Custom Objective
pfDB["units"]["enUS-turtle"][80279] = "Search Stormwind Keep"
pfDB["units"]["data-turtle"][80279]["coords"] = { [1] = { 74.3, 46.3, 1519, 30 } }
-- Quest 80261 Custom Objective
pfDB["units"]["enUS-turtle"][80280] = "Search Old Town"
pfDB["units"]["data-turtle"][80280]["coords"] = { [1] = { 75.6, 61.9, 1519, 30 } }
-- Quest 80261 Custom Objective
pfDB["units"]["enUS-turtle"][80281] = "Search Old Town Tavern"
pfDB["units"]["data-turtle"][80281]["coords"] = { [1] = { 76.1, 54.2, 1519, 30 } }
-- Quest 80261 Custom Objective
pfDB["units"]["enUS-turtle"][80282] = "Search Old Town Barracks"
pfDB["units"]["data-turtle"][80282]["coords"] = { [1] = { 77.6, 66.2, 1519, 30 } }
-- Quest 80261 Custom Objective
pfDB["units"]["enUS-turtle"][80283] = "Search Cathedral Square"
pfDB["units"]["data-turtle"][80283]["coords"] = { [1] = { 55.5, 56.6, 1519, 30 } }
-- Quest 80261 Custom Objective
pfDB["units"]["enUS-turtle"][80284] = "Search Orphanage"
pfDB["units"]["data-turtle"][80284]["coords"] = { [1] = { 56.4, 53.2, 1519, 30 } }
-- Quest 80261 Custom Objective
pfDB["units"]["enUS-turtle"][80285] = "Search Cathedral"
pfDB["units"]["data-turtle"][80285]["coords"] = { [1] = { 51.1, 47.7, 1519, 30 } }
-- Quest 80261 Custom Objective
pfDB["units"]["enUS-turtle"][80286] = "Search Cathedral Basement"
pfDB["units"]["data-turtle"][80286]["coords"] = { [1] = { 52.5, 43.5, 1519, 30 } }
-- Quest 80261 Custom Objective
pfDB["units"]["enUS-turtle"][80287] = "Search Cathedral Catacombs"
pfDB["units"]["data-turtle"][80287]["coords"] = { [1] = { 52.9, 44.8, 1519, 30 } }
-- Quest 80261 Custom Objective
pfDB["units"]["enUS-turtle"][80288] = "Search Trade District"
pfDB["units"]["data-turtle"][80288]["coords"] = { [1] = { 62.5, 72.8, 1519, 30 } }
-- Quest 80261 Custom Objective
pfDB["units"]["enUS-turtle"][80289] = "Search Stormwind Visitor Center"
pfDB["units"]["data-turtle"][80289]["coords"] = { [1] = { 64, 77.3, 1519, 30 } }
-- Volz'draza: Horde only
pfDB["units"]["data-turtle"][80799]["fac"] = "H"
-- Miley Wildbit: Horde only
pfDB["units"]["data-turtle"][80902]["fac"] = "H"
-- Drazzit Dripvalve: Horde only
pfDB["units"]["data-turtle"][80932]["fac"] = "H"
-- Vanessa Clang: Horde only
pfDB["units"]["data-turtle"][80961]["fac"] = "H"
-- Moxie Steelgrille: Horde only
pfDB["units"]["data-turtle"][81250]["fac"] = "H"
-- Vixie Dampknob: Horde only
pfDB["units"]["data-turtle"][81258]["fac"] = "H"
-- Qik Peddlechin: Horde only
pfDB["units"]["data-turtle"][81259]["fac"] = "H"
-- Wrix Ozzlenut: Horde only
pfDB["units"]["data-turtle"][91200]["fac"] = "H"
-- Oilworker Razlik: Horde only
pfDB["units"]["data-turtle"][91208]["fac"] = "H"
-- Oil Manager Tizzleflux: Horde only
pfDB["units"]["data-turtle"][91213]["fac"] = "H"
-- Technician Spuzzle: Horde only
pfDB["units"]["data-turtle"][91214]["fac"] = "H"
-- Krez the Wise: Horde only
pfDB["units"]["data-turtle"][91232]["fac"] = "H"
-- Technician Grimzlow: Horde only
pfDB["units"]["data-turtle"][91234]["fac"] = "H"
-- Tradesman Laz: Horde only
pfDB["units"]["data-turtle"][91237]["fac"] = "H"
-- Pazzle Brightwrench: Horde only
pfDB["units"]["data-turtle"][91259]["fac"] = "H"
-- Shak 'The Hack': Horde only
pfDB["units"]["data-turtle"][91260]["fac"] = "H"
-- Big Fraggle: Horde only
pfDB["units"]["data-turtle"][91274]["fac"] = "H"
-- Tarlo Farcrack: Horde only
pfDB["units"]["data-turtle"][91292]["fac"] = "H"
-- Watch Sergeant Arthur: Moved from Deadwind Pass -> Swamp of Sorrows
pfDB["units"]["data-turtle"][92012]["coords"] = { [1] = { 1.9, 52.8, 8, 25 } }
-- Watchman Damion: Moved from Deadwind Pass -> Swamp of Sorrows
pfDB["units"]["data-turtle"][92014]["coords"] = { [1] = { 1.6, 50.8, 8, 25 } }
-- Watch Paladin Janathos: Moved from Deadwind Pass -> Swamp of Sorrows
pfDB["units"]["data-turtle"][92017]["coords"] = { [1] = { 2.4, 50.6, 8, 25 } }
-- Sir Areyntall: Moved from Deadwind Pass -> Swamp of Sorrows
pfDB["units"]["data-turtle"][92018]["coords"] = { [1] = { 1.6, 50.3, 8, 25 } }
-- Janet Hollowworth: Moved from Deadwind Pass -> Swamp of Sorrows
pfDB["units"]["data-turtle"][92019]["coords"] = { [1] = { 0.9, 49.4, 8, 25 } }
-- Howard Gray: Moved from Deadwind Pass -> Swamp of Sorrows
pfDB["units"]["data-turtle"][92020]["coords"] = { [1] = { 1.5, 50, 8, 25 } }
-- Lucas: Moved from Deadwind Pass -> Swamp of Sorrows
pfDB["units"]["data-turtle"][92021]["coords"] = { [1] = { 2, 52, 8, 25 } }
-- 'Sly' Duncan: Moved from Deadwind Pass -> Swamp of Sorrows
pfDB["units"]["data-turtle"][92022]["coords"] = { [1] = { 3.7, 49.7, 8, 25 } }
-- Quartermaster Davin: Moved from Deadwind Pass -> Swamp of Sorrows
pfDB["units"]["data-turtle"][92023]["coords"] = { [1] = { 3.5, 50.6, 8, 25 } }
-- Flaz Fusemix: Horde only
pfDB["units"]["data-turtle"][92187]["fac"] = "H"
-- Yeggle Powderscrew: Horde only
pfDB["units"]["data-turtle"][92188]["fac"] = "H"
-- Blazno Blastpipe: Horde only
pfDB["units"]["data-turtle"][92192]["fac"] = "H"
-- Joachim Brenlow (Stormwind)
pfDB["units"]["data-turtle"][1311] = {
["coords"] = {
[1] = { 51.4, 94.1, 1519, 310 },
},
["fac"] = "A",
["lvl"] = "30",
}
-- Angus Stern (Stormwind)
pfDB["units"]["data-turtle"][1141] = {
["coords"] = {
[1] = { 51.8, 93.6, 1519, 30 },
},
["fac"] = "A",
["lvl"] = "60",
}
-- Highlord Bolvar Fordragon (Stormwind)
pfDB["units"]["data-turtle"][1748] = {
["coords"] = {
[1] = { 80.2, 38.3, 1519, 30 },
},
["fac"] = "A",
["lvl"] = "63",
}
-- Lady Katrana Prestor (Stormwind)
pfDB["units"]["data-turtle"][1749] = {
["coords"] = {
[1] = { 80.1, 38.2, 1519, 30 },
},
["fac"] = "A",
["lvl"] = "62",
}
-- Duthorian Rall (Stormwind)
pfDB["units"]["data-turtle"][6171]["coords"] = { [1] = { 50.5, 47.5, 1519, 30 } }
-- Barltok Kettleburn (Dun Agrath)
pfDB["units"]["data-turtle"][52068]["coords"] = { [1] = { 21, 71.4, 11, 120 } }
end
do -- quests
-- Great Bear Spirit: Great Bear Spirit
pfDB["quests"]["data-turtle"][5929]["obj"] = { ["U"] = { 11956 } }
pfDB["quests"]["data-turtle"][5930]["obj"] = { ["U"] = { 11956 } }
-- Horde Defender's Axe: Stolen Weapon Plans
pfDB["quests"]["data-turtle"][39995]["obj"]["O"] = { 300531 }
-- Horde Defender's Axe: Human Tombstone
pfDB["quests"]["data-turtle"][39998]["obj"]["O"] = { 300532 }
-- Interfering Naga: quest_40124_dummy_triger (Spitelash Shrine)
pfDB["quests"]["data-turtle"][40124]["obj"]["U"] = { 6195, 60312 }
-- The Way-Stones of Old: Way-Stone of Eldarath
pfDB["quests"]["data-turtle"][40252]["end"] = { ["O"] = { 2010849 } }
-- Restoring the Ley Lines: Way-Stone of Eldarath
pfDB["quests"]["data-turtle"][40253]["end"] = { ["O"] = { 2010849 } }
-- Restoring the Ley Lines: Ashan Stone
pfDB["quests"]["data-turtle"][40253]["obj"] = { ["O"] = { 2010851 } }
-- Keeping Secrets: Way-Stone of Eldarath
pfDB["quests"]["data-turtle"][40254]["start"] = { ["O"] = { 2010849 } }
pfDB["quests"]["data-turtle"][40254]["end"] = { ["O"] = { 2010849 } }
-- Breaking the Felstar: Corrupted Felstone
pfDB["quests"]["data-turtle"][40377]["obj"]["O"] = { 2010883 }
-- Sacred Waters of Eldre'thalas: Bowl of Sacred Water
pfDB["quests"]["data-turtle"][40382]["obj"] = { ["O"] = { 2010815 } }
-- Investigating Hateforge: Fake Area Trigger
pfDB["quests"]["data-turtle"][40486]["obj"] = { ["A"] = { 40486 } }
-- Family Above All: Abandoned Murloc Hut & Abandoned Murloc Nest
pfDB["quests"]["data-turtle"][40541]["obj"] = { ["O"] = { 2010918, 2010919 } }
-- The Shield's Owner: Private Talmand, Private Sleightor, Private Valnor (Interaction with no item given)
pfDB["quests"]["data-turtle"][40554]["obj"] = { ["U"] = { 60949, 60950, 60951 } }
-- Sleepwalking at Day: Bert Mano (Interaction with no item given)
pfDB["quests"]["data-turtle"][40567]["obj"] = { ["U"] = { 52017 } }
-- The Redbrand Archive: The Redbrand Archive
pfDB["quests"]["data-turtle"][40605]["obj"] = { ["O"] = { 2010929 } }
-- Controlling Sailors: Sailor Hylreth, Sailor Brewen, Sailor Pardol (Interaction with no item given)
pfDB["quests"]["data-turtle"][40660]["obj"] = { ["U"] = { 61013, 61015, 61016 } }
-- A Journey for Vengeance: Grumnir Battlebeard (Interaction with no item given)
pfDB["quests"]["data-turtle"][40691]["obj"] = { ["U"] = { 60993 } }
-- Conflicting Questions: Faldan Moonshatter (Interaction with no item given)
pfDB["quests"]["data-turtle"][40698]["obj"] = { ["U"] = { 60471 } }
-- The Land of Kings: Gong of Corthan
pfDB["quests"]["data-turtle"][40713]["obj"] = { ["O"] = { 2010946 } }
-- The Missing Friend!: Nibu (Interaction with no item given)
pfDB["quests"]["data-turtle"][40771]["obj"] = { ["U"] = { 61157 } }
-- Words of Wisdom: Teloren, Baritanas Skyriver, Daelyshia, Vesprystus (Interaction with no item given)
pfDB["quests"]["data-turtle"][40799]["obj"] = { ["U"] = { 4407, 6706, 4267, 3838 } }
-- The Family Name: Sharptalon (Interaction with no item given)
pfDB["quests"]["data-turtle"][40800]["obj"] = { ["U"] = { 12676 } }
-- Patience is the Key: Brolthan Ironglade (Interaction with no item given)
pfDB["quests"]["data-turtle"][40801]["obj"] = { ["U"] = { 61147 } }
-- Pressure is the Key: Commander Starwind (Interaction with no item given)
pfDB["quests"]["data-turtle"][40807]["obj"] = { ["U"] = { 61143 } }
-- WANTED: Shazknock!: end unit is Horde only
pfDB["quests"]["data-turtle"][55049]["race"] = 434
-- Lucky Coin: Use Teresa's Copper Coin (51425) at this object location
pfDB["quests"]["data-turtle"][60050]["obj"] = { ["O"] = { 1000220 } }
-- Gathering Intel: Fake Area Trigger
pfDB["quests"]["data-turtle"][80204]["obj"] = { ["A"] = { 80204 } }
-- Slaking Their Thirst: Well
pfDB["quests"]["data-turtle"][80205]["obj"] = { ["O"] = { 3000202 } }
-- Dark Iron Scrapping: Shadowforge Cage
pfDB["quests"]["data-turtle"][80207]["obj"]["O"] = { 3000203 }
-- Sunblade Reunion: Malvinah Sunblade (Interaction with no item given)
pfDB["quests"]["data-turtle"][80208]["obj"] = { ["U"] = { 80200 } }
-- Porting to Goldshire: Magistrix Ishalah (Interaction with no item given)
pfDB["quests"]["data-turtle"][80209]["obj"]["U"] = { 80213 }
-- Porting to Goldshire: Portal to Goldshire
pfDB["quests"]["data-turtle"][80209]["obj"]["O"] = { 3000204 }
-- Assisting the Children of the Sun: Caledra Dawnbreeze (Interaction with no item given)
pfDB["quests"]["data-turtle"][80250]["obj"] = { ["U"] = { 1752 } }
-- Teslinah's Search I: Stand at these units
pfDB["quests"]["data-turtle"][80261]["obj"] = { ["U"] = { 80270, 80271, 80272, 80273 } }
-- Teslinah's Search II: Stand at these units
pfDB["quests"]["data-turtle"][80262]["obj"] = { ["U"] = { 80274, 80275, 80276, 80277 } }
-- Teslinah's Search III: Stand at these units
pfDB["quests"]["data-turtle"][80263]["obj"] = { ["U"] = { 80278, 80279, 80280, 80281 } }
-- Teslinah's Search IV: Stand at these units
pfDB["quests"]["data-turtle"][80264]["obj"] = { ["U"] = { 80282, 80283, 80284, 80285 } }
-- Teslinah's Search V: Stand at these units
pfDB["quests"]["data-turtle"][80265]["obj"] = { ["U"] = { 80286, 80287, 80288, 80289 } }
-- The Lost Tablets: Ancient Thalassian Tablet
pfDB["quests"]["data-turtle"][80290]["obj"] = { ["O"] = { 181583 } }
-- The Shadow Well: Thalo's Skeleton
pfDB["quests"]["data-turtle"][80291]["obj"] = { ["O"] = { 181584 } }
-- VIP Invites: Interactions with no item given
pfDB["quests"]["data-turtle"][80392]["obj"] = { ["U"] = { 3391, 2496 } }
-- A Glittering Opportunity: Mysterious Glittering Object (The Barrens)
pfDB["quests"]["data-turtle"][80395]["obj"] = { ["O"] = { 3000284 } }
pfDB["quests"]["data-turtle"][80395]["end"] = { ["O"] = { 3000284 } }
-- A Bloody Good Deed: Mysterious Glittering Object (The Barrens)
pfDB["quests"]["data-turtle"][80396]["start"] = { ["O"] = { 3000284 } }
pfDB["quests"]["data-turtle"][80396]["end"] = { ["O"] = { 3000284 } }
-- A Letter From a Friend: Mysterious Glittering Object (Tanaris)
pfDB["quests"]["data-turtle"][80407]["end"] = { ["O"] = { 3000246 } }
-- A Slaughter for Brains: Mysterious Glittering Object (Tanaris)
pfDB["quests"]["data-turtle"][80408]["start"] = { ["O"] = { 3000246 } }
-- Return to Kheyna: Mysterious Glittering Object (Tanaris)
pfDB["quests"]["data-turtle"][80409]["end"] = { ["O"] = { 3000246 } }
end
-- ==== corrections from the TurtleWoW pack ====
do -- zones
-- Several zone IDs share a name with a functional zone but have no NPC or
-- object coordinate references, making them phantoms. GetMapIDByName scans
-- the locale table with pairs() (non-deterministic order), so it may return
-- a phantom ID instead of the functional one, causing quests and minimap
-- nodes to not appear inside those dungeons.
--
-- TurtleWoW-specific phantom -> Functional mappings:
-- 5600 "Dragonmaw Retreat" -> 5601 (has minimap + units)
-- 5098 "Hateforge Quarry" -> 5103 (has minimap + units)
-- 5550 "Ruins of Grim Batol"-> 5639 (has units)
--
-- Vanilla dungeon zone IDs that still hold all NPC/object data (verified
-- via coordinate references in units-turtle.lua and objects-turtle.lua):
-- 209 "Shadowfang Keep" (181 NPC refs, 35 object refs)
-- 1581 "The Deadmines"
-- 1583 "Blackrock Spire"
-- 1584 "Blackrock Depths" (1085 NPC refs, 462 object refs)
-- The 5000+ IDs below share those names but have zero NPC/object refs.
-- They are removed so GetMapIDByName resolves to the IDs with real content.
--
-- Vanilla ID -> Phantom replacement(s):
-- 209 "Shadowfang Keep" -> 5132, 5150, 5161, 5169, 5173, 5177
-- 1581 "The Deadmines" -> 5138
-- 1583 "Blackrock Spire" -> 5139, 5155, 5164, 5170, 5178
-- 1584 "Blackrock Depths"-> 5140
local phantom_zones = {
5600, 5098, 5550,
5132, 5138, 5139, 5140, 5150, 5161,
5155, 5164, 5169, 5170, 5173, 5177, 5178,
}
local zone_locales = { "enUS", "deDE", "esES", "ptBR", "zhCN" }
for _, locale in pairs(zone_locales) do
local tbl = pfDB["zones"][locale .. "-turtle"]
if tbl then
for _, zid in pairs(phantom_zones) do
tbl[zid] = nil
end
end
end
end
do -- area trigger
end
do -- items
end
do -- quests
-- Add "Dark Iron Gunpowder Keg" to objectives of "Vile Dwarven Pigs"
-- The extractor scripts did not catch those, as the objetive is filled via a Gossip on use.
pfDB["quests"]["data-turtle"][41682]["obj"]["O"] = { 2020173 }
-- Add "Head of Geshgan" to the loot table of "Geshgan"
-- This can be removed by the next database export
pfDB["items"]["data-turtle"][41783]["U"] = { [62217] = 1.0 }
end
-- Set last. A top-level error anywhere above stops this file, so if this
-- flag is missing the overwrites did not all apply -- that failure mode
-- cost 166 silently dropped corrections before 1.0.2. patchtable.lua
-- reports it.
pfDB["octo-overwrites-complete"] = true