Skip to content

quest_template

Contains all basic definitions of available quests.

Structure ​

FieldTypeAttributesKeyNullDefaultExtraComment
IDintunsignedPRINO0
QuestTypetinyintunsignedNO2
QuestLevelsmallintsignedNO1
MinLeveltinyintunsignedNO0
QuestSortIDsmallintsignedNO0
QuestInfoIDsmallintunsignedNO0
SuggestedGroupNumtinyintunsignedNO0
RequiredFactionId1smallintunsignedNO0
RequiredFactionId2smallintunsignedNO0
RequiredFactionValue1intsignedNO0
RequiredFactionValue2intsignedNO0
RewardNextQuestintunsignedNO0
RewardXPDifficultytinyintunsignedNO0
RewardMoneyintsignedNO0
RewardBonusMoneyintunsignedNO0
RewardDisplaySpellintunsignedNO0
RewardSpellintsignedNO0
RewardHonorintsignedNO0
RewardKillHonorfloatNO0
StartItemintunsignedNO0
FlagsintunsignedNO0
RequiredPlayerKillstinyintunsignedNO0
RewardItem1intunsignedNO0
RewardAmount1smallintunsignedNO0
RewardItem2intunsignedNO0
RewardAmount2smallintunsignedNO0
RewardItem3intunsignedNO0
RewardAmount3smallintunsignedNO0
RewardItem4intunsignedNO0
RewardAmount4smallintunsignedNO0
ItemDrop1intunsignedNO0
ItemDropQuantity1smallintunsignedNO0
ItemDrop2intunsignedNO0
ItemDropQuantity2smallintunsignedNO0
ItemDrop3intunsignedNO0
ItemDropQuantity3smallintunsignedNO0
ItemDrop4intunsignedNO0
ItemDropQuantity4smallintunsignedNO0
RewardChoiceItemID1intunsignedNO0
RewardChoiceItemQuantity1smallintunsignedNO0
RewardChoiceItemID2intunsignedNO0
RewardChoiceItemQuantity2smallintunsignedNO0
RewardChoiceItemID3intunsignedNO0
RewardChoiceItemQuantity3smallintunsignedNO0
RewardChoiceItemID4intunsignedNO0
RewardChoiceItemQuantity4smallintunsignedNO0
RewardChoiceItemID5intunsignedNO0
RewardChoiceItemQuantity5smallintunsignedNO0
RewardChoiceItemID6intunsignedNO0
RewardChoiceItemQuantity6smallintunsignedNO0
POIContinentsmallintunsignedNO0
POIxfloatNO0
POIyfloatNO0
POIPriorityintunsignedNO0
RewardTitletinyintunsignedNO0
RewardTalentstinyintunsignedNO0
RewardArenaPointssmallintunsignedNO0
RewardFactionID1smallintunsignedNO0Faction ID
RewardFactionValue1intsignedNO0
RewardFactionOverride1intsignedNO0
RewardFactionID2smallintunsignedNO0Faction ID
RewardFactionValue2intsignedNO0
RewardFactionOverride2intsignedNO0
RewardFactionID3smallintunsignedNO0Faction ID
RewardFactionValue3intsignedNO0
RewardFactionOverride3intsignedNO0
RewardFactionID4smallintunsignedNO0Faction ID
RewardFactionValue4intsignedNO0
RewardFactionOverride4intsignedNO0
RewardFactionID5smallintunsignedNO0Faction ID
RewardFactionValue5intsignedNO0
RewardFactionOverride5intsignedNO0
RewardFactionFlagsintunsignedNO0
TimeAllowedintunsignedNO0
AllowableRacesintunsignedNO0
LogTitlemediumtextYESNULL
LogDescriptionmediumtextYESNULL
QuestDescriptionmediumtextYESNULL
AreaDescriptionmediumtextYESNULL
QuestCompletionLogmediumtextYESNULL
RequiredNpcOrGo1intsignedNO0
RequiredNpcOrGo2intsignedNO0
RequiredNpcOrGo3intsignedNO0
RequiredNpcOrGo4intsignedNO0
RequiredNpcOrGoCount1smallintunsignedNO0
RequiredNpcOrGoCount2smallintunsignedNO0
RequiredNpcOrGoCount3smallintunsignedNO0
RequiredNpcOrGoCount4smallintunsignedNO0
RequiredItemId1intunsignedNO0
RequiredItemId2intunsignedNO0
RequiredItemId3intunsignedNO0
RequiredItemId4intunsignedNO0
RequiredItemId5intunsignedNO0
RequiredItemId6intunsignedNO0
RequiredItemCount1smallintunsignedNO0
RequiredItemCount2smallintunsignedNO0
RequiredItemCount3smallintunsignedNO0
RequiredItemCount4smallintunsignedNO0
RequiredItemCount5smallintunsignedNO0
RequiredItemCount6smallintunsignedNO0
ObjectiveText1mediumtextYESNULL
ObjectiveText2mediumtextYESNULL
ObjectiveText3mediumtextYESNULL
ObjectiveText4mediumtextYESNULL
VerifiedBuildintsignedYESNULL
 

Description of fields ​

ID ​

The quest ID. This column is the Primary Key for the Table. Each quest ID must be unique!  

QuestType ​

  • 0: Quest is enabled, but it is auto-completed when accepted; this skips quest objectives and quest details.
  • 1: Quest is disabled (not yet implemented in the core).
  • 2: Quest is enabled (does not auto-complete).
  • 3: Quest is a World Quest.  

QuestLevel ​

Level of quest. Player receives full experience amount only if their level is less than or equal to Level+5. If Level is set to -1, the player's level will be used as (Quest)Level for the experience calculation.  

MinLevel ​

Minimum level at which a player can get the quest.  

QuestSortID ​

This field defines under what category the quest falls in the quest log.

  • QuestSortID > 0: positive AreaTable ID
  • QuestSortID < 0: negative QuestSort ID (in general profession, class or holiday quests)

QuestSort excerpt:

IDNameIDName
22Seasonal261Hunter
24Herbalism262Priest
25Battlegrounds263Druid
41Day of the Dead264Tailoring
61Warlock304Cooking
81Warrior324First Aid
82Shaman364Darkmoon Faire
101Fishing366Lunar Festival
121Blacksmithing369Midsummer
141Paladin370Brewfest
161Mage371Inscription
162Rogue372Death Knight
181Alchemy373Jewelcrafting
182Leatherworking374Noblegarden
201Engineering375Pilgrim's Bounty
241Tournament376Love is in the Air

 

QuestInfoID ​

QuestInfo ID

IDName
1Group
21Life
41PvP
62Raid
81Dungeon
82World Event
83Legendary
84Escort
85Heroic
88Raid (10)
89Raid (25)

 

SuggestedGroupNum ​

Recommended number of players to do the quest together.  

RequiredFactionId[1-2] ​

Faction ID for an objective to achieve a certain reputation value with.  

RequiredFactionValue[1-2] ​

Reputation value that the player must achieve with the faction in RequiredFactionId as part of the quest objectives. Example Values:

ValueDescription
-6001Hated
3000Friendly
9000Honored
21000Revered
42000Exalted

 

RewardNextQuest ​

ID of the next quest in a chain. The result is, that if you end the quest, the new quest instantly appears from the quest giver.  

RewardXPDifficulty ​

references QuestXP Difficulty The amount of XP is determined by the QuestLevel (row) and RewardXPDifficulty (column) when reading from QuestXP table.

If the quest is repeatable, XP will be given only once. The total XP that a character will receive is also affected by the level difference between the character's level and the quest's level.  

RewardMoney ​

  • RewardMoney > 0: Money in copper earned by completing the quest.
  • RewardMoney < 0: Money in copper required to complete the quest.  

RewardBonusMoney ​

The money a character at level 80 would get when they complete this quest.  

RewardDisplaySpell ​

Spell that is shown to be casted on quest completion in the quest log. Note that this spell will NOT be casted if RewardSpell is non-zero. The spell in the other field will be casted instead, in which case the spell here only serves as the visual in the quest log.

Note: This field comes straight from the WDB and should not be changed.

 

RewardSpell ​

Spell that will always be casted at player when completing the quest. This can be a learn spell and player the learned some spell in result, or a buff spell for example. If this field is non-zero then this spell will ALWAYS be casted and the spell in RewardDisplaySpell will not.

Note: This field comes straight from the WDB and should not be changed.

 

RewardHonor ​

Number of honor points rewarded for completing this quest.  

RewardKillHonor ​

Number of honorable kill honor rewarded for completing this quest.

Example: An example value is 8 for For Great Honor. At level 80 an honorable kill is worth 124 honor. Multiply this with 8 and you receive 992 honor as reward.  

StartItem ​

Item entry given when accepting the quest. Item will be deleted when the quest is abandoned.  

Flags ​

enum QuestFlags

ValueFlagNameDescription
10x000001QUEST_FLAGS_STAY_ALIVENot used currently; If the player dies, the quest is failed.
20x000002QUEST_FLAGS_PARTY_ACCEPTNot used currently. If player in party, all players that can accept this quest will receive confirmation box to accept quest CMSG_QUEST_CONFIRM_ACCEPT/SMSG_QUEST_CONFIRM_ACCEPT
40x000004QUEST_FLAGS_EXPLORATIONNot used currently; Involves the activation of an areatrigger.
80x000008QUEST_FLAGS_SHARABLECan be shared: Player::CanShareQuest()
160x000010QUEST_FLAGS_HAS_CONDITIONNot used currently
320x000020QUEST_FLAGS_HIDE_REWARD_POINot used currently: Unsure of content
640x000040QUEST_FLAGS_RAIDCan be completed while in raid
1280x000080QUEST_FLAGS_TBCNot used currently: Available if TBC expansion enabled only
2560x000100QUEST_FLAGS_NO_MONEY_FROM_XPNot used currently: Experience is not converted to gold at max level
5120x000200QUEST_FLAGS_HIDDEN_REWARDSItem and monetary rewards are hidden in the initial quest details page and in the quest log but will appear once ready to be rewarded.
10240x000400QUEST_FLAGS_TRACKINGThese quests are automatically rewarded on quest complete and they will never appear in quest log client side.
20480x000800QUEST_FLAGS_DEPRECATE_REPUTATIONNot used currently
40960x001000QUEST_FLAGS_DAILYDaily repeatable quests
81920x002000QUEST_FLAGS_FLAGS_PVPHaving this quest in log forces PvP flag
163840x004000QUEST_FLAGS_UNAVAILABLEUsed on quests that are not generically available
327680x008000QUEST_FLAGS_WEEKLYWeekly repeatable quests
655360x010000QUEST_FLAGS_AUTOCOMPLETEauto complete
1310720x020000QUEST_FLAGS_DISPLAY_ITEM_IN_TRACKERDisplays usable item in quest tracker
2621440x040000QUEST_FLAGS_OBJ_TEXTuse Objective text as Complete text
5242880x080000QUEST_FLAGS_AUTO_ACCEPTThe client recognizes this flag as auto-accept. However, NONE of the current quests (3.3.5a) have this flag. Maybe blizz used to use it, or will use it in the future.

 

RequiredPlayerKills ​

Displays how much players you need to kill before completing the quest.  

RewardItem[1-4] ​

Item entry given as reward (no choice).  

RewardAmount[1-4] ​

The amount of items forced onto the player.  

ItemDrop[1-4] ​

Item entry that is needed indirectly by the quest. For example, the quests asks for item X but the only way to get item X is by activating item Y; however, item Y is also a quest item. Therefore you set item Y's entry in this field. This requirement will not appear in the quest text, it is just for the core to know when to drop a quest item that isn't in the RequiredItemId* field but is still needed by the quest.  

ItemDropQuantity[1-4] ​

The maximum number of copies of the item in ItemDrop* that can be picked up (and dropped by the core).  

RewardChoiceItemID[1-6] ​

The player has to pick one of RewardChoiceItemID* as a reward.  

RewardChoiceItemQuantity[1-6] ​

The amount of items to reward if if the correspondig RewardChoiceItemID* is selected.  

POIContinent ​

Map ID of a quest point of interest (POI - Point Of Interest). POI will be shown on the map when quest is active.  

POIx ​

X coordinate of quest POI.  

POIy ​

Y coordinate of quest POI.  

POIPriority ​

unknown / just sent to client  

RewardTitle ​

CharTitle ID to reward on completion.  

RewardTalents ​

An amount of talent points to reward on completion.  

RewardArenaPoints ​

An amount of arena points to reward on completion.  

RewardFactionID[1-5] ​

Faction ID for which the quest rewards reputation points.  

RewardFactionValue[1-5] ​

This field is used for reputation lookup in QuestFactionReward. The value X in this field indicates index of QuestFactionReward Difficulty.

IDRep0Rep1Rep2Rep3Rep4Rep5Rep6Rep7Rep8Rep9
1010257515025035050010005
20-10-25-75-150-250-350-500-1000-5

 

RewardFactionOverride[1-5] ​

This field is used to give reputation values not present in QuestFactionReward or to override them if RewardFactionValue* is wrong for some reason. The value in this field is 100× the intended reputation reward (if you want to give 400 rep, put 40000 in RewardFactionOverride*).  

RewardFactionFlags ​

RewardReputationMask. Just sent to client.  

TimeAllowed ​

Time in seconds that the player has to complete this quest.  

AllowableRaces ​

Race mask of ChrRace IDs allowed to get the quest. 0 means the quest is accessible for all races.

ValueFlagNameValueFlagName
10x0001Human20x0002Orc
40x0004Dwarf160x0010Undead
80x0008Night Elf320x0020Tauren
640x0040Gnome1280x0080Troll
10240x0400Draenei5120x0200Blood Elf
11010x044DAlliance6900x02B2Horde

 

LogTitle ​

Title of the quest.  

LogDescription ​

Short description of quest objectives.  

QuestDescription ​

Fulltext quest description under heading: Description

You can use certain placeholders that will be filled in in-game:

  • $B: line break
  • $N: the players name
  • $R/$r: player race in upper case first/lower case
  • $C/$c: player class in upper case first/lower case
  • $Gmale:female[:reference];: male and female can be replaced with any synonym you want and one will be chosen depending on the reference. :reference is optional and can be r (the players race), c (the players class) or if omitted the players chosen gender.
  • $4022W: references a worldstate and will be replaced with it's current value. (here BATTLEFIELD_WG_WORLD_STATE_DEFENDED_H (4022) is chosen as an example)
  • $Tstring1:string2;: becomes the players PVP rank. (the provided strings are apparently ignored by the client)  

AreaDescription ​

Text for externally completed objective (e.g. area discovery)  

QuestCompletionLog ​

Objective text displayed after all other objectives are completed. Example: Return to <NPC> at <Location> in <Zone>.  

RequiredNpcOrGo[1-4] ​

  • RequiredNpcOrGo* > 0: The required creature entry the player needs to kill/cast on in order to complete the quest.
  • RequiredNpcOrGo* < 0: The required gameobject entry the player needs to cast on in order to complete the quest.

If SpecialFlags contains QUEST_SPECIAL_FLAGS_CAST (0x20), the objective is to cast on target, else kill.

Note: If QUEST_SPECIAL_FLAGS_CAST is set and the spell has effects Send Event or Quest Complete, this field may be left empty.

 

RequiredNpcOrGoCount[1-4] ​

The number of times the creature or gameobject must be killed or casted upon.  

RequiredItemId[1-6] ​

The item entry the player needs to collect to complete the quest.  

RequiredItemCount[1-6] ​

The amount of required items.  

ObjectiveText[1-4] ​

Used to define non-standard objective texts, that show up in the quest log. Example, "Heal fallen warrior" and the number gets added by Required*Count* values.  

VerifiedBuild ​

This field is used by the TrinityDB Team to determine whether a template has been verified from WDB files.

If value is 0 then it has not been parsed yet.

If value is above 0 then it has been parsed with WDB files from that specific client build.

If value is -1 then it is just a place holder until proper data are found on WDBs.

If value is -Client Build then it was parsed with WDB files from that specific client build and manually edited later for some special necessity.  

Examples ​

Always use PrevQuestID before using NextQuestID. NextQuestID is considered optional and to be used only when PrevQuestID is not sufficient.  

Basic quest ​

Single, stand-alone quest with no prerequisites

questA
sql
ID = questA        PrevQuestID = 0        NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = 0

 

Chain of quests ​

Player get quests in a strict chain that must be completed in a specific order.

.   questA
      |
    questB
      |
    questC
      |
    questD
sql
ID = questA   PrevQuestID = 0        NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = questB
ID = questB   PrevQuestID = questA   NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = questC
ID = questC   PrevQuestID = questB   NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = questD
ID = questD   PrevQuestID = questC   NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = 0

 

Chain of quests with multiple start quests ​

Player should only be allowed to complete one of three possible.

.   questA     questB    questC
      \           |         /
        ------ questD -----
                  |
               questE
sql
ID = questA   PrevQuestID = 0        NextQuestID = questD   ExclusiveGroup = questA   RewardNextQuest = questD
ID = questB   PrevQuestID = 0        NextQuestID = questD   ExclusiveGroup = questA   RewardNextQuest = questD
ID = questC   PrevQuestID = 0        NextQuestID = questD   ExclusiveGroup = questA   RewardNextQuest = questD
ID = questD   PrevQuestID = 0        NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = questE
ID = questE   PrevQuestID = questD   NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = 0

 

Chain of quests with multiple start quests ​

Player must complete all three initial quests before D becomes available.

.   questA     questB    questC
      \           |         /
        ------ questD -----
                  |
               questE
sql
ID = questA   PrevQuestID = 0        NextQuestID = questD   ExclusiveGroup = -questA  RewardNextQuest = questD
ID = questB   PrevQuestID = 0        NextQuestID = questD   ExclusiveGroup = -questA  RewardNextQuest = questD
ID = questC   PrevQuestID = 0        NextQuestID = questD   ExclusiveGroup = -questA  RewardNextQuest = questD
ID = questD   PrevQuestID = 0        NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = questE
ID = questE   PrevQuestID = questD   NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = 0

 

Quests with split and a child quest ​

Completing A unlocks B and C that can be done at the same time. They both need to be completed before D becomes available. X is needed to obtain item for C and this quest should only be available if C is active.

.               questA
              /        \
          questB     questC  -  questX
              \        /
                questD
sql
ID = questA   PrevQuestID = 0        NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = 0
ID = questB   PrevQuestID = questA   NextQuestID = questD   ExclusiveGroup = -questB  RewardNextQuest = 0
ID = questC   PrevQuestID = questA   NextQuestID = questD   ExclusiveGroup = -questB  RewardNextQuest = 0
ID = questX   PrevQuestID = -questC  NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = 0
ID = questD   PrevQuestID = 0        NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = 0

 

Multiple quest chains, leading to one final quest ​

Player may complete (not required to) X, but has to complete all three quest chains before final quest becomes available.

.                questX
                   |
     questA      questC      questE
       |           |            |
     questB      questD      questF
       \           |           /
         ------- questG ------
sql
ID = questX   PrevQuestID = 0        NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = questC
ID = questA   PrevQuestID = 0        NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = questB
ID = questB   PrevQuestID = questA   NextQuestID = questG   ExclusiveGroup = -questB  RewardNextQuest = 0
ID = questC   PrevQuestID = 0        NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = questD
ID = questD   PrevQuestID = questC   NextQuestID = questG   ExclusiveGroup = -questB  RewardNextQuest = 0
ID = questE   PrevQuestID = 0        NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = questF
ID = questF   PrevQuestID = questE   NextQuestID = questG   ExclusiveGroup = -questB  RewardNextQuest = 0

ID = questG   PrevQuestID = 0        NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = 0

 

Complicated ​

Player must first complete A, then B to unlock the chain from C to E. Three other quests (F, G, H) in a group will also be unlocked, those can be done at the same time. The three grouped quests must all be completed before I becomes available. Completion of E and I is required to obtain the final quest.

.                questA
                   |
                 questB
              /          \
           questC       questF
             |          questG
           questD       questH
             |            |
           questE       questI
             \           /
                 questJ
sql
ID = questA   PrevQuestID = 0        NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = questB
ID = questB   PrevQuestID = questA   NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = 0

ID = questC   PrevQuestID = questB   NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = questD
ID = questD   PrevQuestID = questC   NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = questE
ID = questE   PrevQuestID = questD   NextQuestID = questJ   ExclusiveGroup = -questE  RewardNextQuest = 0

ID = questF   PrevQuestID = questB   NextQuestID = questI   ExclusiveGroup = -questF  RewardNextQuest = 0
ID = questG   PrevQuestID = questB   NextQuestID = questI   ExclusiveGroup = -questF  RewardNextQuest = 0
ID = questH   PrevQuestID = questB   NextQuestID = questI   ExclusiveGroup = -questF  RewardNextQuest = 0

ID = questI   PrevQuestID = 0        NextQuestID = questJ   ExclusiveGroup = -questE  RewardNextQuest = 0

ID = questJ   PrevQuestID = 0        NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = 0

 

Impossible - many quests may unlock many ​

Player can choose between two alternative chains (Chain A or B, but not both chains). A2 or B2 should unlock C, D and E when complete. When all three complete, F should be unlocked. If player get A3 or B3 after complete F, depends on if chain A or B was chosen.

.                questA1             questB1
                    |                   |
                 questA2             questB2
                    \                  /
                     ----  questC  ----
                           questD
                           questE
                             |
                           questF
                         /        \
                     questA3     questB3
sql
ID = questA1  PrevQuestID = 0        NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = questA2
ID = questA2  PrevQuestID = questA1  NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = 0

ID = questB1  PrevQuestID = 0        NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = questB2
ID = questB2  PrevQuestID = questB1  NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = 0

ID = questC   PrevQuestID = 0        NextQuestID = questF   ExclusiveGroup = -questC  RewardNextQuest = 0
ID = questD   PrevQuestID = 0        NextQuestID = questF   ExclusiveGroup = -questC  RewardNextQuest = 0
ID = questE   PrevQuestID = 0        NextQuestID = questF   ExclusiveGroup = -questC  RewardNextQuest = 0

ID = questF   PrevQuestID = 0        NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = 0

ID = questA3  PrevQuestID = questF   NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = 0
ID = questB3  PrevQuestID = questF   NextQuestID = 0        ExclusiveGroup = 0        RewardNextQuest = 0

Note: If player can choose between chain A or B may be determined by faction status (aldor or scryer), using RequiredMinRepFaction = 1. Player should not be able to be neutral+1 with both at the same time. This may be the common threshold to obtain aldor or scryer quests (this is unsure). If that is the case, only the unlock of C, D and E after complete A2 or B2 is the impossible part.

Note: With the conditions now every quest chain is possible.