quest_template_addon
Contains extra definitions like linking quests, dependencies and requirements for the quests defined in the quest_template table to become available to the player.
Structure
| Field | Type | Attributes | Key | Null | Default | Extra | Comment |
|---|---|---|---|---|---|---|---|
| ID | int | unsigned | PRI | NO | 0 | ||
| MaxLevel | tinyint | unsigned | NO | 0 | |||
| AllowableClasses | int | unsigned | NO | 0 | |||
| SourceSpellID | int | unsigned | NO | 0 | |||
| PrevQuestID | int | signed | NO | 0 | |||
| NextQuestID | int | unsigned | NO | 0 | |||
| ExclusiveGroup | int | signed | NO | 0 | |||
| BreadcrumbForQuestId | int | signed | NO | 0 | |||
| RewardMailTemplateID | int | unsigned | NO | 0 | |||
| RewardMailDelay | int | unsigned | NO | 0 | |||
| RequiredSkillID | smallint | unsigned | NO | 0 | |||
| RequiredSkillPoints | smallint | unsigned | NO | 0 | |||
| RequiredMinRepFaction | smallint | unsigned | NO | 0 | |||
| RequiredMaxRepFaction | smallint | unsigned | NO | 0 | |||
| RequiredMinRepValue | int | signed | NO | 0 | |||
| RequiredMaxRepValue | int | signed | NO | 0 | |||
| ProvidedItemCount | tinyint | unsigned | NO | 0 | |||
| SpecialFlags | tinyint | unsigned | NO | 0 | |||
Description of fields
ID
references quest_template.ID
MaxLevel
Maximum level at which a player can get the quest.
AllowableClasses
Class mask of ChrClass IDs allowed to get the quest.
| Value | Flag | Name |
|---|---|---|
| 1 | 0x0001 | Warrior |
| 2 | 0x0002 | Paladin |
| 4 | 0x0004 | Hunter |
| 8 | 0x0008 | Rogue |
| 16 | 0x0010 | Priest |
| 32 | 0x0020 | Death Knight |
| 64 | 0x0040 | Shaman |
| 128 | 0x0080 | Mage |
| 256 | 0x0100 | Warlock |
| 1024 | 0x0400 | Druid |
SourceSpellID
Spell ID cast on player when quest is started. Can be a buff or a learning spell.
PrevQuestID
- PrevQuestID > 0: Contains the previous quest id, that must be completed before this quest can be started.
- PrevQuestID < 0: Contains the parent quest id, that must be active before this quest can be started.
NextQuestID
- NextQuestID > 0: Contains the next quest id, if PrevQuestID of that quest is not sufficient.
- NextQuestID < 0: Contains the sub quest id, if PrevQuestID of that quest is not sufficient. If quest have many alternative next quests (class specific quests lead from single not class specific quest) field PrevQuestID in next quests can used for setting this dependence.
ExclusiveGroup
ExclusiveGroup > 0: Allows to define a group of quests of which only one may be chosen and completed. E.g. if from quests 1200, 1201 and 1202 only one should be allowed to be chosen, insert 1200 into ExclusiveGroup of all 3 quests.
ExclusiveGroup < 0: Allows to define a group of quests of which all must be completed and rewarded to start next quest. E.g. if quest 1000 dependent from one of quests 1200, 1201 and 1202 and all this quests have same negative exclusive group then all this quest must be completed and rewarded before quest 1000 can be started.
Note: All quests that use an ExclusiveGroup must also have entries in quest_pool_template and quest_pool_members in order for the core to choose one randomly. See the examples section for examples.
BreadcrumbForQuestId
Breadcrumb quests exist for the sole purpose of guiding the player to a new zone or subzone to quest in. They are often given by NPCs upon completing the previous quest hub, as well as Hero's Call Boards, Warchief's Command Boards, and the Adventure Guide. Often there are multiple breadcrumb quests followed by the same follow-up quest, and normally they are mutually exclusive, meaning that accepting one breadcrumb quest will make all the others leading to the same location unavailable. Also, normally completing the follow-up quest will make any breadcrumb quests leading to it unavailable, whether or not they were completed. BreadcrumbForQuestId is the follow up quest_template.ID
RewardMailTemplateID
If the quest gives as a reward an item from a possible list of items, the ID here corresponds to the proper entry in mail_loot_template and MailTemplate ID. According to the rules in that loot template, items "looted" will be sent by mail at the completion of the quest.
RewardMailDelay
How many seconds to wait until the mail is sent to the character that turned in a quest rewarding mail loot.
RequiredSkillID
SkillLine ID required to know to accept the quest.
RequiredSkillPoints
Skill points in RequiredSkillID required to have in order to accept the quest.
RequiredMinRepFaction
Faction ID for reputation requirement.
RequiredMaxRepFaction
Faction ID for reputation requirement.
RequiredMinRepValue
Players must have at least this reputation value for RequiredMinRepFaction in order to receive the quest.
RequiredMaxRepValue
Players can have at most this reputation value for RequiredMaxRepFaction in order to receive the quest.
ProvidedItemCount
Number of StartItem given to the player (inserted in the player's bags) upon accepting the quest.
SpecialFlags
This field is a bitmask and is for controlling server side quest functions. Blizzard keeps these data server-side and they are not sent to the client, so we have to populate the field manually.
excerpt from enum QuestSpecialFlags:
| Value | Flag | Name | Description |
|---|---|---|---|
| 1 | 0x01 | QUEST_SPECIAL_FLAGS_REPEATABLE | |
| 2 | 0x02 | QUEST_SPECIAL_FLAGS_EXPLORATION_OR_EVENT | if required area explore, spell SPELL_EFFECT_QUEST_COMPLETE casting, an entry in areatrigger_involvedrelation or *_script command SCRIPT_COMMAND_QUEST_EXPLORED use |
| 4 | 0x04 | QUEST_SPECIAL_FLAGS_AUTO_ACCEPT | if the quest is to be auto-accepted. As of patch 3.3.5a only quests in the starter area need this flag. |
| 8 | 0x08 | QUEST_SPECIAL_FLAGS_DF_QUEST | if the quest is used by Dungeon Finder. |
| 16 | 0x10 | QUEST_SPECIAL_FLAGS_MONTHLY | if the quest is reset at the begining of the month |
| 32 | 0x20 | QUEST_SPECIAL_FLAGS_CAST | if the quest requires RequiredOrNpcGo killcredit but NOT kill (a spell cast). This action usually involves "killing" an invisible "bunny" NPC. |
