conditions
Structure
| Field | Type | Attributes | Key | Null | Default | Extra | Comment |
|---|---|---|---|---|---|---|---|
| SourceTypeOrReferenceId | int | signed | PRI | NO | 0 | ||
| SourceGroup | int | unsigned | PRI | NO | 0 | ||
| SourceEntry | int | signed | PRI | NO | 0 | ||
| SourceId | int | signed | PRI | NO | 0 | ||
| ElseGroup | int | unsigned | PRI | NO | 0 | ||
| ConditionTypeOrReference | int | signed | PRI | NO | 0 | ||
| ConditionTarget | tinyint | unsigned | PRI | NO | 0 | ||
| ConditionValue1 | int | unsigned | PRI | NO | 0 | ||
| ConditionValue2 | int | unsigned | PRI | NO | 0 | ||
| ConditionValue3 | int | unsigned | PRI | NO | 0 | ||
| ConditionStringValue1 | varchar(64) | PRI | NO | '' | |||
| NegativeCondition | tinyint | unsigned | NO | 0 | |||
| ErrorType | int | unsigned | NO | 0 | |||
| ErrorTextId | int | unsigned | NO | 0 | |||
| ScriptName | varchar(64) | NO | '' | ||||
| Comment | varchar(255) | YES | NULL |
Description of fields
SourceTypeOrReferenceId
- if a negative value, id of a reference (referenced directly in the ConditionTypeOrReference of another condition).
- If a positive value, source type of the condition to be applied:
SourceTypeOrReferenceId ID SourceGroup SourceEntry SourceId ConditionTarget Notes CONDITION_SOURCE_TYPE_NONE 0 (Never used) (Never used) (Never used) (Never used) CONDITION_SOURCE_TYPE_CREATURE_LOOT_TEMPLATE 1 creature_loot_template.Entry or
reference_loot_template.Entryitem id (_loot_template.Item or
reference_loot_template.Item)Always 0 Always 0 CONDITION_SOURCE_TYPE_DISENCHANT_LOOT_TEMPLATE 2 disenchant_loot_template.Entry or
reference_loot_template.Entryitem id (_loot_template.Item or
reference_loot_template.Item)Always 0 Always 0 CONDITION_SOURCE_TYPE_FISHING_LOOT_TEMPLATE 3 fishing_loot_template.Entry or
reference_loot_template.Entryitem id (_loot_template.Item or
reference_loot_template.Item)Always 0 Always 0 CONDITION_SOURCE_TYPE_GAMEOBJECT_LOOT_TEMPLATE 4 gameobject_loot_template.Entry or
reference_loot_template.Entryitem id (_loot_template.Item or
reference_loot_template.Item)Always 0 Always 0 CONDITION_SOURCE_TYPE_ITEM_LOOT_TEMPLATE 5 item_loot_template.Entry or
reference_loot_template.Entryitem id (_loot_template.Item or
reference_loot_template.Item)Always 0 Always 0 CONDITION_SOURCE_TYPE_MAIL_LOOT_TEMPLATE 6 mail_loot_template.Entry or
reference_loot_template.Entryitem id (_loot_template.Item or
reference_loot_template.Item)Always 0 Always 0 CONDITION_SOURCE_TYPE_MILLING_LOOT_TEMPLATE 7 milling_loot_template.Entry or
reference_loot_template.Entryitem id (_loot_template.Item or
reference_loot_template.Item)Always 0 Always 0 CONDITION_SOURCE_TYPE_PICKPOCKETING_LOOT_TEMPLATE 8 pickpocketing_loot_template.Entry or
reference_loot_template.Entryitem id (_loot_template.Item or
reference_loot_template.Item)Always 0 Always 0 CONDITION_SOURCE_TYPE_PROSPECTING_LOOT_TEMPLATE 9 prospecting_loot_template.Entry or
reference_loot_template.Entryitem id (_loot_template.Item or
reference_loot_template.Item)Always 0 Always 0 CONDITION_SOURCE_TYPE_REFERENCE_LOOT_TEMPLATE 10 reference_loot_template.Entry item id (_loot_template.Item or
reference_loot_template.Item)Always 0 Always 0 CONDITION_SOURCE_TYPE_SKINNING_LOOT_TEMPLATE 11 skinning_loot_template.Entry or
reference_loot_template.Entryitem id (_loot_template.Item or
reference_loot_template.Item)Always 0 Always 0 CONDITION_SOURCE_TYPE_SPELL_LOOT_TEMPLATE 12 spell_loot_template.Entry or
reference_loot_template.Entryitem id (_loot_template.Item or
reference_loot_template.Item)Always 0 Always 0 CONDITION_SOURCE_TYPE_SPELL_IMPLICIT_TARGET 13 Mask of effects to be affected by condition:
1 = EFFECT_0, 2 = EFFECT_1, 4 = EFFECT_2 ... (231 = EFFECT_31)SpellID Always 0 0 : Potential spell target
1 = Spell casterDon't use wowhead to get number of effects, data from wowhead sometimes doesn't match real effect number. CONDITION_SOURCE_TYPE_GOSSIP_MENU 14 gossip_menu.entry (gossip menu entry) gossip_menu.text_id (points to npc_text.ID) Always 0 0 = Player
1 = WorldObjectCONDITION_SOURCE_TYPE_GOSSIP_MENU_OPTION 15 gossip_menu_option.menu_id (menu entry) gossip_menu_option.id Always 0 0 = Player
1 = WorldObjectCONDITION_SOURCE_TYPE_CREATURE_TEMPLATE_VEHICLE 16 Always 0 creature entry (creature_template.entry) Always 0 0 = Player riding vehicle
1 = Vehicle creatureCONDITION_SOURCE_TYPE_SPELL 17 Always 0 SpellID Always 0 0 = Spell aster
1 = Explicit target of the spell
(only for spells which take the object
selected by caster into account)- This source type allows you to define caster/explicit target requirements for spell to be cast.
- Explicit target of the spell is the target which is selected by player during cast, not all spells take that target into account.
non-explicit targets of the spell (the ones which are selected by spell like area or nearby targets for example)
are not affected by this condition source type, if you want to affect those use CONDITION_SOURCE_TYPE_SPELL_IMPLICIT_TARGET instead. - If you are looking for old CONDITION_SOURCE_TYPE_ITEM_REQUIRED_TARGET, use this condition source type instead
(ConditionTarget = 1 allows you to set requirements for a given spell, so to use this condition type you need spellid of the spell cast on item use). - Remember that conditions with the same ElseGroup value will be used to make logical AND check,
so to allow different targets for the same spell effect you have to set ElseGroup respectively.
CONDITION_SOURCE_TYPE_SPELL_CLICK_EVENT 18 npc_spellclick_spells.npc_entry npc_spellclick_spells.spell_id Always 0 0 = Clicker
1 = Spellclick target (clickee)CONDITION_SOURCE_TYPE_QUEST_AVAILABLE 19 Always 0 quest_template.ID Always 0 Always 0 Condition must be met for quest to be available to player. UNUSED20 CONDITION_SOURCE_TYPE_VEHICLE_SPELL 21 creature_template_spell.CreatureID creature_template_spell.Spell Always 0 0 = Player for whom spell bar is shown
1 = Vehicle creatureThis will show or hide spells in vehicle spell bar. CONDITION_SOURCE_TYPE_SMART_EVENT 22 smart_scripts.id + 1 smart_scripts.entryorguid smart_scripts.source_type 0 = Invoker
1 = ObjectCONDITION_SOURCE_TYPE_NPC_VENDOR 23 npc_vendor.entry npc_vendor.item Always 0 0 = Player
1 = WorldObjectCONDITION_SOURCE_TYPE_SPELL_PROC 24 Always 0 SpellID of aura which triggers the proc Always 0 0 = Actor
1 = ActionTargetCONDITION_SOURCE_TYPE_TERRAIN_SWAP 25 Always 0 terrain_swap_defaults.TerrainSwapMap Always 0 Always 0 CONDITION_SOURCE_TYPE_PHASE 26 phase_area.PhaseId phase_area.AreaId (0 for any area) Always 0 Always 0 CONDITION_SOURCE_TYPE_GRAVEYARD 27 graveyard_zone.GhostZone graveyard_zone.ID Always 0 Always 0 CONDITION_SOURCE_TYPE_AREATRIGGER 28 areatrigger_template.Id areatrigger_template.IsCustom Always 0 Always 0 CONDITION_SOURCE_TYPE_CONVERSATION_LINE 29 Always 0 conversation_line_template.Id Always 0 Always 0 CONDITION_SOURCE_TYPE_AREATRIGGER_CLIENT_TRIGGERED 30 Always 0 AreatriggerID Always 0 Always 0 CONDITION_SOURCE_TYPE_TRAINER_SPELL 31 trainer_spell.TrainerId trainer_spell.SpellId Always 0 Always 0 CONDITION_SOURCE_TYPE_OBJECT_ID_VISIBILITY 32 ObjectType:
5 = Unit
8 = GameObjectCreatureID / GameObjectID Always 0 0 = Player
1 = WorldObjectCONDITION_SOURCE_TYPE_SPAWN_GROUP 33 Always 0 spawn_group_template.groupId Always 0 Always 0 CONDITION_SOURCE_TYPE_PLAYER_CONDITION 34 Always 0 PlayerConditionID Always 0 Always 0 CONDITION_SOURCE_TYPE_SKILL_LINE_ABILITY 35 Always 0 ID from SkillLineAbility.db2 Always 0 Always 0 CONDITION_SOURCE_TYPE_PLAYER_CHOICE_RESPONSE 36 playerchoice_response.ChoiceId playerchoice_response.ResponseId Always 0 Always 0
SourceGroup
See table above.
SourceEntry
See table above.
SourceId
See table above.
ElseGroup
Allows building grouped conditions - all entries belonging to the same condition (same SourceType, SourceGroup and SourceEntry) that share the same number in ElseGroup, define one group. The entire condition is met when any of its groups is met (logical OR). The group is met when all of its entries are met (logical AND).
Example:
Two conditions with the same SourceType, SourceGroup and SourceEntry but with a different Condition, the first one has ElseGroup = 1 and the second has ElseGroup = 2, this creates a Logical OR.
Two conditions with the same SourceType, SourceGroup and SourceEntry but with a different Condition, both has ElseGroup = 1, this creates a Logical AND.
ConditionTypeOrReference
- if a negative value, id of a reference (references directly the SourceTypeOrReferenceId of another condition).
- If a positive value, condition type to be applied:
ConditionTypeOrReference (name) Value ConditionValue1 ConditionValue2 ConditionValue3 Usage CONDITION_NONE 0 (Never used) (Never used) (Never used) CONDITION_AURA 1 Spell ID from Spell.dbc Effect index (0-31) Always 0 CONDITION_ITEM 2 item entry (item_template.entry) item count 0 = not in bank
1 = in bankCONDITION_ITEM_EQUIPPED 3 item entry (item_template.entry) Always 0 Always 0 CONDITION_ZONEID 4 Zone ID where this condition will be true. Always 0 Always 0 CONDITION_REPUTATION_RANK 5 Faction template ID from Faction.dbc rank: 1 = Hated
2 = Hostile
4 = Unfriendly
8 = Neutral
16 = Friendly
32 = Honored
64 = Revered
128 = Exalted
Add the target ranks together for the condition to be true for all those ranks.Always 0 CONDITION_TEAM 6 TeamID:
Alliance = 469
Horde = 67Always 0 Always 0 CONDITION_SKILL 7 Required skill.
See SkillLine.db2 .Skill rank value (e.g. from 1 to 450 for the 3.3.5 branch) Always 0 CONDITION_QUESTREWARDED 8 Quest ID - see quest_template.id Always 0 Always 0 CONDITION_QUESTTAKEN 9 Quest ID - see quest_template.id Always 0 Always 0 CONDITION_DRUNKENSTATE 10 Sober = 0
Tipsy = 1
Drunk = 2
Smashed = 3Always 0 Always 0 CONDITION_WORLD_STATE 11 World state index World state value Always 0 CONDITION_ACTIVE_EVENT 12 Event entry
(game_event.eventEntry)Always 0 Always 0 CONDITION_INSTANCE_INFO 13 entry (see corresponding source script files for info) data (see corresponding script source files for more info) 0 = INSTANCE_INFO_DATA
1 = INSTANCE_INFO_GUID_DATA
2 = INSTANCE_INFO_BOSS_STATE
3 = INSTANCE_INFO_DATA64CONDITION_QUEST_NONE 14 Quest ID - see quest_template.id Always 0 Always 0 CONDITION_CLASS 15 Class mask from ChrClasses.dbc
Add flags together for all classes where condition is true.1 = Warrior
2 = Paladin
4 = Hunter
8 = Rogue
16 = Priest
32 = Death Knight
64 = Shaman
128 = Mage
256 = Warlock
512 = Monk
1024 = Druid
2048 = Demon Hunter
4096 = EvokerAlways 0 Always 0 CONDITION_RACE 16 Player must be this race.
See ChrRaces.dbc .
Add flags together for all races where condition is true.Always 0 Always 0 CONDITION_ACHIEVEMENT 17 Achievement ID from Achievement.dbc Always 0 Always 0 CONDITION_TITLE 18 Title ID from CharTitles.dbc Always 0 Always 0 ⚠️ CONDITION_SPAWNMASK_DEPRECATED 19 UNUSED, DO NOT REUSE CONDITION_GENDER 20 0 = Male
1 = Female
2 = NoneAlways 0 Always 0 CONDITION_UNIT_STATE 21 UnitState (enum from Unit.h) Always 0 Always 0 CONDITION_MAPID 22 Map entry from Map.dbc
(0=Eastern Kingdoms, 1=Kalimdor, - and so on.)Always 0 Always 0 CONDITION_AREAID 23 Area ID from AreaTable.dbc Always 0 Always 0 CONDITION_CREATURE_TYPE 24 Creature type from creature_template.type
True if creature_template.type == ConditionValue1Always 0 Always 0 CONDITION_SPELL 25 Spell ID from Spell.dbc Always 0 Always 0 CONDITION_PHASEID 26 PhaseID Always 0 Always 0 CONDITION_LEVEL 27 Player level (1-80 in 3.3.5 || 1-60 in 9.x) Optional: 0 = Level must be equal
1 = Level must be higher
2 = Level must be lower
3 = Level must be higher or equal
4 = Level must be lower or equal.Always 0 CONDITION_QUEST_COMPLETE 28 Quest ID - see quest_template.id Always 0 Always 0 CONDITION_NEAR_CREATURE 29 Creature entry from creature_template.entry Distance in yards Alive=0
Dead=1CONDITION_NEAR_GAMEOBJECT 30 Gameobject entry from gameobject_template.entry Distance in yards Always 0 CONDITION_OBJECT_ENTRY_GUID_LEGACY 31 TypeID. Available object types:
3 : TYPEID_UNIT
4 : TYPEID_PLAYER
5 : TYPEID_GAMEOBJECT
7 : TYPEID_CORPSE (player corpse, after spirit release)0 = Any object of given TypeID
if TypeID = TYPEID_UNIT => Creature entry from creature_template.entry
if TypeID = TYPEID_GAMEOBJECT => Gameobject entry from gameobject_template.entry0 = Any object of given type
1 - 500k : creature / gameobject GUIDCONDITION_TYPE_MASK_LEGACY 32 TypeMask - a bitmask of following object types:
0x0008 - TYPEMASK_UNIT (8)
0x0010 - TYPEMASK_PLAYER (16)
0x0020 - TYPEMASK_GAMEOBJECT (32)
0x0080 - TYPEMASK_CORPSE (player corpse after spirit release) (128)Always 0 Always 0 CONDITION_RELATION_TO 33 Target to which relation is checked.
- one of the ConditionTargets available in current SourceTypeRelationType - defines relation of current ConditionTarget to target specified in ConditionValue1.
0 - RELATION_SELF
1 - RELATION_IN_PARTY
2 - RELATION_IN_RAID_OR_PARTY
3 - RELATION_OWNED_BY (ConditionTarget is owned by ConditionValue1)
4 - RELATION_PASSENGER_OF (ConditionTarget is passenger of ConditionValue1)
5 - RELATION_CREATED_BY (ConditionTarget is summoned by ConditionValue1)Always 0 CONDITION_REACTION_TO 34 Target to which reaction is checked.
- one of the ConditionTargets available in current SourceTyperankMask: This bitmask defines the reaction(s) of the current ConditionTarget
to the target specified in ConditionValue1 (which are allowed).
Flags for the reactions are:1 = Hated
2 = Hostile
4 = Unfriendly
8 = Neutral
16 = Friendly
32 = Honored
64 = Revered
128 = ExaltedAlways 0 CONDITION_DISTANCE_TO 35 Target to which distance is checked
- one of ConditionTargets available in current SourceTypeDistance.
Defines distance between current ConditionTarget and target specified in ConditionValue1ComparisionType:
0 = distance must be equal to ConditionValue2
1 = distance must be higher than ConditionValue2
2 = distance must be lower than ConditionValue2
3 = distance must be equal to or higher than ConditionValue2
4 = distance must be equal to or lower than ConditionValue2CONDITION_ALIVE 36 Always 0 - Use NegativeCondition and the following settings:
NegativeCondition = 0 if target needs to be ALIVE.
NegativeCondition = 1 if target needs to be DEAD.
NOTE: A creature corpse and a creature that_looks_dead
are two different things. One is actually dead
and the other is just using an emote to appear dead.Always 0 Always 0 CONDITION_HP_VAL 37 HP value ComparisionType: - 0 = HP must be equal
- 1 = HP must be higher
- 2 = HP must be lesser
- 3 = HP must be equal or higher
- 4 = HP must be equal or lower
Always 0 CONDITION_HP_PCT 38 Percentage of max HP ComparisionType: - 0 = Percentage of max HP must be equal
- 1 = Percentage of max HP must be higher
- 2 = Percentage of max HP must be lower
- 3 = Percentage of max HP must be equal or higher
- 4 = Percentage of max HP must be equal or lower
Always 0 CONDITION_REALM_ACHIEVEMENT 39 Achievement ID
from Achievement.dbcAlways 0 Always 0 CONDITION_IN_WATER 40 Always 0 - Use NegativeCondition and the following settings:
NegativeCondition = 0 If target needs to be on land
NegativeCondition = 1 If target needs to be in waterAlways 0 Always 0 CONDITION_TERRAIN_SWAP 41 terrainSwap - true if object is in terrainswap [ master only ] Always 0 Always 0 CONDITION_STAND_STATE 42 stateType (exact or any): 0 = Exact state used in ConditionValue2
1 = Any type of state in ConditionValue2Exact stand state, or generic state (stand / sit), depending on value 1
0 = Standing 1 = SittingAlways 0 CONDITION_DAILY_QUEST_DONE 43 Quest ID - see quest_template.id Always 0 Always 0 CONDITION_CHARMED 44 Always 0 Always 0 Always 0 CONDITION_PET_TYPE 45 mask Always 0 Always 0 CONDITION_TAXI 46 Always 0 Always 0 Always 0 CONDITION_QUESTSTATE 47 Quest ID - see quest_template.id state_mask: true if player is in any of the provided quest states for the quest
1 = not taken
2 = completed
8 = in progress
32 = failed
64 = rewardedAlways 0 CONDITION_QUEST_OBJECTIVE_PROGRESS 48 Quest Objective ID Always 0 Progress Value CONDITION_DIFFICULTY_ID 49 Difficulty (0 None, 1 Normal, etc) Always 0 Always 0 true if target's map has difficulty id CONDITION_GAMEMASTER 50 canBeGM Always 0 Always 0 true if player is gamemaster
(or can be gamemaster)CONDITION_OBJECT_ENTRY_GUID 51 TypeID entry guid true if object is type TypeID
and the entry is 0
or matches entry of the object
or matches guid of the objectCONDITION_TYPE_MASK 52 TypeMask Always 0 Always 0 true if object is type object's
TypeMask matches provided TypeMaskCONDITION_BATTLE_PET_COUNT 53 SpeciesId count ComparisonType true if player has count of battle pet species CONDITION_SCENARIO_STEP 54 ScenarioStepId (Only >= 5.0.3) Always 0 Always 0 true if object is at scenario
with current step equal to ScenarioStepIDCONDITION_SCENE_IN_PROGRESS 55 SceneScriptPackageId Always 0 Always 0 true if player is playing a scene
with ScriptPackageId equal to given valueCONDITION_PLAYER_CONDITION 56 PlayerConditionId Always 0 Always 0 true if player satisfies PlayerCondition CONDITION_PRIVATE_OBJECT 57 Always 0 Always 0 Always 0 true if entity is private object CONDITION_STRING_ID 58 Always 0 Always 0 Always 0 true if entity uses string id (ConditionStringValue1) CONDITION_LABEL 59 Label Always 0 Always 0 true if creature/gameobject has specified Label in CreatureLabel.db2/GameObjectLabel.db2
Please note ⚠️means that the ConditionType is deprecated and should not be used.
ConditionTarget
Allows selecting an object for which conditions will be checked. Available objects are dependant on SourceTypeOrReferenceId, for details see respective source type reference.
ConditionValue1
ConditionValue2
ConditionValue3
ConditionStringValue1
- no description -
NegativeCondition
If set to 1, the condition will be "inverted"
Example: CONDITION_AURA with NegativeCondition will be true when the player does NOT have the aura.
ErrorType
Id from /src/server/game/Miscellaneous/SharedDefines.h#L1442. Will be displayed only for the below condition source type:
CONDITION_SOURCE_TYPE_SPELL = 17
ErrorTextId
Id from /src/server/game/Miscellaneous/SharedDefines.h#L1766. Will be displayed only for the below condition source type:
CONDITION_SOURCE_TYPE_SPELL = 17
(ErrorType must be SPELL_FAILED_CUSTOM_ERROR (211) otherwise 0)
ScriptName
The ScriptName this condition uses, if any.
Comment
Explanation of this condition or reference
