Table: quest_template
Contains all basic definitions of available quests.
Table Structure
| Field | Type | Attributes | Key | Null | Default | Extra | Comment |
|---|---|---|---|---|---|---|---|
| ID | INT | UNSIGNED | PRI | NO | 0 | ||
| QuestType | TINYINT | UNSIGNED | NO | 2 | |||
| QuestLevel | SMALLINT | NO | 1 | ||||
| MinLevel | TINYINT | UNSIGNED | NO | 0 | |||
| QuestSortID | SMALLINT | NO | 0 | ||||
| QuestInfoID | SMALLINT | UNSIGNED | NO | 0 | |||
| SuggestedGroupNum | TINYINT | UNSIGNED | NO | 0 | |||
| RequiredFactionId1 | SMALLINT | UNSIGNED | NO | 0 | |||
| RequiredFactionId2 | SMALLINT | UNSIGNED | NO | 0 | |||
| RequiredFactionValue1 | INT | NO | 0 | ||||
| RequiredFactionValue2 | INT | NO | 0 | ||||
| RewardNextQuest | INT | UNSIGNED | NO | 0 | |||
| RewardXPDifficulty | TINYINT | UNSIGNED | NO | 0 | |||
| RewardMoney | INT | NO | 0 | ||||
| RewardMoneyDifficulty | INT | UNSIGNED | NO | 0 | |||
| RewardDisplaySpell | INT | UNSIGNED | NO | 0 | |||
| RewardSpell | INT | NO | 0 | ||||
| RewardHonor | INT | NO | 0 | ||||
| RewardKillHonor | FLOAT | NO | 0 | ||||
| StartItem | INT | UNSIGNED | NO | 0 | |||
| Flags | INT | UNSIGNED | NO | 0 | |||
| RequiredPlayerKills | TINYINT | UNSIGNED | NO | 0 | |||
| RewardItem1 | INT | UNSIGNED | NO | 0 | |||
| RewardAmount1 | SMALLINT | UNSIGNED | NO | 0 | |||
| RewardItem2 | INT | UNSIGNED | NO | 0 | |||
| RewardAmount2 | SMALLINT | UNSIGNED | NO | 0 | |||
| RewardItem3 | INT | UNSIGNED | NO | 0 | |||
| RewardAmount3 | SMALLINT | UNSIGNED | NO | 0 | |||
| RewardItem4 | INT | UNSIGNED | NO | 0 | |||
| RewardAmount4 | SMALLINT | UNSIGNED | NO | 0 | |||
| ItemDrop1 | INT | UNSIGNED | NO | 0 | |||
| ItemDropQuantity1 | SMALLINT | UNSIGNED | NO | 0 | |||
| ItemDrop2 | INT | UNSIGNED | NO | 0 | |||
| ItemDropQuantity2 | SMALLINT | UNSIGNED | NO | 0 | |||
| ItemDrop3 | INT | UNSIGNED | NO | 0 | |||
| ItemDropQuantity3 | SMALLINT | UNSIGNED | NO | 0 | |||
| ItemDrop4 | INT | UNSIGNED | NO | 0 | |||
| ItemDropQuantity4 | SMALLINT | UNSIGNED | NO | 0 | |||
| RewardChoiceItemID1 | INT | UNSIGNED | NO | 0 | |||
| RewardChoiceItemQuantity1 | SMALLINT | UNSIGNED | NO | 0 | |||
| RewardChoiceItemID2 | INT | UNSIGNED | NO | 0 | |||
| RewardChoiceItemQuantity2 | SMALLINT | UNSIGNED | NO | 0 | |||
| RewardChoiceItemID3 | INT | UNSIGNED | NO | 0 | |||
| RewardChoiceItemQuantity3 | SMALLINT | UNSIGNED | NO | 0 | |||
| RewardChoiceItemID4 | INT | UNSIGNED | NO | 0 | |||
| RewardChoiceItemQuantity4 | SMALLINT | UNSIGNED | NO | 0 | |||
| RewardChoiceItemID5 | INT | UNSIGNED | NO | 0 | |||
| RewardChoiceItemQuantity5 | SMALLINT | UNSIGNED | NO | 0 | |||
| RewardChoiceItemID6 | INT | UNSIGNED | NO | 0 | |||
| RewardChoiceItemQuantity6 | SMALLINT | UNSIGNED | NO | 0 | |||
| POIContinent | SMALLINT | UNSIGNED | NO | 0 | |||
| POIx | FLOAT | NO | 0 | ||||
| POIy | FLOAT | NO | 0 | ||||
| POIPriority | INT | UNSIGNED | NO | 0 | |||
| RewardTitle | TINYINT | UNSIGNED | NO | 0 | |||
| RewardTalents | TINYINT | UNSIGNED | NO | 0 | |||
| RewardArenaPoints | SMALLINT | UNSIGNED | NO | 0 | |||
| RewardFactionID1 | SMALLINT | UNSIGNED | NO | 0 | |||
| RewardFactionValue1 | INT | NO | 0 | ||||
| RewardFactionOverride1 | INT | NO | 0 | ||||
| RewardFactionID2 | SMALLINT | UNSIGNED | NO | 0 | |||
| RewardFactionValue2 | INT | NO | 0 | ||||
| RewardFactionOverride2 | INT | NO | 0 | ||||
| RewardFactionID3 | SMALLINT | UNSIGNED | NO | 0 | |||
| RewardFactionValue3 | INT | NO | 0 | ||||
| RewardFactionOverride3 | INT | NO | 0 | ||||
| RewardFactionID4 | SMALLINT | UNSIGNED | NO | 0 | |||
| RewardFactionValue4 | INT | NO | 0 | ||||
| RewardFactionOverride4 | INT | NO | 0 | ||||
| RewardFactionID5 | SMALLINT | UNSIGNED | NO | 0 | |||
| RewardFactionValue5 | INT | NO | 0 | ||||
| RewardFactionOverride5 | INT | NO | 0 | ||||
| TimeAllowed | INT | UNSIGNED | NO | 0 | |||
| AllowableRaces | INT | UNSIGNED | NO | 0 | |||
| LogTitle | TEXT | YES | |||||
| LogDescription | TEXT | YES | |||||
| QuestDescription | TEXT | YES | |||||
| AreaDescription | TEXT | YES | |||||
| QuestCompletionLog | TEXT | YES | |||||
| RequiredNpcOrGo1 | INT | NO | 0 | ||||
| RequiredNpcOrGo2 | INT | NO | 0 | ||||
| RequiredNpcOrGo3 | INT | NO | 0 | ||||
| RequiredNpcOrGo4 | INT | NO | 0 | ||||
| RequiredNpcOrGoCount1 | SMALLINT | UNSIGNED | NO | 0 | |||
| RequiredNpcOrGoCount2 | SMALLINT | UNSIGNED | NO | 0 | |||
| RequiredNpcOrGoCount3 | SMALLINT | UNSIGNED | NO | 0 | |||
| RequiredNpcOrGoCount4 | SMALLINT | UNSIGNED | NO | 0 | |||
| RequiredItemId1 | INT | UNSIGNED | NO | 0 | |||
| RequiredItemId2 | INT | UNSIGNED | NO | 0 | |||
| RequiredItemId3 | INT | UNSIGNED | NO | 0 | |||
| RequiredItemId4 | INT | UNSIGNED | NO | 0 | |||
| RequiredItemId5 | INT | UNSIGNED | NO | 0 | |||
| RequiredItemId6 | INT | UNSIGNED | NO | 0 | |||
| RequiredItemCount1 | SMALLINT | UNSIGNED | NO | 0 | |||
| RequiredItemCount2 | SMALLINT | UNSIGNED | NO | 0 | |||
| RequiredItemCount3 | SMALLINT | UNSIGNED | NO | 0 | |||
| RequiredItemCount4 | SMALLINT | UNSIGNED | NO | 0 | |||
| RequiredItemCount5 | SMALLINT | UNSIGNED | NO | 0 | |||
| RequiredItemCount6 | SMALLINT | UNSIGNED | NO | 0 | |||
| Unknown0 | TINYINT | UNSIGNED | NO | 0 | |||
| ObjectiveText1 | TEXT | YES | |||||
| ObjectiveText2 | TEXT | YES | |||||
| ObjectiveText3 | TEXT | YES | |||||
| ObjectiveText4 | TEXT | YES | |||||
| VerifiedBuild | INT | YES |
Description of the fields
The quest ID. This column is the Primary Key for the Table. Each quest ID must be unique!
Accepted values: 0, 1 or 2. Their meaning is described in table below.
| Value | Result |
|---|---|
| 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). |
Level of the quest. It sets the quest's color in the quest log and the experience it rewards, see RewardXPDifficulty. If set to -1, the player's level is used as the quest level.
Minimum level at which a player can get the quest.
This field defines under what category the quest falls in the quest log.
If value > 0 then value is Zone IDs taken from AreaTable.dbc.
If value < 0 then (-value) is an ID from QuestSort.dbc, in general profession, class or holiday quests. Also see RequiredSkillPoints.
These values are ID taken from QuestInfo.dbc
| Value | Result |
|---|---|
| 0 | None |
| 1 | Group |
| 21 | Life |
| 41 | PvP |
| 62 | Raid |
| 81 | Dungeon |
| 82 | Event |
| 83 | Legendary |
| 84 | Escort |
| 85 | Heroic |
| 88 | Raid (10) |
| 89 | Raid (25) |
A quest can only be completed inside a raid group if it is a Raid, Raid (10) or Raid (25) quest, unless Quests.IgnoreRaid is enabled in worldserver.conf.
Recommended number of players to do the quest together.
Faction ID from Faction.dbc for a reputation objective. The quest is complete once the player's reputation with this faction reaches RequiredFactionValue1. The faction and value are shown in the quest log.
Faction ID from Faction.dbc for a second reputation objective, used for the opposing faction. The quest is complete once the player's reputation with this faction reaches RequiredFactionValue2.
Unlike the first objective, the player can only accept the quest while their reputation with this faction is below the value.
The reputation value the player needs with RequiredFactionId1. Has no effect if RequiredFactionId1 is 0.
The reputation value the player needs with RequiredFactionId2. Has no effect if RequiredFactionId2 is 0.
The ID of a quest that the same creature or gameobject offers right after this quest is turned in. When the player completes this quest, the next quest opens immediately without the player having to talk to the quest giver again.
Index (0-9) of the experience column in QuestXP.dbc. The base experience is read from the row of the QuestLevel and this column.
The experience is then reduced by the difference between the player's level and the quest level:
| Player level | Experience |
|---|---|
| QuestLevel + 5 or lower | 100% |
| QuestLevel + 6 | 80% |
| QuestLevel + 7 | 60% |
| QuestLevel + 8 | 40% |
| QuestLevel + 9 | 20% |
| QuestLevel + 10 or higher | 10% |
A repeatable quest only gives experience the first time, unless it is a daily, weekly, monthly or Dungeon Finder quest. At the maximum level, the experience is converted to money instead, 6 copper per experience point, unless the quest has the QUEST_FLAGS_NO_MONEY_FROM_XP flag.
Money earned by completing the quest (if value > 0) or money requirement to complete the quest (if value < 0).
ID refers to one of the money factor included in quest_money_reward ordered by level. If set, the money reward is taken from there based on the player's level instead of from RewardMoney.
Spell that is shown to be cast on quest completion in the quest log. Note that this spell will NOT be cast if RewardSpell is non-zero. The spell in the other field will be cast instead, in which case the spell here only serves as the visual in the quest log.
Spell cast on the player when the quest is rewarded. If set, it is cast instead of RewardDisplaySpell.
The quest giver casts the spell on the player, unless the spell teaches a spell, creates an item or can only be self cast. Then the player casts it on themself.
A fixed amount of honor rewarded for completing this quest. It is added on top of the honor from RewardKillHonor.
Honor rewarded for completing this quest, counted in honorable kills. The honor of one honorable kill depends on the player's level, so the reward grows with the player's level.
Item given by the quest giver at the beginning of the quest. The item will be deleted when the quest is abandoned. The number of items is set in ProvidedItemCount.
This flag field defines more specifically the type of quest it is. The quest requirements are calculated from non-zero values in other quest template fields.
| Flag | Name | Comments |
|---|---|---|
| 0 | QUEST_FLAGS_NONE | No flags. |
| 1 | QUEST_FLAGS_STAY_ALIVE | If the player dies, the quest is failed. |
| 2 | QUEST_FLAGS_PARTY_ACCEPT | Escort quests or any other event-driven quests. If player in party, all players that can accept this quest will receive confirmation box to accept quest. |
| 4 | QUEST_FLAGS_EXPLORATION | Involves the activation of an areatrigger. |
| 8 | QUEST_FLAGS_SHARABLE | Allows the quest to be shared with other players. |
| 16 | QUEST_FLAGS_HAS_CONDITION | Not used currently. |
| 32 | QUEST_FLAGS_HIDE_REWARD_POI | Not used currently. |
| 64 | QUEST_FLAGS_RAID | Not used by the core. Use QuestInfoID to make a raid quest. |
| 128 | QUEST_FLAGS_TBC | Not used currently: Available if TBC expansion enabled only. |
| 256 | QUEST_FLAGS_NO_MONEY_FROM_XP | Experience is not converted to money at the maximum level. |
| 512 | QUEST_FLAGS_HIDDEN_REWARDS | Item and monetary rewards are hidden in the initial quest details page and in the quest log but will appear once ready to be rewarded. |
| 1024 | QUEST_FLAGS_TRACKING | These quests are automatically rewarded on quest complete and they will never appear in quest log client side. |
| 2048 | QUEST_FLAGS_DEPRECATE_REPUTATION | Not used currently. |
| 4096 | QUEST_FLAGS_DAILY | Daily repeatable quest. |
| 8192 | QUEST_FLAGS_FLAGS_PVP | Having this quest in log forces PvP flag. |
| 16384 | QUEST_FLAGS_UNAVAILABLE | Used on quests that are not generically available. |
| 32768 | QUEST_FLAGS_WEEKLY | Weekly repeatable quest. |
| 65536 | QUEST_FLAGS_AUTOCOMPLETE | Auto complete. |
| 131072 | QUEST_FLAGS_DISPLAY_ITEM_IN_TRACKER | Displays usable item in quest tracker. |
| 262144 | QUEST_FLAGS_OBJ_TEXT | Use Objective text as Complete text. |
| 524288 | QUEST_FLAGS_AUTO_ACCEPT | The client recognizes this flag as auto-accept. However, NONE of the current quests (3.3.5a) have this flag. |
Like all flag based fields, Flags can be added for the different types of quest. Higher flags were added in later expansions and are not used in 3.3.5a.
Note that some flags may not be supported by core.
Number of enemy players the player needs to kill to complete the quest.
Item ID given as a reward. All RewardItem items are given, the player does not choose between them.
Number of RewardItem1 items given.
See RewardItem1.
Number of RewardItem2 items given.
See RewardItem1.
Number of RewardItem3 items given.
See RewardItem1.
Number of RewardItem4 items given.
Item ID of an item the player needs while on the quest, but that is not a quest objective, for example an item that has to be used on a target. Creatures and gameobjects only drop the item while the player has fewer than the needed amount.
When the quest is completed or abandoned, the core removes these items from the player if they are quest items.
The maximum number of ItemDrop1 items the player can pick up, and the number the core removes when the quest ends. If 0, the item's stack size is used as the maximum.
See ItemDrop1.
See ItemDropQuantity1.
See ItemDrop1.
See ItemDropQuantity1.
See ItemDrop1.
See ItemDropQuantity1.
Item ID of an item the player can choose as a reward. The player picks one of the RewardChoiceItemID items.
Number of RewardChoiceItemID1 items given if the player chooses it.
See RewardChoiceItemID1.
Number of RewardChoiceItemID2 items given if the player chooses it.
See RewardChoiceItemID1.
Number of RewardChoiceItemID3 items given if the player chooses it.
See RewardChoiceItemID1.
Number of RewardChoiceItemID4 items given if the player chooses it.
See RewardChoiceItemID1.
Number of RewardChoiceItemID5 items given if the player chooses it.
See RewardChoiceItemID1.
Number of RewardChoiceItemID6 items given if the player chooses it.
MapId of a quest point of interest (POI - Point Of Interest). POI will be shown on the map when quest is active.
X coordinate of quest POI.
Y coordinate of quest POI.
Sent to the client together with the POI. Its exact effect in the client is not known.
ID from CharTitles.dbc of a title the player gets when the quest is rewarded.
Number of extra talent points the player gets when the quest is rewarded.
Number of arena points the player gets when the quest is rewarded.
Faction ID from Faction.dbc that the player gets reputation with when the quest is rewarded.
This is on top of the reputation the player gets for turning the quest in to a creature of a faction.
Sets the amount of reputation for RewardFactionID1 by looking it up in QuestFactionReward.dbc. The value is the column (1-9) to use. A positive value uses the first row, which gives reputation. A negative value uses the second row, which removes reputation.
Only used if RewardFactionOverride1 is 0.
The amount of reputation for RewardFactionID1, multiplied by 100. For example, 25000 gives 250 reputation and -2500 removes 25 reputation. If set, RewardFactionValue1 is ignored.
See RewardFactionID1.
See RewardFactionValue1.
See RewardFactionID1.
See RewardFactionValue1.
See RewardFactionID1.
See RewardFactionValue1.
See RewardFactionID1.
See RewardFactionValue1.
Time in seconds the player has to complete the quest. If the time runs out, the quest fails. 0 means no time limit.
Bitmask of the races that can take the quest. 0 means all races.
| Value | Race |
|---|---|
| 1 | Human |
| 2 | Orc |
| 4 | Dwarf |
| 8 | Night Elf |
| 16 | Undead |
| 32 | Tauren |
| 64 | Gnome |
| 128 | Troll |
| 512 | Blood Elf |
| 1024 | Draenei |
Add the values together to allow several races. For example, 1101 allows all Alliance races and 690 allows all Horde races.
Title of the quest.
Objectives of the quest. If empty, quest is an auto-complete quest that can be immediately finished without accepting it first.
The quest text. You can use certain placeholders that will be filled in in-game: $B - line break, $N - name, $R - race, $C - class, $Gmale:female; (male and female can be replaced with any synonym you want, but the order must stay the same. IE: boy:girl / man:woman / sir:madam)
An extra objective line shown in the quest log for objectives that are not kills or items, such as exploring an area or escorting a creature. For example, "Scout through the Fargodeep Mine".
These objectives are completed by an areatrigger, a spell or a script, see the QUEST_SPECIAL_FLAGS_EXPLORATION_OR_EVENT flag in quest_template_addon.SpecialFlags.
Text shown in the quest log when all objectives are done, for example "Return to Marshal McBride in Northshire Abbey." You can use the same placeholders as in QuestDescription.
QUEST_SPECIAL_FLAGS_CAST flag in quest_template_addon.SpecialFlags, the objective is to cast a spell on the target instead of killing it.See RequiredNpcOrGo1.
See RequiredNpcOrGo1.
See RequiredNpcOrGo1.
The number of times the creature or gameobject in RequiredNpcOrGo1 must be killed or cast upon.
Item ID of an item the player needs to complete the quest.
See RequiredItemId1.
See RequiredItemId1.
See RequiredItemId1.
See RequiredItemId1.
See RequiredItemId1.
Number of RequiredItemId1 items the player needs.
See RequiredItemCount1.
See RequiredItemCount1.
See RequiredItemCount1.
See RequiredItemCount1.
See RequiredItemCount1.
Not used by the core.
Used to define non-standard objective texts that show up in the quest log, for example "Heal fallen warrior". The count from RequiredNpcOrGoCount1 is added after the text.
See ObjectiveText1.
See ObjectiveText1.
See ObjectiveText1.
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.