WoW:Questcache.wdb
Questcache.wdb is a file created by World of Warcraft to cache quest data retrieved from its game servers. This file is located in "World of Warcraft\Cache\WDB\enUS\", where enUS is your game locale.
Header[edit]
The header of the file is 24 bytes long. For more information check WDB file.
Structure[edit]
Note: All integers are stored as reversed numbers.
For example 0xC06D0000 ^= 0x00006DC0 ^= 26096
Strings are stored as normal text, but every stringends with a 0 byte.
The main struckture of questcache.wdb can split into 3 parts
1st the questid, stored in a 4 byte integer, 2nd the lenght of the questdata in byte, also a 4 byte integer, 3rd the questdata itself, lenght of the second filed
Questdata[edit]
The questdata has 130 fields, where most of the information are stored about the quest.
not completly filled yet
FieldNr | Name | Type/Lenght | Discription |
---|---|---|---|
1 | questid | integer/4 | uniqe quest id |
2 | quest type | integer/4 | function unknown, 2 values (0 + 2) |
3 | questlevel | integer/4 | the level of the quest |
4 | accept level | integer/4 | level the player needs to accept this quest |
5 | areaid/sortid | integer/4 | the areaid (worldmapid) |
6 | infoid | integer/4 | a link to questinfo.dbc |
7 | seggestedplayers | integer/4 | numof players recommend for this quest |
8 | faction1id | integer/4 | faction id |
9 | faction1amount | integer/4 | you need this rep-status to complete this quest (0 == neutral) |
10 | faction2id | integer/4 | faction id |
11 | faction2amount | integer/4 | you need this rep-status to complete this quest (0 == neutral) |
12 | nextquestid | integer/4 | the questid of the quest after completition this quest |
13 | expflag | integer/4 | flag from 0-8 see QuestXP.dbc for values |
14 | coins | integer/4 | the amount of (copper) coins player recieves when not at max level |
15 | coinsmaxlevel | integer/4 | the amount of (copper) coins player recieves when at maxlevel (dowsn't match exactly) |
16 | spell1 | integer/4 | id of a spell which is casted on/will reward the player |
17 | spell2 | integer/4 | id of a spell which is casted on/will reward the player |
18 | integer/4 | ||
19 | integer/4 | ||
20 | questitemid | integer/4 | uniqe id of a questitem, which is joined to this quest |
21 | questflags | bitmask/4 | flags of a quest |
22 | integer/4 | ||
23 | titleid | integer/4 | id of a title, which player recieves when finish the quest |
24 | killplayer | integer/4 | amount of players to kill for this quest |
25 | talentpoints | integer/4 | amount of talent points player recieves when complete this quest |
26 | integer/4 | ||
27 | professionid | integer/4 | id of an profession |
28 | professionamount | integer/4 | amount of points player recieves to profession at filed 27, when complete thisquest |
29 | integer/4 | ||
30 | integer/4 | ||
31 | integer/4 | ||
32 | rewarditem1 | integer/4 | item id of 1. item player recieves |
33 | rewarditem1amount | integer/4 | number of items |
34 | rewarditem2 | integer/4 | item id of 2. item player recieves |
35 | rewarditem2amount | integer/4 | number of items |
36 | rewarditem3 | integer/4 | item id of 3. item player recieves |
37 | rewarditem3amount | integer/4 | number of items |
38 | rewarditem4 | integer/4 | item id of 4. item player recieves |
39 | rewarditem4amount | integer/4 | number of items |
40 | chooseitem1 | integer/4 | item id of 1. item player can choose |
41 | chooseitem1amount | integer/4 | number of items |
42 | chooseitem2 | integer/4 | item id of 2. item player can choose |
43 | chooseitem2amount | integer/4 | number of items |
44 | chooseitem3 | integer/4 | item id of 3. item player can choose |
45 | chooseitem3amount | integer/4 | number of items |
46 | chooseitem4 | integer/4 | item id of 4. item player can choose |
47 | chooseitem4amount | integer/4 | number of items |
48 | chooseitem5 | integer/4 | item id of 5. item player can choose |
49 | chooseitem5amount | integer/4 | number of items |
50 | chooseitem6 | integer/4 | item id of 6. item player can choose |
51 | chooseitem6amount | integer/4 | number of items |
52 | faction1 | integer/4 | id of the faction, player recieves reputation |
53 | faction2 | integer/4 | id of the faction, player recieves reputation |
54 | faction3 | integer/4 | id of the faction, player recieves reputation |
55 | faction4 | integer/4 | id of the faction, player recieves reputation |
56 | faction5 | integer/4 | id of the faction, player recieves reputation |
57 | faction1amount | integer/4 | num of reputation player recieves (note: index from -9 to 9, values are (0 to 9) 0, 10, 25, 75, 150, 250, 350, 500, 1000, 5) |
58 | faction2amount | integer/4 | num of reputation player recieves |
59 | faction3amount | integer/4 | num of reputation player recieves |
60 | faction4amount | integer/4 | num of reputation player recieves |
61 | faction5amount | integer/4 | num of reputation player recieves |
62 | faction1absamount | integer/4 | absolute amount of points player recieve (value/10) |
63 | faction2absamount | integer/4 | absolute amount of points player recieve (value/10) |
64 | faction3absamount | integer/4 | absolute amount of points player recieve (value/10) |
65 | faction4absamount | integer/4 | absolute amount of points player recieve (value/10) |
66 | faction5absamount | integer/4 | absolute amount of points player recieve (value/10) |
67 | mapid | integer/4 | mapid of ingame map ( not worldmap id) |
68 | integer/4 | ||
69 | integer/4 | ||
70 | integer/4 | ||
71 | questname | string/flexible | the name of the quest |
72 | shortobjective | string/flexible | the short objective discription of this quest |
73 | questtext | string/flexible | the full quest text |
74 | objective event | string/flexible | objective text if quest is an event, otherwise empty |
75 | completetext | string/flexible | objective textwhen complete all objectives |
76 | objectivenpc1 | integer/4 | npcid to interact (kill/talk ...) |
77 | objectivenpc1Amount | integer/4 | number of interactions |
78 | questreagent1 | integer/4 | itemid of a reagent which is needed for this quest (not the to collected item) |
79 | questreagent1amount | integer/4 | max num of items that can be collected |
80 | objectivenpc2 | integer/4 | npcid to interact (kill/talk ...) |
81 | objectivenpc2Amount | integer/4 | number of interactions |
82 | questreagent2 | integer/4 | itemid of a reagent which is needed for this quest (not the to collected item) |
83 | questreagent2amount | integer/4 | max num of items that can be collected |
84 | objectivenpc3 | integer/4 | npcid to interact (kill/talk ...) |
85 | objectivenpc3Amount | integer/4 | number of interactions |
86 | questreagent3 | integer/4 | itemid of a reagent which is needed for this quest (not the to collected item) |
87 | questreagent3amount | integer/4 | max num of items that can be collected |
88 | objectivenpc4 | integer/4 | npcid to interact (kill/talk ...) |
89 | objectivenpc4Amount | integer/4 | number of interactions |
90 | questreagent4 | integer/4 | itemid of a reagent which is needed for this quest (not the to collected item) |
91 | questreagent4amount | integer/4 | max num of items that can be collected |
92 | collectItem1 | integer/4 | itemid for item to collect |
93 | collectItem1amount | integer/4 | number of items to collect |
94 | collectItem2 | integer/4 | itemid for item to collect |
95 | collectItem2amount | integer/4 | number of items to collect |
96 | collectItem3 | integer/4 | itemid for item to collect |
97 | collectItem3amount | integer/4 | number of items to collect |
98 | collectItem4 | integer/4 | itemid for item to collect |
99 | collectItem4amount | integer/4 | number of items to collect |
100 | collectItem5 | integer/4 | itemid for item to collect |
101 | collectItem5amount | integer/4 | number of items to collect |
102 | collectItem6 | integer/4 | itemid for item to collect |
103 | collectItem6amount | integer/4 | number of items to collect |
104 | unknown spellid | integer/4 | a spellid ( learn / use )? |
105 | objective1text | string/flexible | text for objective 1 |
106 | objective2text | string/flexible | text for objective 2 |
107 | objective3text | string/flexible | text for objective 3 |
108 | objective4text | string/flexible | text for objective 4 |
109 | rewardcurrency1 | integer/4 | |
110 | rewardcurrency1amount | integer/4 | |
111 | rewardcurrency2 | integer/4 | |
112 | rewardcurrency2amount | integer/4 | |
113 | rewardcurrency3 | integer/4 | |
114 | rewardcurrency3amount | integer/4 | |
115 | rewardcurrency4 | integer/4 | unsure for rewardcurrency 4-8, because they are evertime 0 |
116 | rewardcurrency4amount | integer/4 | |
117 | rewardcurrency5 | integer/4 | |
118 | rewardcurrency5amount | integer/4 | |
119 | rewardcurrency6 | integer/4 | |
120 | rewardcurrency6amount | integer/4 | |
121 | rewardcurrency7 | integer/4 | |
122 | rewardcurrency7amount | integer/4 | |
123 | rewardcurrency8 | integer/4 | |
124 | rewardcurrency8amount | integer/4 | |
125 | hinttext1 | string/flexible | a hint text about a npc |
126 | hintnpc1 | string/flexible | the npc for the hint text |
127 | hinttext2 | string/flexible | a hint text about a npc |
128 | hintnpc2 | string/flexible | the npc for the hint text |
129 | signature1? | integer/4 | |
130 | signature2? | integer/4 |
EOF[edit]
Questcache.wdb ends like all WDB files with 8 times \x00.