Skip to content

smart_scripts

Structure ​

FieldTypeAttributesKeyNullDefaultExtraComment
entryorguidintsignedPRINO
source_typetinyintunsignedPRINO0
idsmallintunsignedPRINO0
linksmallintunsignedPRINO0
event_typetinyintunsignedNO0
event_phase_masksmallintunsignedNO0
event_chancetinyintunsignedNO100
event_flagssmallintunsignedNO0
event_param1intunsignedNO0
event_param2intunsignedNO0
event_param3intunsignedNO0
event_param4intunsignedNO0
event_param5intunsignedNO0
action_typetinyintunsignedNO0
action_param1intunsignedNO0
action_param2intunsignedNO0
action_param3intunsignedNO0
action_param4intunsignedNO0
action_param5intunsignedNO0
action_param6intunsignedNO0
target_typetinyintunsignedNO0
target_param1intunsignedNO0
target_param2intunsignedNO0
target_param3intunsignedNO0
target_param4intunsignedNO0
target_xfloatNO0
target_yfloatNO0
target_zfloatNO0
target_ofloatNO0
commentmediumtextNOEvent Comment

 

Description of fields ​

Note: ❌ means that the feature/option is not (yet) implemented.

entryorguid ​

  • source_type = 9: invoking entryorguid * 100 (+i, if multiple timed action lists are set)
  • entryorguid > 0: entry of the creature / game object / etc.
  • entryorguid < 0: guid of the creature / game object / etc.

 

source_type ​

What type to script:

IDNameComment
0SMART_SCRIPT_TYPE_CREATURE
1SMART_SCRIPT_TYPE_GAMEOBJECT
2SMART_SCRIPT_TYPE_AREATRIGGER
3❌ SMART_SCRIPT_TYPE_EVENTnot yet implemented
4❌ SMART_SCRIPT_TYPE_GOSSIPnot yet implemented
5❌ SMART_SCRIPT_TYPE_QUESTnot yet implemented
6❌ SMART_SCRIPT_TYPE_SPELLnot yet implemented
7❌ SMART_SCRIPT_TYPE_TRANSPORTnot yet implemented
8❌ SMART_SCRIPT_TYPE_INSTANCEnot yet implemented
9SMART_SCRIPT_TYPE_TIMED_ACTIONLIST
10❌ SMART_SCRIPT_TYPE_SCENERESERVED master branch
11❌ SMART_SCRIPT_TYPE_AREATRIGGER_ENTITYRESERVED master branch
12❌ SMART_SCRIPT_TYPE_AREATRIGGER_ENTITY_SERVERSIDERESERVED master branch

 

id ​

Incremental id bound to each entryorguid + source_type (0, 1, 2, ...).
 

Simple event linking;
Example: if id = 0 and link = 1; id 1 will only be able to occur if id = 0 was triggered.
 

event ​

UpdateIC (0)

Update in combat.

  • event_type:
    SMART_EVENT_UPDATE_IC (0)
  • event_param1:
    InitialMin (in msec.)
  • event_param2:
    InitialMax (in msec.)
  • event_param3:
    RepeatMin (in msec.)
  • event_param4:
    RepeatMax (in msec.)
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
  • 9: SMART_SCRIPT_TYPE_TIMED_ACTIONLIST
UpdateOOC (1)

Update out of combat.

  • event_type:
    SMART_EVENT_UPDATE_OOC (1)
  • event_param1:
    InitialMin (in msec.)
  • event_param2:
    InitialMax (in msec.)
  • event_param3:
    RepeatMin (in msec.)
  • event_param4:
    RepeatMax (in msec.)
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
  • 1: SMART_SCRIPT_TYPE_GAMEOBJECT
  • 8: SMART_SCRIPT_TYPE_INSTANCE
HealthPct (2)

Health percentage

  • event_type:
    SMART_EVENT_HEALTH_PCT (2)
  • event_param1:
    HPMin%
  • event_param2:
    HPMax%
  • event_param3:
    RepeatMin (in msec.)
  • event_param4:
    RepeatMax (in msec.)
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
ManaPct (3)

Mana percentage

  • event_type:
    SMART_EVENT_MANA_PCT (3)
  • event_param1:
    ManaMin%
  • event_param2:
    ManaMax%
  • event_param3:
    RepeatMin (in msec.)
  • event_param4:
    RepeatMax (in msec.)
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
Aggro (4)

on creature aggro

  • event_type:
    SMART_EVENT_AGGRO (4)
  • event_param1:
    0
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
Kill (5)

On creature / player kill

  • event_type:
    SMART_EVENT_KILL (5)
  • event_param1:
    CooldownMin (in msec.)
  • event_param2:
    CooldownMax (in msec.)
  • event_param3:
    • 0: Any unit
    • 1: Player only
  • event_param4:
    if event_param3 = 0: creature entry (0: any)
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
Death (6)

On creature death

  • event_type:
    SMART_EVENT_DEATH (6)
  • event_param1:
    0
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
Evade (7)

On creature enter evade mode

  • event_type:
    SMART_EVENT_EVADE (7)
  • event_param1:
    0
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
SpellHit (8)

On creature / gameobject spell hit

  • event_type:
    SMART_EVENT_SPELLHIT (8)

  • event_param1:
    Spell ID

  • event_param2:
    (0: any SpellSchool)
    enum SpellSchools

    ValueFlagName
    10x01SPELL_SCHOOL_NORMAL
    20x02SPELL_SCHOOL_HOLY
    40x04SPELL_SCHOOL_FIRE
    80x08SPELL_SCHOOL_NATURE
    160x10SPELL_SCHOOL_FROST
    320x20SPELL_SCHOOL_SHADOW
    640x40SPELL_SCHOOL_ARCANE
  • event_param3:
    CooldownMin (in msec.)

  • event_param4:
    CooldownMax (in msec.)

  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
  • 1: SMART_SCRIPT_TYPE_GAMEOBJECT
Range (9)

On target in range

  • event_type:
    SMART_EVENT_RANGE (9)
  • event_param1:
    MinDist
  • event_param2:
    MaxDist
  • event_param3:
    RepeatMin (in msec.)
  • event_param4:
    RepeatMax (in msec.)
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
LineOfSightOOC (10)

On target in distance out of combat

  • event_type:
    SMART_EVENT_OOC_LOS (10)
  • event_param1:
    • 0: Hostile
    • 1: Not Hostile
    • 2: Any
  • event_param2:
    MaxRange
  • event_param3:
    CooldownMin (in msec.)
  • event_param4:
    CooldownMax (in msec.)
  • event_param5:
    • 0: Any unit
    • 1: Player only

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
Respawn (11)

On creature / gameobject Respawn

  • event_type:
    SMART_EVENT_RESPAWN (11)

  • event_param1:
    enum SMART_SCRIPT_RESPAWN_CONDITION
    | SMART_SCRIPT_RESPAWN_CONDITION_NONE | 0 |
    | SMART_SCRIPT_RESPAWN_CONDITION_MAP | 1 |
    | SMART_SCRIPT_RESPAWN_CONDITION_AREA | 2 |

  • event_param2:
    if event_param1 = 1: Map ID

  • event_param3:
    if event_param1 = 2: AreaTable ID

  • event_param4:
    0

  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
  • 1: SMART_SCRIPT_TYPE_GAMEOBJECT
TargetHealthPct ⚠️ (12)

On target health percentage

UNUSED, DO NOT REUSE

  • event_type:
    SMART_EVENT_TARGET_HEALTH_PCT (12)
  • event_param1:
    HPMin%
  • event_param2:
    HPMax%
  • event_param3:
    RepeatMin (in msec.)
  • event_param4:
    RepeatMax (in msec.)
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
VictimCast (13)

On target casting spell

  • event_type:
    SMART_EVENT_VICTIM_CASTING (13)
  • event_param1:
    RepeatMin (in msec.)
  • event_param2:
    RepeatMax (in msec.)
  • event_param3:
    Spell ID (0: any)
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
FriendHealth ⚠️ (14)

On friendly health deficit

UNUSED, DO NOT REUSE

  • event_type:
    SMART_EVENT_FRIENDLY_HEALTH (14)
  • event_param1:
    HPDeficit
  • event_param2:
    Radius
  • event_param3:
    RepeatMin (in msec.)
  • event_param4:
    RepeatMax (in msec.)
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
FriendCCed (15)

Ally is feared, charmed, rooted, stunned or confused

  • event_type:
    SMART_EVENT_FRIENDLY_IS_CC (15)
  • event_param1:
    Radius
  • event_param2:
    RepeatMin (in msec.)
  • event_param3:
    RepeatMax (in msec.)
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
FriendNoBuff (16)

On friendly lost buff

  • event_type:
    SMART_EVENT_FRIENDLY_MISSING_BUFF (16)
  • event_param1:
    Spell ID
  • event_param2:
    Radius
  • event_param3:
    RepeatMin (in msec.)
  • event_param4:
    RepeatMax (in msec.)
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
Summon (17)

On creature / gameobject summoned unit

  • event_type:
    SMART_EVENT_SUMMONED_UNIT (17)
  • event_param1:
    creature entry (0: any)
  • event_param2:
    CooldownMin (in msec.)
  • event_param3:
    CooldownMax (in msec.)
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
  • 1: SMART_SCRIPT_TYPE_GAMEOBJECT
TargetManaPct ⚠️ (18)

On target mana percentage

UNUSED, DO NOT REUSE

  • event_type:
    SMART_EVENT_TARGET_MANA_PCT (18)
  • event_param1:
    ManaMin%
  • event_param2:
    ManaMax%
  • event_param3:
    RepeatMin (in msec.)
  • event_param4:
    RepeatMax (in msec.)
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
AcceptedQuest (19)

On target accepted quest

  • event_type:
    SMART_EVENT_ACCEPTED_QUEST (19)
  • event_param1:
    quest ID (0: any)
  • event_param2:
    CooldownMin (in msec.)
  • event_param3:
    CooldownMax (in msec.)
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
  • 1: SMART_SCRIPT_TYPE_GAMEOBJECT
RewardedQuest (20)

On target rewarded quest

  • event_type:
    SMART_EVENT_REWARD_QUEST (20)
  • event_param1:
    quest ID (0: any)
  • event_param2:
    CooldownMin (in msec.)
  • event_param3:
    CooldownMax (in msec.)
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
  • 1: SMART_SCRIPT_TYPE_GAMEOBJECT
ReachedHome (21)

On creature reached home position

  • event_type:
    SMART_EVENT_REACHED_HOME (21)
  • event_param1:
    0
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
ReceiveEmote (22)

On receive player emote

  • event_type:
    SMART_EVENT_RECEIVE_EMOTE (22)
  • event_param1:
    EmotesText ID
  • event_param2:
    CooldownMin (in msec.)
  • event_param3:
    CooldownMax (in msec.)
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
HasAura (23)

On creature has aura (optional: more or equal stacks to event_param2)

  • event_type:
    SMART_EVENT_HAS_AURA (23)
  • event_param1:
    Spell ID
  • event_param2:
    Stack amount
  • event_param3:
    RepeatMin (in msec.)
  • event_param4:
    RepeatMax (in msec.)
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
TargetBuffed (24)

On target buffed with spell (optional: more or equal stacks to event_param2)

  • event_type:
    SMART_EVENT_TARGET_BUFFED (24)
  • event_param1:
    Spell ID
  • event_param2:
    Stack amount
  • event_param3:
    RepeatMin (in msec.)
  • event_param4:
    RepeatMax (in msec.)
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
Reset (25)

Called after combat and when the creature respawns or spawns.

  • event_type:
    SMART_EVENT_RESET (25)
  • event_param1:
    0
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
LineOfSightIC (26)

On target in distance in combat

  • event_type:
    SMART_EVENT_IC_LOS (26)
  • event_param1:
    • 0: Hostile
    • 1: Not Hostile
    • 2: Any
  • event_param2:
    MaxRange
  • event_param3:
    CooldownMin (in msec.)
  • event_param4:
    CooldownMax (in msec.)
  • event_param5:
    • 0: Any unit
    • 1: Player only

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
PassengerEntered (27)

On player / creature entered creature (Vehicle)

  • event_type:
    SMART_EVENT_PASSENGER_BOARDED (27)
  • event_param1:
    CooldownMin (in msec.)
  • event_param2:
    CooldownMax (in msec.)
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
PassengerLeft (28)

On player / creature left creature (Vehicle)

  • event_type:
    SMART_EVENT_PASSENGER_REMOVED (28)
  • event_param1:
    CooldownMin (in msec.)
  • event_param2:
    CooldownMax (in msec.)
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
Charmed (29)

On creature charmed

  • event_type:
    SMART_EVENT_CHARMED (29)
  • event_param1:
    • 0: onApply
    • 1: onRemove
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
TargetCharmed ⚠️ (30)

On target charmed

UNUSED, DO NOT REUSE

  • event_type:
    SMART_EVENT_CHARMED_TARGET (30)
  • event_param1:
    0
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
SpellHitTarget (31)

On target spell hit

  • event_type:
    SMART_EVENT_SPELLHIT_TARGET (31)

  • event_param1:
    Spell ID

  • event_param2:
    (0: any SpellSchool)
    enum SpellSchools

    ValueFlagName
    10x01SPELL_SCHOOL_NORMAL
    20x02SPELL_SCHOOL_HOLY
    40x04SPELL_SCHOOL_FIRE
    80x08SPELL_SCHOOL_NATURE
    160x10SPELL_SCHOOL_FROST
    320x20SPELL_SCHOOL_SHADOW
    640x40SPELL_SCHOOL_ARCANE
  • event_param3:
    CooldownMin (in msec.)

  • event_param4:
    CooldownMax (in msec.)

  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
Damaged (32)

On creature damaged

  • event_type:
    SMART_EVENT_DAMAGED (32)
  • event_param1:
    MinDmg
  • event_param2:
    MaxDmg
  • event_param3:
    CooldownMin (in msec.)
  • event_param4:
    CooldownMax (in msec.)
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
DamagedTarget (33)

On target damaged

  • event_type:
    SMART_EVENT_DAMAGED_TARGET (33)
  • event_param1:
    MinDmg
  • event_param2:
    MaxDmg
  • event_param3:
    CooldownMin (in msec.)
  • event_param4:
    CooldownMax (in msec.)
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
MovementType (34)
  • event_type:
    SMART_EVENT_MOVEMENTINFORM (34)

  • event_param1:
    enum MovementGeneratorType

    IDNameIDName
    0IDLE_MOTION_TYPE10DISTRACT_MOTION_TYPE
    1RANDOM_MOTION_TYPE11ASSISTANCE_MOTION_TYPE
    2WAYPOINT_MOTION_TYPE12ASSISTANCE_DISTRACT_MOTION_TYPE
    3MAX_DB_MOTION_TYPE13TIMED_FLEEING_MOTION_TYPE
    4CONFUSED_MOTION_TYPE14FOLLOW_MOTION_TYPE
    5CHASE_MOTION_TYPE15ROTATE_MOTION_TYPE
    6HOME_MOTION_TYPE16EFFECT_MOTION_TYPE
    7FLIGHT_MOTION_TYPE17SPLINE_CHAIN_MOTION_TYPE
    8POINT_MOTION_TYPE18FORMATION_MOTION_TYPE
    9FLEEING_MOTION_TYPE19FACE_MOTION_TYPE
  • event_param2:
    PointID

  • event_param3:
    0

  • event_param4:
    0

  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
SummonDespawn (35)

On summoned unit despawned

  • event_type:
    SMART_EVENT_SUMMON_DESPAWNED (35)
  • event_param1:
    creature entry (0: any)
  • event_param2:
    CooldownMin (in msec.)
  • event_param3:
    CooldownMax (in msec.)
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
  • 1: SMART_SCRIPT_TYPE_GAMEOBJECT
CorpseRemoved (36)

On creature corpse removed

  • event_type:
    SMART_EVENT_CORPSE_REMOVED (36)
  • event_param1:
    0
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
InitSAI (37)

SmartScript::OnInitialize()

  • event_type:
    SMART_EVENT_AI_INIT (37)
  • event_param1:
    0
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
  • 1: SMART_SCRIPT_TYPE_GAMEOBJECT
DataSet (38)

On creature / gameobject data set (SMART_ACTION_SET_DATA (45))

  • event_type:
    SMART_EVENT_DATA_SET (38)
  • event_param1:
    FieldId
  • event_param2:
    Value
  • event_param3:
    CooldownMin (in msec.)
  • event_param4:
    CooldownMax (in msec.)
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
  • 1: SMART_SCRIPT_TYPE_GAMEOBJECT
WaypointStart ⚠️ (39)

On creature waypoint ID started

UNUSED, DO NOT REUSE

  • event_type:
    SMART_EVENT_WAYPOINT_START (39)
  • event_param1:
    waypoint point (0: any)
  • event_param2:
    waypoint id (0: any)
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
WaypointReached (40)

On creature waypoint ID reached

  • event_type:
    SMART_EVENT_WAYPOINT_REACHED (40)
  • event_param1:
    waypoint point (0: any)
  • event_param2:
    waypoint id (0: any)
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
Trans.AddPlayer ❌ (41)

RESERVED for master branch

  • event_type:
    SMART_EVENT_TRANSPORT_ADDPLAYER (41)
  • event_param1:
    0
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 7: SMART_SCRIPT_TYPE_TRANSPORT
Trans.AddCreatue ❌ (42)

RESERVED for master branch

  • event_type:
    SMART_EVENT_TRANSPORT_ADDCREATURE (42)
  • event_param1:
    Entry (0: any)
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 7: SMART_SCRIPT_TYPE_TRANSPORT
Trans.Rem.Player ❌ (43)

RESERVED for master branch

  • event_type:
    SMART_EVENT_TRANSPORT_REMOVE_PLAYER (43)
  • event_param1:
    0
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 7: SMART_SCRIPT_TYPE_TRANSPORT
Trans.Relocate ❌ (44)

RESERVED for master branch

  • event_type:
    SMART_EVENT_TRANSPORT_RELOCATE (44)
  • event_param1:
    PointId
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 7: SMART_SCRIPT_TYPE_TRANSPORT
PlayerEnter ❌ (45)

RESERVED for master branch

  • event_type:
    SMART_EVENT_INSTANCE_PLAYER_ENTER (45)
  • event_param1:
    Team (0: any)
  • event_param2:
    CooldownMin (in msec.)
  • event_param3:
    CooldownMax (in msec.)
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 8: SMART_SCRIPT_TYPE_INSTANCE
AreaTrigger (46)
  • event_type:
    SMART_EVENT_AREATRIGGER_ONTRIGGER (46)
  • event_param1:
    AreaTrigger ID (0: any)
    yes, same value as entryorguid
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 2: SMART_SCRIPT_TYPE_AREATRIGGER
QuestAccepted ❌ (47)

On target quest accepted

RESERVED for master branch

  • event_type:
    SMART_EVENT_QUEST_ACCEPTED (47)
  • event_param1:
    0
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 5: SMART_SCRIPT_TYPE_QUEST
QuestProgress ❌ (48)

On target quest objective completed

RESERVED for master branch

  • event_type:
    SMART_EVENT_QUEST_OBJ_COMPLETION (48)
  • event_param1:
    0
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 5: SMART_SCRIPT_TYPE_QUEST
QuestCompleted ❌ (49)

On target quest completed

RESERVED for master branch

  • event_type:
    SMART_EVENT_QUEST_COMPLETION (49)
  • event_param1:
    0
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 5: SMART_SCRIPT_TYPE_QUEST
QuestRewarded ❌ (50)

On target quest rewarded

RESERVED for master branch

  • event_type:
    SMART_EVENT_QUEST_REWARDED (50)
  • event_param1:
    0
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 5: SMART_SCRIPT_TYPE_QUEST
QuestFailed ❌ (51)

On target quest failed

RESERVED for master branch

  • event_type:
    SMART_EVENT_QUEST_FAIL (51)
  • event_param1:
    0
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 5: SMART_SCRIPT_TYPE_QUEST
TextOver (52)

On duration ended after SMART_ACTION_TALK (1)

  • event_type:
    SMART_EVENT_TEXT_OVER (52)
  • event_param1:
    text GroupId
  • event_param2:
    creature entry who talks (0: any)
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
  • 1: SMART_SCRIPT_TYPE_GAMEOBJECT
ReceivedHeal (53)

On creature received healing

  • event_type:
    SMART_EVENT_RECEIVE_HEAL (53)
  • event_param1:
    MinHeal
  • event_param2:
    MaxHeal
  • event_param3:
    CooldownMin (in msec.)
  • event_param4:
    CooldownMax (in msec.)
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
JustSummoned (54)

On creature just spawned

  • event_type:
    SMART_EVENT_JUST_SUMMONED (54)
  • event_param1:
    0
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
WaypointPaused (55)

On creature paused at waypoint ID

  • event_type:
    SMART_EVENT_WAYPOINT_PAUSED (55)
  • event_param1:
    waypoint point (0: any)
  • event_param2:
    waypoint id (0: any)
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
WaypointResumed (56)

On Creature resumed after waypoint ID

  • event_type:
    SMART_EVENT_WAYPOINT_RESUMED (56)
  • event_param1:
    waypoint point (0: any)
  • event_param2:
    waypoint id (0: any)
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
WaypointStopped (57)

On creature stopped on waypoint ID

  • event_type:
    SMART_EVENT_WAYPOINT_STOPPED (57)
  • event_param1:
    waypoint point (0: any)
  • event_param2:
    waypoint id (0: any)
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
WaypointEnded (58)

On creature waypoint path ended

  • event_type:
    SMART_EVENT_WAYPOINT_ENDED (58)
  • event_param1:
    waypoint point (0: any)
  • event_param2:
    waypoint id (0: any)
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
EventTriggered (59)

On SMART_ACTION_TRIGGER_TIMED_EVENT (73) trigger.

Note: Other ACTION_TIMED_EVENT actions create a SMART_ACTION_TRIGGER_TIMED_EVENT (73) in a roundabout way and will thus also trigger this event indirectly.

  • event_type:
    SMART_EVENT_TIMED_EVENT_TRIGGERED (59)
  • event_param1:
    id
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
  • 1: SMART_SCRIPT_TYPE_GAMEOBJECT
Update (60)

Update always

  • event_type:
    SMART_EVENT_UPDATE (60)
  • event_param1:
    InitialMin (in msec.)
  • event_param2:
    InitialMax (in msec.)
  • event_param3:
    RepeatMin (in msec.)
  • event_param4:
    RepeatMax (in msec.)
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
  • 1: SMART_SCRIPT_TYPE_GAMEOBJECT
Link (61)

requires another link to point at this entries id
Used to link together multiple events, does not use any extra resources to iterate event lists needlessly.

  • event_type:
    SMART_EVENT_LINK (61)
  • event_param1:
    0
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type
< any >

GossipSelect (62)

Player selects an option from the gossip menu.

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
  • 1: SMART_SCRIPT_TYPE_GAMEOBJECT
JustCreated (63)

On creature / gameobject first time load

  • event_type:
    SMART_EVENT_JUST_CREATED (63)
  • event_param1:
    0
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
  • 1: SMART_SCRIPT_TYPE_GAMEOBJECT
GossipHello (64)

On right click creature / gameobject that have gossip enabled

  • event_type:
    SMART_EVENT_GOSSIP_HELLO (64)
  • event_param1:
    OnReportUse (for GOs)
    • 0: onGossipHello and onReportUse (may trigger twice)
    • 1: onGossipHello only
    • 2: onReportUse only
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
  • 1: SMART_SCRIPT_TYPE_GAMEOBJECT
FollowComplete (65)

On stop following

  • event_type:
    SMART_EVENT_FOLLOW_COMPLETED (65)
  • event_param1:
    0
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
EventPhase ⚠️ (66)

On event phase mask set

UNUSED, DO NOT REUSE

  • event_type:
    SMART_EVENT_EVENT_PHASE_CHANGE (66)
  • event_param1:
    event phase mask (<= SMART_EVENT_PHASE_ALL)
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
  • 1: SMART_SCRIPT_TYPE_GAMEOBJECT
BehindTarget ⚠️ (67)

On creature is behind target

UNUSED, DO NOT REUSE

  • event_type:
    SMART_EVENT_IS_BEHIND_TARGET (67)
  • event_param1:
    CooldownMin (in msec.)
  • event_param2:
    CooldownMax (in msec.)
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
GameEventStart (68)

On game event started

  • event_type:
    SMART_EVENT_GAME_EVENT_START (68)
  • event_param1:
    game_event eventEntry
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
  • 1: SMART_SCRIPT_TYPE_GAMEOBJECT
GameEventEnd (69)

On game event ended

  • event_type:
    SMART_EVENT_GAME_EVENT_END (69)
  • event_param1:
    game_event eventEntry
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
  • 1: SMART_SCRIPT_TYPE_GAMEOBJECT
LootState (70)
  • event_type:
    SMART_EVENT_GO_LOOT_STATE_CHANGED (70)

  • event_param1:
    enum LootState

    IDNameComment
    0GO_NOT_READY
    1GO_READYcan be ready but despawned, and then not possible activate until spawn
    2GO_ACTIVATE
    3GO_JUST_DEACTIVATED
  • event_param2:
    0

  • event_param3:
    0

  • event_param4:
    0

  • event_param5:
    0

valid for source_type

  • 1: SMART_SCRIPT_TYPE_GAMEOBJECT
GOEventInform (71)

On gameobject emits event

  • event_type:
    SMART_EVENT_GO_EVENT_INFORM (71)
  • event_param1:
    eventId from gameobject template
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 1: SMART_SCRIPT_TYPE_GAMEOBJECT
ActionDone (72)

manual values or enum EventId passed by SmartAI::DoAction()

  • event_type:
    SMART_EVENT_ACTION_DONE (72)
  • event_param1:
    eventId
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
Spellclick (73)

Player clicked on spellclick enabled creature

  • event_type:
    SMART_EVENT_ON_SPELLCLICK (73)
  • event_param1:
    0
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
FriendHealthPct (74)

'friendly' determined by target_type

  • event_type:
    SMART_EVENT_FRIENDLY_HEALTH_PCT (74)
  • event_param1:
    minHpPct
  • event_param2:
    maxHpPct
  • event_param3:
    RepeatMin (in msec.)
  • event_param4:
    RepeatMax (in msec.)
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
DistanceNPC (75)

On creature guid OR any instance of creature entry is within distance

  • event_type:
    SMART_EVENT_DISTANCE_CREATURE (75)
  • event_param1:
    creature guid
  • event_param2:
    creature entry
  • event_param3:
    distance
  • event_param4:
    repeat (in msec.)
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
DistanceGO (76)

On gameobject guid OR any instance of gameobject entry is within distance

  • event_type:
    SMART_EVENT_DISTANCE_GAMEOBJECT (76)
  • event_param1:
    gameobject guid
  • event_param2:
    gameobject entry
  • event_param3:
    distance
  • event_param4:
    repeat (in msec.)
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
CounterSet (77)

after SMART_ACTION_SET_COUNTER (63), check if quantity of counterId is equal to value

  • event_type:
    SMART_EVENT_COUNTER_SET (77)
  • event_param1:
    counterId
  • event_param2:
    value
  • event_param3:
    CooldownMin (in msec.)
  • event_param4:
    CooldownMax (in msec.)
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
  • 1: SMART_SCRIPT_TYPE_GAMEOBJECT
SceneStart ❌ (78)

RESERVED for master branch

  • event_type:
    SMART_EVENT_SCENE_START (78)
  • event_param1:
    0
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
SceneTrigger ❌ (79)

RESERVED for master branch

  • event_type:
    SMART_EVENT_SCENE_TRIGGER (79)
  • event_param1:
    0
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
SceneCancel ❌ (80)

RESERVED for master branch

  • event_type:
    SMART_EVENT_SCENE_CANCEL (80)
  • event_param1:
    0
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
SceneComplete ❌ (81)

RESERVED for master branch

  • event_type:
    SMART_EVENT_SCENE_COMPLETE (81)
  • event_param1:
    0
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
SummonDies (82)
  • event_type:
    SMART_EVENT_SUMMONED_UNIT_DIES (82)
  • event_param1:
    creature entry (0: any)
  • event_param2:
    CooldownMin (in msec.)
  • event_param3:
    CooldownMax (in msec.)
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
  • 1: SMART_SCRIPT_TYPE_GAMEOBJECT
SpellCast (83)

on Spell::cast

  • event_type:
    SMART_EVENT_ON_SPELL_CAST (83)
  • event_param1:
    Spell ID
  • event_param2:
    CooldownMin (in msec.)
  • event_param3:
    CooldownMax (in msec.)
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
SpellFailed (84)

on Unit::InterruptSpell

  • event_type:
    SMART_EVENT_ON_SPELL_FAILED (84)
  • event_param1:
    Spell ID
  • event_param2:
    CooldownMin (in msec.)
  • event_param3:
    CooldownMax (in msec.)
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
SpellStart (85)

on Spell::prapare

  • event_type:
    SMART_EVENT_ON_SPELL_START (85)
  • event_param1:
    Spell ID
  • event_param2:
    CooldownMin (in msec.)
  • event_param3:
    CooldownMax (in msec.)
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
Despawn (86)

On before creature removed

  • event_type:
    SMART_EVENT_ON_DESPAWN (86)
  • event_param1:
    0
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
SendEventTrigger ⚠️ (87)

UNUSED NEEDS CHERRYPICK

  • event_type:
    SMART_EVENT_SEND_EVENT_TRIGGER (87)
  • event_param1:
    0
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0
AreatriggerExit ❌ (88)

don't use on 3.3.5a

  • event_type:
    SMART_EVENT_AREATRIGGER_EXIT (88)
  • event_param1:
    0
  • event_param2:
    0
  • event_param3:
    0
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 2: SMART_SCRIPT_TYPE_AREATRIGGER
AuraApplied (89)

On aura applied

  • event_type:
    SMART_EVENT_ON_AURA_APPLIED (89)
  • event_param1:
    Spell ID
  • event_param2:
    CooldownMin (in msec.)
  • event_param3:
    CooldownMax (in msec.)
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE
AuraRemoved (90)

On aura removed

  • event_type:
    SMART_EVENT_ON_AURA_REMOVED (90)
  • event_param1:
    Spell ID
  • event_param2:
    CooldownMin (in msec.)
  • event_param3:
    CooldownMax (in msec.)
  • event_param4:
    0
  • event_param5:
    0

valid for source_type

  • 0: SMART_SCRIPT_TYPE_CREATURE

 

event_phase_mask ​

When dealing with phases, phase IDs have to be used. There are 13 (12+1) different phases: 1, 2, ... 12 and the default 0.

Example: The script is in phase 0 by default - If we want it to go to phase 1, we got two choices:
    SMART_ACTION_INC_PHASE by 1 or SMART_ACTION_SET_PHASE 1

If the script is in phase 0 and want to skip to phase 2:
    SMART_ACTION_INC_PHASE by 2 or SMART_ACTION_SET_PHASE 2

If the script is in phase 1 and want to skip to phase 2:
    SMART_ACTION_INC_PHASE by 1 or SMART_ACTION_SET_PHASE 2
 

ValueFlagNameComment
00x0000SMART_EVENT_PHASE_ALWAYSMeans all phases (1 ... 12)
10x0001SMART_EVENT_PHASE_1
20x0002SMART_EVENT_PHASE_2
40x0004SMART_EVENT_PHASE_3
80x0008SMART_EVENT_PHASE_4
160x0010SMART_EVENT_PHASE_5
320x0020SMART_EVENT_PHASE_6
640x0040SMART_EVENT_PHASE_7
1280x0080SMART_EVENT_PHASE_8
2560x0100SMART_EVENT_PHASE_9
5120x0200SMART_EVENT_PHASE_10
10240x0400SMART_EVENT_PHASE_11
20480x0800SMART_EVENT_PHASE_12

 

event_chance ​

This is the probability of the event to occur as a percentage from 0-100. So, if you want the event to occur roughly half of the time, then set this to 50.
 

event_flags ​

Sets if the event should not repeat or should only happen in a given instance/dungeon difficulty (if applicable):

ValueFlagNameComment
10x0001SMART_EVENT_FLAG_NOT_REPEATABLEEvent can not repeat
20x0002SMART_EVENT_FLAG_DIFFICULTY_0Event only occurs in instance difficulty 0
40x0004SMART_EVENT_FLAG_DIFFICULTY_1Event only occurs in instance difficulty 1
80x0008SMART_EVENT_FLAG_DIFFICULTY_2Event only occurs in instance difficulty 2
160x0010SMART_EVENT_FLAG_DIFFICULTY_3Event only occurs in instance difficulty 3
1280x0080SMART_EVENT_FLAG_DEBUG_ONLYEvent only occurs in debug build
2560x0100SMART_EVENT_FLAG_DONT_RESETEvent will not reset in SmartScript::OnReset()
5120x0200SMART_EVENT_FLAG_WHILE_CHARMEDEvent occurs even if AI owner is charmed

 

action ​

None (0)

No action.

  • action_type:
    SMART_ACTION_NONE (0)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
Talk (1)

Display a creature text entry.

Note: SMART_EVENT_TEXT_OVER (52) is triggered.

  • action_type:
    SMART_ACTION_TALK (1)
  • action_param1:
    text GroupID
  • action_param2:
    duration (in msec.)
  • action_param3:
    useTalkTarget: only considered for creature targets
    • 0: target talks to invoker
    • 1: creature talks to target
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetFaction (2)

Sets faction of target creatures.

  • action_type:
    SMART_ACTION_SET_FACTION (2)
  • action_param1:
    FactionTemplate ID (0: default)
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
Morph (3)

Target creatures take on another appearance.

Note: creature entry takes precedence over DisplayID. If both are 0, the original appearance is restored.

  • action_type:
    SMART_ACTION_MORPH_TO_ENTRY_OR_MODEL (3)
  • action_param1:
    creature entry
  • action_param2:
    modelInfo DisplayID
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
Sound (4)

Target units play a sound entry.

  • action_type:
    SMART_ACTION_SOUND (4)
  • action_param1:
    SoundEntry ID
  • action_param2:
    onlySelf
    • 0: heard by all players in visibility range
    • 1: heard by invoking player
  • action_param3:
    distanceSound
    • 0: uses WorldObject::PlayDirectSound()
    • 1: uses WorldObject::PlayDistanceSound()
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
PlayEmote (5)

Plays an emote as oneshot.

  • action_type:
    SMART_ACTION_PLAY_EMOTE (5)
  • action_param1:
    Emote ID
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
FailQuest (6)

Fail quest for target players.

  • action_type:
    SMART_ACTION_FAIL_QUEST (6)
  • action_param1:
    quest ID
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
OfferQuest (7)

Offer quest to target players.

  • action_type:
    SMART_ACTION_OFFER_QUEST (7)
  • action_param1:
    quest ID
  • action_param2:
    directAdd:
    • 0: offer quest
    • 1: add quest to log
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetReactState (8)

Makes the target react passive, defensive or aggressive.

  • action_type:
    SMART_ACTION_SET_REACT_STATE (8)

  • action_param1:
    enum ReactStates

    IDNameComment
    0REACT_PASSIVEDoes not defend or attack at all. Does nothing.
    1REACT_DEFENSIVEOnly attacks back when attacked.
    2REACT_AGGRESSIVEWill attack if on threat list and in threat radius. (default)
  • action_param2:
    0

  • action_param3:
    0

  • action_param4:
    0

  • action_param5:
    0

  • action_param6:
    0

ActivateObject (9)

Set target gameobjects as active. This opens a door or makes a container lootable.

  • action_type:
    SMART_ACTION_ACTIVATE_GOBJECT (9)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
PlayRandomEmote (10)

Play random emote.

Note: An action_param of 0 is skipped and not interpreted as emote: ONESHOT_NONE (0).

CastSpell (11)

Cast spell at targets.

  • action_type:
    SMART_ACTION_CAST (11)

  • action_param1:
    Spell ID

  • action_param2:
    enum SmartCastFlags

    ValueFlagNameComment
    10x01SMARTCAST_INTERRUPT_PREVIOUSInterrupt any spell casting
    20x02SMARTCAST_TRIGGEREDTriggered (this makes spell cost zero mana and have no cast time)
    40x04❌ SMARTCAST_FORCE_CASTForces cast even if creature is out of mana or out of range
    80x08❌ SMARTCAST_NO_MELEE_IF_OOMPrevents creature from entering melee if out of mana or out of range
    160x10❌ SMARTCAST_FORCE_TARGET_SELFForces the target to cast this spell on itself
    320x20SMARTCAST_AURA_NOT_PRESENTOnly casts the spell if the target does not have an aura from the spell
    640x40SMARTCAST_COMBAT_MOVEPrevents combat movement if cast successful. Allows movement on range, OOM, LOS
  • action_param3:
    enum TriggerCastFlags

    ValueFlagNameComment
    10x00000001TRIGGERED_IGNORE_GCDWill ignore GCD
    20x00000002TRIGGERED_IGNORE_SPELL_AND_CATEGORY_CDWill ignore Spell and Category cooldowns
    40x00000004TRIGGERED_IGNORE_POWER_AND_REAGENT_COSTWill ignore power and reagent cost
    80x00000008TRIGGERED_IGNORE_CAST_ITEMWill not take away cast item or update related achievement criteria
    160x00000010TRIGGERED_IGNORE_AURA_SCALINGWill ignore aura scaling
    320x00000020TRIGGERED_IGNORE_CAST_IN_PROGRESSWill not check if a current cast is in progress
    640x00000040TRIGGERED_IGNORE_COMBO_POINTSWill ignore combo point requirement
    1280x00000080TRIGGERED_CAST_DIRECTLYIn Spell::prepare, will be cast directly without setting containers for executed spell
    2560x00000100TRIGGERED_IGNORE_AURA_INTERRUPT_FLAGSWill ignore interruptible aura's at cast
    5120x00000200TRIGGERED_IGNORE_SET_FACINGWill not adjust facing to target (if any)
    10240x00000400TRIGGERED_IGNORE_SHAPESHIFTWill ignore shapeshift checks
    20480x00000800TRIGGERED_IGNORE_CASTER_AURASTATEWill ignore caster aura states including combat requirements and death state
    40960x00001000TRIGGERED_DISALLOW_PROC_EVENTSDisallows proc events from triggered spell (default)
    81920x00002000TRIGGERED_IGNORE_CASTER_MOUNTED_OR_ON_VEHICLEWill ignore mounted/on vehicle restrictions
    655360x00010000TRIGGERED_IGNORE_CASTER_AURASWill ignore caster aura restrictions or requirements
    1310720x00020000TRIGGERED_DONT_RESET_PERIODIC_TIMERWill allow periodic aura timers to keep ticking (instead of resetting)
    2621440x00040000TRIGGERED_DONT_REPORT_CAST_ERRORWill return SPELL_FAILED_DONT_REPORT in CheckCast functions
    5242880x00080000TRIGGERED_IGNORE_EQUIPPED_ITEM_REQUIREMENTWill ignore equipped item requirements
  • action_param4:
    0

  • action_param5:
    0

  • action_param6:
    0

SummonNPC (12)

Summon NPC

  • action_type:
    SMART_ACTION_SUMMON_CREATURE (12)

  • action_param1:
    creature entry

  • action_param2:
    enum TempSummonType

    IDNameComment
    1TEMPSUMMON_TIMED_OR_DEAD_DESPAWNdespawns after a specified time OR when the creature disappears
    2TEMPSUMMON_TIMED_OR_CORPSE_DESPAWNdespawns after a specified time OR when the creature dies
    3TEMPSUMMON_TIMED_DESPAWNdespawns after a specified time
    4TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBATdespawns after a specified time after the creature is out of combat
    5TEMPSUMMON_CORPSE_DESPAWNdespawns instantly after death
    6TEMPSUMMON_CORPSE_TIMED_DESPAWNdespawns after a specified time after death
    7TEMPSUMMON_DEAD_DESPAWNdespawns when the creature disappears
    8TEMPSUMMON_MANUAL_DESPAWNdespawns when UnSummon() is called
  • action_param3:
    duration in ms

  • action_param4:
    attackInvoker? (0/1)

  • action_param5:
    SmartActionSummonCreatureFlags:

    • 0x1: PersonalSpawn (only visible to summoner)
    • 0x2: PreferUnit (.. as summoner)
  • action_param6:
    0

ThreatPctSingle (13)

Change own threat percentage against target units.

  • action_type:
    SMART_ACTION_THREAT_SINGLE_PCT (13)
  • action_param1:
    Threat% increase
  • action_param2:
    Threat% decrease
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
ThreatPctAll (14)

Change own threat percentage against all units engaged with this creature.

  • action_type:
    SMART_ACTION_THREAT_ALL_PCT (14)
  • action_param1:
    Threat% increase
  • action_param2:
    Threat% decrease
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
ExploreEvent (15)

Satisfy exploration requirement for quest for target players.

  • action_type:
    SMART_ACTION_CALL_AREAEXPLOREDOREVENTHAPPENS (15)
  • action_param1:
    QuestID
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
Reserved16 ❌ (16)

used on 4.3.4 and higher scripts

  • action_type:
    SMART_ACTION_RESERVED_16 (16)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
PlayEmoteState (17)

Play Emote Continuously. Useful for displaying activity on a NPC (fishing, working, etc.)

  • action_type:
    SMART_ACTION_SET_EMOTE_STATE (17)
  • action_param1:
    Emote ID
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetUnitFlags ⚠️ (18)

Set multiple flags at once

UNUSED, DO NOT REUSE

  • action_type:
    SMART_ACTION_SET_UNIT_FLAG (18)
  • action_param1:
    flags
  • action_param2:
    • 0: set unit_flags
    • 1: set unit_flags2
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
UnsetUnitFlags ⚠️ (19)

Remove multiple flags at once

UNUSED, DO NOT REUSE

  • action_type:
    SMART_ACTION_REMOVE_UNIT_FLAG (19)
  • action_param1:
    flags
  • action_param2:
    • 0: unset unit_flags
    • 1: unset unit_flags2
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
AutoAttack (20)

Set if creature can auto attack.

  • action_type:
    SMART_ACTION_AUTO_ATTACK (20)
  • action_param1:
    allowAttack
    • 0: no and stop if currently auto attacking
    • 1: yes
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
CombatMovement (21)

Set if creature can move during combat.

  • action_type:
    SMART_ACTION_ALLOW_COMBAT_MOVEMENT (21)
  • action_param1:
    allowMovement? (0/1)
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetEventPhase (22)

Set own event phase. (see event_phase_mask)

  • action_type:
    SMART_ACTION_SET_EVENT_PHASE (22)
  • action_param1:
    phase
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
IncEventPhase (23)

Increment or decrement own event phase. (see event_phase_mask)

Note: only set increment OR decrement, not both.

  • action_type:
    SMART_ACTION_INC_EVENT_PHASE (23)
  • action_param1:
    increment
  • action_param2:
    decrement
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
EnterEvadeMode (24)

This creature enters evade mode.

Note: SMART_EVENT_EVADE (7) is triggered.

  • action_type:
    SMART_ACTION_EVADE (24)
  • action_param1:
    • 0: to respawn pos.
    • 1: to last stored home pos.
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
FleeForAssist (25)

This creature walks towards nearest ally.

  • action_type:
    SMART_ACTION_FLEE_FOR_ASSIST (25)
  • action_param1:
    withEmote
    • 0: - nothing -
    • 1: %s attempts to run away in fear
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
ExploreEventParty (26)

Like SMART_ACTION_CALL_AREAEXPLOREDOREVENTHAPPENS (15) but for the whole party.

  • action_type:
    SMART_ACTION_CALL_GROUPEVENTHAPPENS (26)
  • action_param1:
    quest ID
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
CombatStop (27)

Creature disengages combat.

  • action_type:
    SMART_ACTION_COMBAT_STOP (27)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
RemoveAura (28)

Removes any or all auras from targets.
An action_param1 = 0 will always remove all auras regardless of other parameters.

  • action_type:
    SMART_ACTION_REMOVEAURASFROMSPELL (28)
  • action_param1:
    Spell ID (0: all auras)
  • action_param2:
    charges (0: all charges)
  • action_param3:
    onlyOwned? (0/1)
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
Follow (29)

Creature starts to follow target at distance and angle. Optional quest credit is rewarded upon StopFollow.

  • action_type:
    SMART_ACTION_FOLLOW (29)
  • action_param1:
    distance (0: default)
  • action_param2:
    angle (0: default)
  • action_param3:
    Following ends when reaching creature entry
  • action_param4:
    creature entry or quest ID, depending on action_param5
  • action_param5:
    creditType:
    • 0: creature kill
    • 1: exploration event
  • action_param6:
    0
RandEventPhase (30)

Set own event phase to random phase from action_param. (see event_phase_mask)

Note: An action_param of 0 is skipped and not interpreted as SMART_EVENT_PHASE_ALWAYS (0)

  • action_type:
    SMART_ACTION_RANDOM_PHASE (30)
  • action_param1:
    Phase1
  • action_param2:
    Phase2
  • action_param3:
    Phase3
  • action_param4:
    Phase4
  • action_param5:
    Phase5
  • action_param6:
    Phase6
RangeEventPhase (31)

Set own event phase to phase in within given range. (see event_phase_mask)

  • action_type:
    SMART_ACTION_RANDOM_PHASE_RANGE (31)
  • action_param1:
    PhaseMin
  • action_param2:
    PhaseMax
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
ResetObject (32)

Resets active target gameobjects.

  • action_type:
    SMART_ACTION_RESET_GOBJECT (32)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
KillCredit (33)

Credits a creature kill to satisfy quest RequiredNpcOrGo requirements to target players.

Note: If target is SMART_TARGET_NONE (0) or SMART_TARGET_SELF (1), the kill is credited to all players eligible for loot from this creature.

  • action_type:
    SMART_ACTION_CALL_KILLEDMONSTER (33)
  • action_param1:
    creature entry
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetInstanceData (34)

Store data in scripted instance this entity is located in.

  • action_type:
    SMART_ACTION_SET_INST_DATA (34)

  • action_param1:
    field

    • type = 0: fieldId
    • type = 1: bossId
  • action_param2:
    data

    • type = 0: arbitrary data
    • type = 1: enum EncounterState
      ValueName
      0NOT_STARTED
      1IN_PROGRESS
      2FAIL
      3DONE
      4SPECIAL
      5TO_BE_DECIDED
  • action_param3:
    type:

    • 0: SetData
    • 1: SetBossState
  • action_param4:
    0

  • action_param5:
    0

  • action_param6:
    0

SetInstanceData64 (35)

Store target's guid in scripted instance this entity is located in.

  • action_type:
    SMART_ACTION_SET_INST_DATA64 (35)
  • action_param1:
    fieldId
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
UpdateTemplate (36)

Updates creature template of target creature to given entry.
Can set level from given creature entry.

  • action_type:
    SMART_ACTION_UPDATE_TEMPLATE (36)
  • action_param1:
    creature entry
  • action_param2:
    updateLevel? (0/1)
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
Die (37)

Creature suicides.

  • action_type:
    SMART_ACTION_DIE (37)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetInCombat (38)

Creature engages all players in instanced map.

  • action_type:
    SMART_ACTION_SET_IN_COMBAT_WITH_ZONE (38)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
CallForHelp (39)

Allies in range start assisting creature. Must be in combat.

  • action_type:
    SMART_ACTION_CALL_FOR_HELP (39)
  • action_param1:
    range
  • action_param2:
    withEmote
    • 0: - nothing -
    • 1: %s calls for help!
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetSheath (40)

Creature draws or puts away it's weapon.

  • action_type:
    SMART_ACTION_SET_SHEATH (40)

  • action_param1:
    enum SheathState

    ValueNameComment
    0SHEATH_STATE_UNARMEDnon prepared weapon
    1SHEATH_STATE_MELEEprepared melee weapon
    2SHEATH_STATE_RANGEDprepared ranged weapon
  • action_param2:
    0

  • action_param3:
    0

  • action_param4:
    0

  • action_param5:
    0

  • action_param6:
    0

ForceDespawn (41)

Despawns target creatures / gameobjects.

  • action_type:
    SMART_ACTION_FORCE_DESPAWN (41)
  • action_param1:
    despawnDelay (in msec.)
  • action_param2:
    forceRespawnTimer (in sec.) (0: default respawn)
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetInvincibleHP (42)

Target creatures become damage immune below HP threshold.

Note: Percent value takes precedence over flat value.

  • action_type:
    SMART_ACTION_SET_INVINCIBILITY_HP_LEVEL (42)
  • action_param1:
    flat HP
  • action_param2:
    percent HP (0 – 100)
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
Mount (43)

Target creatures mount / dismount.

Note: creature entry takes precedence over DisplayID. If both are 0 the target dismounts.

  • action_type:
    SMART_ACTION_MOUNT_TO_ENTRY_OR_MODEL (43)
  • action_param1:
    creature entry
  • action_param2:
    modelInfo DisplayID
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetGamePhase (44)

Set visibility phase mask of all targets.

  • action_type:
    SMART_ACTION_SET_INGAME_PHASE_MASK (44)
  • action_param1:
    phaseMask
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetData (45)

Store data in fieldId in AI enabled targets.

  • action_type:
    SMART_ACTION_SET_DATA (45)
  • action_param1:
    fieldId
  • action_param2:
    data
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
AttackStop (46)

Target creatures stop melee, spell casting during combat and victim chasing.

  • action_type:
    SMART_ACTION_ATTACK_STOP (46)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetVisibility (47)

Set visibility of unit targets.

  • action_type:
    SMART_ACTION_SET_VISIBILITY (47)
  • action_param1:
    visible? (0/1)
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetActive (48)

Enables/disables grid active for targets. (They update without a player being present)

  • action_type:
    SMART_ACTION_SET_ACTIVE (48)
  • action_param1:
    active? (0/1)
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
AttackStart (49)

Creature starts attacking random target.

  • action_type:
    SMART_ACTION_ATTACK_START (49)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SummonObject (50)

Spawns Gameobject, use target_type to set spawn position.

  • action_type:
    SMART_ACTION_SUMMON_GO (50)

  • action_param1:
    gameobject entry

  • action_param2:
    despawnTime (in sec.)

  • action_param3:
    enum GOSummonType

    IDNameComment
    0GO_SUMMON_TIMED_OR_CORPSE_DESPAWNdespawns after a specified time OR when the summoner dies
    1GO_SUMMON_TIMED_DESPAWNdespawns after a specified time
  • action_param4:
    0

  • action_param5:
    0

  • action_param6:
    0

KillUnit (51)

Forces targets to suicide.

  • action_type:
    SMART_ACTION_KILL_UNIT (51)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
ActivateTaxi (52)

Sends target player to flight path.

Note: The player must not be in combat, stunned or rooted.

  • action_type:
    SMART_ACTION_ACTIVATE_TAXI (52)
  • action_param1:
    TaxiPath ID
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
WaypointStart (53)

Creature starts Waypoint Movement. Use waypoint_data table to create movement.

  • action_type:
    SMART_ACTION_WP_START (53)
  • action_param1:
    run? (0/1)
  • action_param2:
    waypoint id
  • action_param3:
    canRepeat? (0/1)
  • action_param4:
    Binds creature to quest ID. It's objective is satisfied when the last waypoint is reached and failed when the creature is killed or the player is out of range.
  • action_param5:
    despawntime (in msec.)
  • action_param6:
    0
WaypointPause (54)

Creature pauses its Waypoint Movement for given time.

  • action_type:
    SMART_ACTION_WP_PAUSE (54)
  • action_param1:
    time (in msec.)
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
WaypointStop (55)

Creature stops its Waypoint Movement.

  • action_type:
    SMART_ACTION_WP_STOP (55)

  • action_param1:
    despawnTime (in msec.)

  • action_param2:
    quest ID

  • action_param3:
    failQuest?

    • 0: quest objective is satisfied
    • 1: quest fails

    Quest must be set in action_param2 or by SMART_ACTION_WP_START (53)

  • action_param4:
    0

  • action_param5:
    0

  • action_param6:
    0

AddItem (56)

Adds count of item to target players.

  • action_type:
    SMART_ACTION_ADD_ITEM (56)
  • action_param1:
    item entry
  • action_param2:
    count
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
RemoveItem (57)

Removes count of item from target players.

  • action_type:
    SMART_ACTION_REMOVE_ITEM (57)
  • action_param1:
    item entry
  • action_param2:
    count
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
UseAITemplate ⚠️ (58)

UNUSED, DO NOT REUSE

  • action_type:
    SMART_ACTION_INSTALL_AI_TEMPLATE (58)
  • action_param1:
    AITemplateID
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetRun (59)

Set if creature can run or must walk.

  • action_type:
    SMART_ACTION_SET_RUN (59)
  • action_param1:
    enable? (0/1)
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
DisableGravity (60)

Enable/disable smooth aerial movement for creature.

Note: Only works for creatures with INHABIT_AIR (4).

  • action_type:
    SMART_ACTION_SET_DISABLE_GRAVITY (60)
  • action_param1:
    disable
    • 0: gravity is disabled
    • 1: gravity is enabled
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetSwim ⚠️ (61)

UNUSED, DO NOT REUSE

  • action_type:
    SMART_ACTION_SET_SWIM (61)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
Teleport (62)

Teleport targets to World Position set in the same target definition.

  • action_type:
    SMART_ACTION_TELEPORT (62)
  • action_param1:
    Map ID
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetCounter (63)

Store value in counterId in SAI enabled targets.

Note: SMART_EVENT_COUNTER_SET (77) is triggered.

  • action_type:
    SMART_ACTION_SET_COUNTER (63)
  • action_param1:
    counterID
  • action_param2:
    value
  • action_param3:
    reset
    • 0: add value to counter
    • 1: set counter to value
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
StoreTargets (64)

Store selected targets in varID for later use.

  • action_type:
    SMART_ACTION_STORE_TARGET_LIST (64)
  • action_param1:
    varID
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
WaypointResume (65)

Creature continues paused Waypoint Movement.

  • action_type:
    SMART_ACTION_WP_RESUME (65)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetOrientation (66)

Creature turns in a given direction, depending on target_type.

  • SMART_TARGET_SELF (1):

    • orientation of Home Position
  • SMART_TARGET_POSITION (8):

    • target_o value
  • < other target selectors >:

    • set to face selected target
       
  • action_type:
    SMART_ACTION_SET_ORIENTATION (66)

  • action_param1:
    0

  • action_param2:
    0

  • action_param3:
    0

  • action_param4:
    0

  • action_param5:
    0

  • action_param6:
    0

NewTimedEvent (67)

Similar to SMART_ACTION_TRIGGER_TIMED_EVENT (73) but delayed and optionally repeatable.

Note: SMART_EVENT_TIMED_EVENT_TRIGGERED (77) will be triggered.

  • action_type:
    SMART_ACTION_CREATE_TIMED_EVENT (67)
  • action_param1:
    id
  • action_param2:
    InitialMin (in msec.)
  • action_param3:
    InitialMax (in msec.)
  • action_param4:
    RepeatMin (0: no repeat; in msec.)
  • action_param5:
    RepeatMax (0: no repeat; in msec.)
  • action_param6:
    chance (0: 100%)
PlayMovie (68)

Play movie for target players.

  • action_type:
    SMART_ACTION_PLAYMOVIE (68)
  • action_param1:
    MovieID
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
MoveToPos (69)

Move to target Entity or target World Position.

Note: SMART_EVENT_MOVEMENTINFORM (34) is triggered.

  • action_type:
    SMART_ACTION_MOVE_TO_POS (69)
  • action_param1:
    PointID
  • action_param2:
    onTransport? (0/1)
  • action_param3:
    noPathfinding? (0/1)
  • action_param4:
    ContactDistance
  • action_param5:
    0
  • action_param6:
    0
EnableTmpObject (70)

Enable target Gameobjects, not spawned by default.

  • action_type:
    SMART_ACTION_ENABLE_TEMP_GOBJ (70)
  • action_param1:
    respawn time (in sec.)
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
EquipItem (71)

Set equipment on target creatures.
Slots 1 – 3 item entries are only used if no equipment ID is set.

  • action_type:
    SMART_ACTION_EQUIP (71)
  • action_param1:
    equipment ID
  • action_param2:
    slotmask (0: 0x7)
    Only slots matching the slotmask are equipped.
  • action_param3:
    right hand slot (1) item entry
  • action_param4:
    left hand slot (2) item entry
  • action_param5:
    ranged slot (3) item entry
  • action_param6:
    0
CloseGossip (72)

Closes open gossip window.

  • action_type:
    SMART_ACTION_CLOSE_GOSSIP (72)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
TriggerTimedEvent (73)

Note: SMART_EVENT_TIMED_EVENT_TRIGGERED (77) is triggered.

  • action_type:
    SMART_ACTION_TRIGGER_TIMED_EVENT (73)
  • action_param1:
    id
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
RemoveTimedEvent (74)

Delete scheduled Timed Event with id.

  • action_type:
    SMART_ACTION_REMOVE_TIMED_EVENT (74)
  • action_param1:
    id
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
AddAura ⚠️ (75)

Add aura to target units.

UNUSED, DO NOT REUSE

  • action_type:
    SMART_ACTION_ADD_AURA (75)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
OverrideScript ⚠️ (76)

UNUSED, DO NOT REUSE

  • action_type:
    SMART_ACTION_OVERRIDE_SCRIPT_BASE_OBJECT (76)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
ResetScript ⚠️ (77)

UNUSED, DO NOT REUSE

  • action_type:
    SMART_ACTION_RESET_SCRIPT_BASE_OBJECT (77)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
ScriptReset (78)

Reset this creature / gameobject.

Note: SMART_EVENT_RESET (25) is triggered.

  • action_type:
    SMART_ACTION_CALL_SCRIPT_RESET (78)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetRangedMove (79)

Sets attack distance and angle for SAI enabled target creatures currenctly in combat.

  • action_type:
    SMART_ACTION_SET_RANGED_MOVEMENT (79)
  • action_param1:
    attackDistance
  • action_param2:
    attackAngle
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
StartTimedAction (80)

Start TimedActionList on SAI enabled targets.

  • action_type:
    SMART_ACTION_CALL_TIMED_ACTIONLIST (80)
  • action_param1:
    entryorguid
  • action_param2:
    updateType
    • 0: out of combat
    • 1: in combat
    • 2: always
  • action_param3:
    allowOverride? (0/1)
    Determines if an already active TimedActionList can be overridden.
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetNpcFlag (81)

Replace npcflags on target creature.

  • action_type:
    SMART_ACTION_SET_NPC_FLAG (81)
  • action_param1:
    creature npcflag
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
AddNpcFlag (82)

Add npcflags to target creatures.

  • action_type:
    SMART_ACTION_ADD_NPC_FLAG (82)
  • action_param1:
    creature npcflag
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
RemoveNpcFlag (83)

Remove npcflags from target creatures.

  • action_type:
    SMART_ACTION_REMOVE_NPC_FLAG (83)
  • action_param1:
    creature npcflag
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SimpleTalk (84)

Target units will say the text.

Note: SMART_EVENT_TEXT_OVER (52) is not triggered.

  • action_type:
    SMART_ACTION_SIMPLE_TALK (84)
  • action_param1:
    text groupID
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SelfCastSpell (85)

The targets will cast the spell on themselves.

  • action_type:
    SMART_ACTION_SELF_CAST (85)

  • action_param1:
    Spell ID

  • action_param2:
    enum SmartCastFlags

    ValueFlagNameComment
    10x01SMARTCAST_INTERRUPT_PREVIOUSInterrupt any spell casting
    20x02SMARTCAST_TRIGGEREDTriggered (this makes spell cost zero mana and have no cast time)
    40x04❌ SMARTCAST_FORCE_CASTForces cast even if creature is out of mana or out of range
    80x08❌ SMARTCAST_NO_MELEE_IF_OOMPrevents creature from entering melee if out of mana or out of range
    160x10❌ SMARTCAST_FORCE_TARGET_SELFForces the target to cast this spell on itself
    320x20SMARTCAST_AURA_NOT_PRESENTOnly casts the spell if the target does not have an aura from the spell
    640x40SMARTCAST_COMBAT_MOVEPrevents combat movement if cast successful. Allows movement on range, OOM, LOS
  • action_param3:
    enum TriggerCastFlags

    ValueFlagNameComment
    10x00000001TRIGGERED_IGNORE_GCDWill ignore GCD
    20x00000002TRIGGERED_IGNORE_SPELL_AND_CATEGORY_CDWill ignore Spell and Category cooldowns
    40x00000004TRIGGERED_IGNORE_POWER_AND_REAGENT_COSTWill ignore power and reagent cost
    80x00000008TRIGGERED_IGNORE_CAST_ITEMWill not take away cast item or update related achievement criteria
    160x00000010TRIGGERED_IGNORE_AURA_SCALINGWill ignore aura scaling
    320x00000020TRIGGERED_IGNORE_CAST_IN_PROGRESSWill not check if a current cast is in progress
    640x00000040TRIGGERED_IGNORE_COMBO_POINTSWill ignore combo point requirement
    1280x00000080TRIGGERED_CAST_DIRECTLYIn Spell::prepare, will be cast directly without setting containers for executed spell
    2560x00000100TRIGGERED_IGNORE_AURA_INTERRUPT_FLAGSWill ignore interruptible aura's at cast
    5120x00000200TRIGGERED_IGNORE_SET_FACINGWill not adjust facing to target (if any)
    10240x00000400TRIGGERED_IGNORE_SHAPESHIFTWill ignore shapeshift checks
    20480x00000800TRIGGERED_IGNORE_CASTER_AURASTATEWill ignore caster aura states including combat requirements and death state
    40960x00001000TRIGGERED_DISALLOW_PROC_EVENTSDisallows proc events from triggered spell (default)
    81920x00002000TRIGGERED_IGNORE_CASTER_MOUNTED_OR_ON_VEHICLEWill ignore mounted/on vehicle restrictions
    655360x00010000TRIGGERED_IGNORE_CASTER_AURASWill ignore caster aura restrictions or requirements
    1310720x00020000TRIGGERED_DONT_RESET_PERIODIC_TIMERWill allow periodic aura timers to keep ticking (instead of resetting)
    2621440x00040000TRIGGERED_DONT_REPORT_CAST_ERRORWill return SPELL_FAILED_DONT_REPORT in CheckCast functions
    5242880x00080000TRIGGERED_IGNORE_EQUIPPED_ITEM_REQUIREMENTWill ignore equipped item requirements
  • action_param4:
    maxTargets (0: all targets)

  • action_param5:
    0

  • action_param6:
    0

CrossCastSpell (86)

CasterTarget will cast Spell ID on all (regular) targets.

Use with caution when targeting multiple * multiple units.

  • action_type:
    SMART_ACTION_CROSS_CAST (86)

  • action_param1:
    Spell ID

  • action_param2:
    enum SmartCastFlags

    ValueFlagNameComment
    10x01SMARTCAST_INTERRUPT_PREVIOUSInterrupt any spell casting
    20x02SMARTCAST_TRIGGEREDTriggered (this makes spell cost zero mana and have no cast time)
    40x04❌ SMARTCAST_FORCE_CASTForces cast even if creature is out of mana or out of range
    80x08❌ SMARTCAST_NO_MELEE_IF_OOMPrevents creature from entering melee if out of mana or out of range
    160x10❌ SMARTCAST_FORCE_TARGET_SELFForces the target to cast this spell on itself
    320x20SMARTCAST_AURA_NOT_PRESENTOnly casts the spell if the target does not have an aura from the spell
    640x40SMARTCAST_COMBAT_MOVEPrevents combat movement if cast successful. Allows movement on range, OOM, LOS
  • action_param3:
    caster_target_type

  • action_param4:
    caster_target_param1

  • action_param5:
    caster_target_param2

  • action_param6:
    caster_target_param3

RandTimedAction (87)

Start random (entryorguid > 0) TimedActionList on SAI enabled targets.

  • action_type:
    SMART_ACTION_CALL_RANDOM_TIMED_ACTIONLIST (87)
  • action_param1:
    entryorguid #1
  • action_param2:
    entryorguid #2
  • action_param3:
    entryorguid #3
  • action_param4:
    entryorguid #4
  • action_param5:
    entryorguid #5
  • action_param6:
    entryorguid #6
RandRangeTimedAction (88)

Start random (min <= entryorguid <= max) TimedActionList on SAI enabled targets.

  • action_type:
    SMART_ACTION_CALL_RANDOM_RANGE_TIMED_ACTIONLIST (88)
  • action_param1:
    min. entryorguid
  • action_param2:
    max. entryorguid
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
RandomMove (89)

Target creatures move maxDist in random direction. If no target was found, this creature moves instead.

  • action_type:
    SMART_ACTION_RANDOM_MOVE (89)
  • action_param1:
    maxDist (0: use idle movement)
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetUnitBytes (90)

Set BYTES_1 for target units at given offset.

  • action_type:
    SMART_ACTION_SET_UNIT_FIELD_BYTES_1 (90)
  • action_param1:
    bytes
  • action_param2:
    offset
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
RemoveUnitBytes (91)

Reset BYTES_1 for target units at given offset.

  • action_type:
    SMART_ACTION_REMOVE_UNIT_FIELD_BYTES_1 (91)
  • action_param1:
    bytes
  • action_param2:
    offset
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
InterruptSpell (92)

Interrupt the current spell being cast by target.
Without Spell ID, the core will find the current spell depending on withDelay and withInstant.

  • action_type:
    SMART_ACTION_INTERRUPT_SPELL (92)
  • action_param1:
    withDelayed? (0/1)
  • action_param2:
    Spell ID
  • action_param3:
    withInstant? (0/1)
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
AnimateObject ⚠️ (93)

UNUSED, DO NOT REUSE

  • action_type:
    SMART_ACTION_SEND_GO_CUSTOM_ANIM (93)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetDynFlag ⚠️ (94)

UNUSED, DO NOT REUSE

  • action_type:
    SMART_ACTION_SET_DYNAMIC_FLAG (94)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
AddDynFlag ⚠️ (95)

UNUSED, DO NOT REUSE

  • action_type:
    SMART_ACTION_ADD_DYNAMIC_FLAG (95)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
RemoveDynFlag ⚠️ (96)

UNUSED, DO NOT REUSE

  • action_type:
    SMART_ACTION_REMOVE_DYNAMIC_FLAG (96)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
JumpToPos (97)

Target creatures jump to World Position set in the same target definition. Speed* describes the jump arc.

  • action_type:
    SMART_ACTION_JUMP_TO_POS (97)
  • action_param1:
    speedXY
  • action_param2:
    speedZ
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SendGossip (98)

Open gossip menu to target players. Can be used together with SMART_EVENT_GOSSIP_HELLO (64) to set custom gossip.

  • action_type:
    SMART_ACTION_SEND_GOSSIP_MENU (98)
  • action_param1:
    gossip MenuID
  • action_param2:
    gossip TextID
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetLootState (99)

Set loot state of target gameobjects.

  • action_type:
    SMART_ACTION_GO_SET_LOOT_STATE (99)

  • action_param1:
    enum LootState

    IDNameComment
    0GO_NOT_READY
    1GO_READYcan be ready but despawned, and then not possible activate until spawn
    2GO_ACTIVATE
    3GO_JUST_DEACTIVATED
  • action_param2:
    0

  • action_param3:
    0

  • action_param4:
    0

  • action_param5:
    0

  • action_param6:
    0

SendTargets (100)

Send targets previously stored with SMART_ACTION_STORE_TARGET_LIST (64), to target creatures / gameobjects.
The other entities can then access them as if it was their own stored list.

  • action_type:
    SMART_ACTION_SEND_TARGET_TO_TARGET (100)
  • action_param1:
    varId
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetHomePos (101)

Set Home Position of target creatures.
If target_type is SMART_TARGET_POSITION (8) Home Position is the World Position defined in target, otherwise it's the creatures current position.

  • action_type:
    SMART_ACTION_SET_HOME_POS (101)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetHealthRegen (102)

Enable/Disable health regeneration for target creatures.

  • action_type:
    SMART_ACTION_SET_HEALTH_REGEN (102)
  • action_param1:
    enable? (0/1)
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetRoot (103)

Root/Unroot target creatures.

  • action_type:
    SMART_ACTION_SET_ROOT (103)
  • action_param1:
    enable? (0/1)
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetGoFlag ⚠️ (104)

UNUSED, DO NOT REUSE

  • action_type:
    SMART_ACTION_SET_GO_FLAG (104)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
AddGoFlag ⚠️ (105)

UNUSED, DO NOT REUSE

  • action_type:
    SMART_ACTION_ADD_GO_FLAG (105)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
RemoveGoFlag ⚠️ (106)

UNUSED, DO NOT REUSE

  • action_type:
    SMART_ACTION_REMOVE_GO_FLAG (106)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SpawnCreatureGrp (107)

Summon a predefined creature group, attacking event invoker.

  • action_type:
    SMART_ACTION_SUMMON_CREATURE_GROUP (107)
  • action_param1:
    summon group groupID
  • action_param2:
    attackInvoker? (0/1)
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetPower (108)

Set power of target units to given amount.

  • action_type:
    SMART_ACTION_SET_POWER (108)
  • action_param1:
    PowerType
  • action_param2:
    amount
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
AddPower (109)

Add given amount of power to target units.

  • action_type:
    SMART_ACTION_ADD_POWER (109)
  • action_param1:
    PowerType
  • action_param2:
    amount
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
RemovePower (110)

Remove given amount of power from target units.

  • action_type:
    SMART_ACTION_REMOVE_POWER (110)
  • action_param1:
    PowerType
  • action_param2:
    amount
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
GameEventStop (111)

Stop currently active game event.

  • action_type:
    SMART_ACTION_GAME_EVENT_STOP (111)
  • action_param1:
    game event eventEntry
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
GameEventStart (112)

Start currently inactive game event.

  • action_type:
    SMART_ACTION_GAME_EVENT_START (112)
  • action_param1:
    game event eventEntry
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
StartClosestWP (113)

Make target creatures follow the provided path closest to its location.

MoveOffset (114)

Target creatures move to World Position offset set in the same target definition.

  • action_type:
    SMART_ACTION_MOVE_OFFSET (114)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
RandomSound (115)

Target units play a random sound entry from list.

  • action_type:
    SMART_ACTION_RANDOM_SOUND (115)
  • action_param1:
    SoundEntry ID #1
  • action_param2:
    SoundEntry ID #2
  • action_param3:
    SoundEntry ID #3
  • action_param4:
    SoundEntry ID #4
  • action_param5:
    onlySelf
    • 0: heard by all players in visibility range
    • 1: heard by invoking player
  • action_param6:
    distanceSound
    • 0: uses WorldObject::PlayDirectSound()
    • 1: uses WorldObject::PlayDistanceSound()
SetCorpseDelay (116)

Set corpse despawn for target creatures.

  • action_type:
    SMART_ACTION_SET_CORPSE_DELAY (116)
  • action_param1:
    time (in sec.)
  • action_param2:
    includeDecayRatio? (0/1)
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
DisableEvade (117)

Disable/Enable evade mode for this creature.

  • action_type:
    SMART_ACTION_DISABLE_EVADE (117)
  • action_param1:
    disabled? (0/1)
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetGoState (118)

Set state of target gameobjects.

  • action_type:
    SMART_ACTION_GO_SET_GO_STATE (118)

  • action_param1:
    enum GOState

    IDNameComment
    0GO_STATE_ACTIVEshow in world as used and not reset (closed door open)
    1GO_STATE_READYshow in world as ready (closed door close)
    2GO_STATE_DESTROYEDshow the object in-game as already used and not yet reset (e.g. door opened by a cannon blast)
  • action_param2:
    0

  • action_param3:
    0

  • action_param4:
    0

  • action_param5:
    0

  • action_param6:
    0

SetCanFly ⚠️ (119)

UNUSED, DO NOT REUSE

  • action_type:
    SMART_ACTION_SET_CAN_FLY (119)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
RemoveAuraType ⚠️ (120)

UNUSED, DO NOT REUSE

  • action_type:
    SMART_ACTION_REMOVE_AURAS_BY_TYPE (120)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetSightDist ⚠️ (121)

UNUSED, DO NOT REUSE

  • action_type:
    SMART_ACTION_SET_SIGHT_DIST (121)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
Flee ⚠️ (122)

UNUSED, DO NOT REUSE

  • action_type:
    SMART_ACTION_FLEE (122)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
AddThreat (123)

Change own threat amount against target units.

  • action_type:
    SMART_ACTION_ADD_THREAT (123)
  • action_param1:
    flat increase
  • action_param2:
    flat decrease
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
LoadEquipment (124)

Load equipment on target creatures.

  • action_type:
    SMART_ACTION_LOAD_EQUIPMENT (124)
  • action_param1:
    equipment ID
  • action_param2:
    forceUnequip? (0/1)
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
TriggerRndTimedEvent (125)

Trigger random (min <= id <= max) Timed Event.

Note: SMART_EVENT_TIMED_EVENT_TRIGGERED (77) is triggered.

  • action_type:
    SMART_ACTION_TRIGGER_RANDOM_TIMED_EVENT (125)
  • action_param1:
    min. id
  • action_param2:
    max. id
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
RemoveAllObjects ⚠️ (126)

UNUSED, DO NOT REUSE

  • action_type:
    SMART_ACTION_REMOVE_ALL_GAMEOBJECTS (126)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
PauseMovement (127)

Target units pause movement caused by given movement slot.

  • action_type:
    SMART_ACTION_PAUSE_MOVEMENT (127)

  • action_param1:
    enum MovementSlot

    IDNameComment
    0MOTION_SLOT_DEFAULTidle, follow, etc.
    1MOTION_SLOT_ACTIVEpoint movement
  • action_param2:
    pause (in msec.)
    0: indefinitely

  • action_param3:
    force? (0/1)

  • action_param4:
    0

  • action_param5:
    0

  • action_param6:
    0

PlayAnimkit ❌ (128)

don't use on 3.3.5a

  • action_type:
    SMART_ACTION_PLAY_ANIMKIT (128)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
ScenePlay ❌ (129)

don't use on 3.3.5a

  • action_type:
    SMART_ACTION_SCENE_PLAY (129)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SceneCancel ❌ (130)

don't use on 3.3.5a

  • action_type:
    SMART_ACTION_SCENE_CANCEL (130)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SpawnSpawngroup (131)

Spawn predefined group of creatures.

  • action_type:
    SMART_ACTION_SPAWN_SPAWNGROUP (131)

  • action_param1:
    spawn group groupId

  • action_param2:
    minDelay (in sec.)

  • action_param3:
    maxDelay (in sec.)

  • action_param4:
    enum SMARTAI_SPAWN_FLAGS

    ValueFlagName
    10x01SMARTAI_SPAWN_FLAG_IGNORE_RESPAWN
    20x02SMARTAI_SPAWN_FLAG_FORCE_SPAWN
    40x04SMARTAI_SPAWN_FLAG_NOSAVE_RESPAWN
  • action_param5:
    0

  • action_param6:
    0

DespawnSpawngroup (132)

Despawn predefined group of creatures.

  • action_type:
    SMART_ACTION_DESPAWN_SPAWNGROUP (132)

  • action_param1:
    spawn group groupId

  • action_param2:
    minDelay (in sec.)

  • action_param3:
    maxDelay (in sec.)

  • action_param4:
    enum SMARTAI_SPAWN_FLAGS

    ValueFlagName
    10x01SMARTAI_SPAWN_FLAG_IGNORE_RESPAWN
    20x02SMARTAI_SPAWN_FLAG_FORCE_SPAWN
    40x04SMARTAI_SPAWN_FLAG_NOSAVE_RESPAWN
  • action_param5:
    0

  • action_param6:
    0

RespawnUnit (133)

Respawn a single creature / gameobject.

  • action_type:
    SMART_ACTION_RESPAWN_BY_SPAWNID (133)
  • action_param1:
    type
  • action_param2:
    guid
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
InvokerCastSpell (134)

Last invoker will cast spell ID with castFlags on target units.

  • action_type:
    SMART_ACTION_INVOKER_CAST (134)

  • action_param1:
    Spell ID

  • action_param2:
    enum SmartCastFlags

    ValueFlagNameComment
    10x01SMARTCAST_INTERRUPT_PREVIOUSInterrupt any spell casting
    20x02SMARTCAST_TRIGGEREDTriggered (this makes spell cost zero mana and have no cast time)
    40x04❌ SMARTCAST_FORCE_CASTForces cast even if creature is out of mana or out of range
    80x08❌ SMARTCAST_NO_MELEE_IF_OOMPrevents creature from entering melee if out of mana or out of range
    160x10❌ SMARTCAST_FORCE_TARGET_SELFForces the target to cast this spell on itself
    320x20SMARTCAST_AURA_NOT_PRESENTOnly casts the spell if the target does not have an aura from the spell
    640x40SMARTCAST_COMBAT_MOVEPrevents combat movement if cast successful. Allows movement on range, OOM, LOS
  • action_param3:
    enum TriggerCastFlags

    ValueFlagNameComment
    10x00000001TRIGGERED_IGNORE_GCDWill ignore GCD
    20x00000002TRIGGERED_IGNORE_SPELL_AND_CATEGORY_CDWill ignore Spell and Category cooldowns
    40x00000004TRIGGERED_IGNORE_POWER_AND_REAGENT_COSTWill ignore power and reagent cost
    80x00000008TRIGGERED_IGNORE_CAST_ITEMWill not take away cast item or update related achievement criteria
    160x00000010TRIGGERED_IGNORE_AURA_SCALINGWill ignore aura scaling
    320x00000020TRIGGERED_IGNORE_CAST_IN_PROGRESSWill not check if a current cast is in progress
    640x00000040TRIGGERED_IGNORE_COMBO_POINTSWill ignore combo point requirement
    1280x00000080TRIGGERED_CAST_DIRECTLYIn Spell::prepare, will be cast directly without setting containers for executed spell
    2560x00000100TRIGGERED_IGNORE_AURA_INTERRUPT_FLAGSWill ignore interruptible aura's at cast
    5120x00000200TRIGGERED_IGNORE_SET_FACINGWill not adjust facing to target (if any)
    10240x00000400TRIGGERED_IGNORE_SHAPESHIFTWill ignore shapeshift checks
    20480x00000800TRIGGERED_IGNORE_CASTER_AURASTATEWill ignore caster aura states including combat requirements and death state
    40960x00001000TRIGGERED_DISALLOW_PROC_EVENTSDisallows proc events from triggered spell (default)
    81920x00002000TRIGGERED_IGNORE_CASTER_MOUNTED_OR_ON_VEHICLEWill ignore mounted/on vehicle restrictions
    655360x00010000TRIGGERED_IGNORE_CASTER_AURASWill ignore caster aura restrictions or requirements
    1310720x00020000TRIGGERED_DONT_RESET_PERIODIC_TIMERWill allow periodic aura timers to keep ticking (instead of resetting)
    2621440x00040000TRIGGERED_DONT_REPORT_CAST_ERRORWill return SPELL_FAILED_DONT_REPORT in CheckCast functions
    5242880x00080000TRIGGERED_IGNORE_EQUIPPED_ITEM_REQUIREMENTWill ignore equipped item requirements
  • action_param4:
    maxTargets (0: all)

  • action_param5:
    0

  • action_param6:
    0

PlayCinematic (135)

Play cinematic for target players.

  • action_type:
    SMART_ACTION_PLAY_CINEMATIC (135)
  • action_param1:
    CinematicSequence ID
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetSpeed (136)

Set movement speed of target creatures.

  • action_type:
    SMART_ACTION_SET_MOVEMENT_SPEED (136)

  • action_param1:
    enum MovementGeneratorType

    IDNameIDName
    0IDLE_MOTION_TYPE10DISTRACT_MOTION_TYPE
    1RANDOM_MOTION_TYPE11ASSISTANCE_MOTION_TYPE
    2WAYPOINT_MOTION_TYPE12ASSISTANCE_DISTRACT_MOTION_TYPE
    3MAX_DB_MOTION_TYPE13TIMED_FLEEING_MOTION_TYPE
    4CONFUSED_MOTION_TYPE14FOLLOW_MOTION_TYPE
    5CHASE_MOTION_TYPE15ROTATE_MOTION_TYPE
    6HOME_MOTION_TYPE16EFFECT_MOTION_TYPE
    7FLIGHT_MOTION_TYPE17SPLINE_CHAIN_MOTION_TYPE
    8POINT_MOTION_TYPE18FORMATION_MOTION_TYPE
    9FLEEING_MOTION_TYPE19FACE_MOTION_TYPE
  • action_param2:
    speedInteger

  • action_param3:
    speedFraction

  • action_param4:
    0

  • action_param5:
    0

  • action_param6:
    0

PlaySpellVisual ❌ (137)

RESERVED, PENDING CHERRYPICK

  • action_type:
    SMART_ACTION_PLAY_SPELL_VISUAL_KIT (137)
  • action_param1:
    SpellVisualKit ID
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
OverrideLight (138)

Override skybox visual in area.

  • action_type:
    SMART_ACTION_OVERRIDE_LIGHT (138)
  • action_param1:
    AreaTable ID
  • action_param2:
    area Light ID
  • action_param3:
    new Light ID
  • action_param4:
    fadeIn time (in msec.)
  • action_param5:
    0
  • action_param6:
    0
OverrideWeather (139)

Override weather in area.

  • action_type:
    SMART_ACTION_OVERRIDE_WEATHER (139)
  • action_param1:
    AreaTable ID
  • action_param2:
    Weather ID
  • action_param3:
    intensity (0: low; 1: full)
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetAIAnim ❌ (140)

DEPRECATED, DO REUSE

  • action_type:
    SMART_ACTION_SET_AI_ANIM_KIT (140)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetHover (141)

Enable/Disable hover for target units.

  • action_type:
    SMART_ACTION_SET_HOVER (141)
  • action_param1:
    enable? (0/1)
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetHealthPct (142)

Set current health percentage of target units.

  • action_type:
    SMART_ACTION_SET_HEALTH_PCT (142)
  • action_param1:
    percent
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
CreateConvers. ❌ (143)

don't use on 3.3.5a

  • action_type:
    SMART_ACTION_CREATE_CONVERSATION (143)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetImmunePC (144)

Enable/Disable immunity to players of target units.

  • action_type:
    SMART_ACTION_SET_IMMUNE_PC (144)
  • action_param1:
    enable? (0/1)
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetImmuneNPC (145)

Enable/Disable immunity to creatures of target units.

  • action_type:
    SMART_ACTION_SET_IMMUNE_NPC (145)
  • action_param1:
    enable? (0/1)
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
SetUninteractible (146)

Make/Reset target units uninteractible.

  • action_type:
    SMART_ACTION_SET_UNINTERACTIBLE (146)
  • action_param1:
    enable? (0/1)
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
ActivateGObject (147)

Activate target gameobjects, using given action.

  • action_type:
    SMART_ACTION_ACTIVATE_GAMEOBJECT (147)

  • action_param1:
    enum GameObjectActions

    IDNameComment
    1AnimateCustom0Animate Custom0
    2AnimateCustom1Animate Custom1
    3AnimateCustom2Animate Custom2
    4AnimateCustom3Animate Custom3
    5DisturbDisturb - Triggers trap
    6UnlockUnlock - Resets GO_FLAG_LOCKED
    7LockLock - Sets GO_FLAG_LOCKED
    8OpenOpen - Sets GO_STATE_ACTIVE
    9OpenAndUnlockOpen + Unlock - Sets GO_STATE_ACTIVE and resets GO_FLAG_LOCKED
    10CloseClose - Sets GO_STATE_READY
    11ToggleOpenToggle Open
    12DestroyDestroy - Sets GO_STATE_DESTROYED
    13RebuildRebuild - Resets from GO_STATE_DESTROYED
    14CreationCreation
    15DespawnDespawn
    16MakeInertMake Inert - Disables interactions
    17MakeActiveMake Active - Enables interactions
    18CloseAndLockClose + Lock - Sets GO_STATE_READY and sets GO_FLAG_LOCKED
    19UseArtKit0Use ArtKit0 - 46904: 121
    20UseArtKit1Use ArtKit1 - 36639: 81, 46903: 122
    21UseArtKit2Use ArtKit2
    22UseArtKit3Use ArtKit3
    23SetTapListSet Tap List
  • action_param2:
    0

  • action_param3:
    0

  • action_param4:
    0

  • action_param5:
    0

  • action_param6:
    0

AddStoredTargets (148)

Add selected targets to varID for later use.

  • action_type:
    SMART_ACTION_ADD_TO_STORED_TARGET_LIST (148)
  • action_param1:
    varID
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
BecomeClone ❌ (149)

don't use on 3.3.5a

  • action_type:
    SMART_ACTION_BECOME_PERSONAL_CLONE_FOR_PLAYER (149)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
TriggerGameEvent ❌ (150)

RESERVED, PENDING CHERRYPICK

  • action_type:
    SMART_ACTION_TRIGGER_GAME_EVENT (150)
  • action_param1:
    eventId
  • action_param2:
    useSaiTargetAsGameEventSource
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
DoAction ❌ (151)

RESERVED, PENDING CHERRYPICK

  • action_type:
    SMART_ACTION_DO_ACTION (151)
  • action_param1:
    actionId
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
CompleteQuest ❌ (152)

RESERVED, PENDING CHERRYPICK

  • action_type:
    SMART_ACTION_COMPLETE_QUEST (152)
  • action_param1:
    QuestId
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
QuestCreditTalkTo ❌ (153)

RESERVED, PENDING CHERRYPICK

  • action_type:
    SMART_ACTION_CREDIT_QUEST_OBJECTIVE_TALK_TO (153)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
DestroyConversation ❌ (154)

don't use on 3.3.5a

  • action_type:
    SMART_ACTION_DESTROY_CONVERSATION (154)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
EnterVehicle ❌ (155)

RESERVED, PENDING CHERRYPICK

  • action_type:
    SMART_ACTION_ENTER_VEHICLE (155)
  • action_param1:
    seatId
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
BoardPassenger ❌ (156)

RESERVED, PENDING CHERRYPICK

  • action_type:
    SMART_ACTION_BOARD_PASSENGER (156)
  • action_param1:
    seatId
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
ExitVehicle ❌ (157)

RESERVED, PENDING CHERRYPICK

  • action_type:
    SMART_ACTION_EXIT_VEHICLE (157)
  • action_param1:
    0
  • action_param2:
    0
  • action_param3:
    0
  • action_param4:
    0
  • action_param5:
    0
  • action_param6:
    0
ResumeMovement (158)

Target units resumes movement caused by given movement slot.
action_type:
SMART_ACTION_RESUME_MOVEMENT (158)

  • action_param1:
    enum MovementSlot

    IDNameComment
    0MOTION_SLOT_DEFAULTidle, follow, etc.
    1MOTION_SLOT_ACTIVEpoint movement
  • action_param2:
    ResumeTime (in ms.)
    0: indefinitely

  • action_param3:
    0

  • action_param4:
    0

  • action_param5:
    0

  • action_param6:
    0

 

target_type ​

IDNametarget_param1target_param2target_param3target_param4World Pos.Comment
0SMART_TARGET_NONENONE
1SMART_TARGET_SELFSelf cast
2SMART_TARGET_VICTIMOur current target (ie: highest aggro)
3SMART_TARGET_HOSTILE_SECOND_AGGROmaxDistplayerOnly? (0/1)powerType + 1 (0: any)Second highest aggro
4SMART_TARGET_HOSTILE_LAST_AGGROmaxDistplayerOnly? (0/1)powerType + 1 (0: any)Dead last on aggro
5SMART_TARGET_HOSTILE_RANDOMmaxDistplayerOnly? (0/1)powerType + 1 (0: any)Just any random target on our threat list
6SMART_TARGET_HOSTILE_RANDOM_NOT_TOPmaxDistplayerOnly? (0/1)powerType + 1 (0: any)Any random target except top threat
7SMART_TARGET_ACTION_INVOKERUnit who caused this Event to occur
8SMART_TARGET_POSITIONx y z ouse xyz from target params
9SMART_TARGET_CREATURE_RANGEcreature entry (0: any)minDistmaxDistmaxTargets (0: all)Creatures with specified entry within specified range.
10SMART_TARGET_CREATURE_GUIDcreature guidcreature entry (0: any)Creature with specified GUID (and entry).
11SMART_TARGET_CREATURE_DISTANCEcreature entry (0: any)maxDistmaxTargets (0: all)Creatures with specified entry within distance. (Like #9 w/o minDist)
12SMART_TARGET_STOREDiduses pre-stored target (list)
13SMART_TARGET_GAMEOBJECT_RANGEgameobject entry (0: any)minDistmaxDistmaxTargets (0: all)Gameobjects with specified entry within specified range.
14SMART_TARGET_GAMEOBJECT_GUIDgameobject guidgameobject entry (0: any)Gameobject with specified GUID (and entry).
15SMART_TARGET_GAMEOBJECT_DISTANCEgameobject entry (0: any)maxDistmaxTargets (0: all)Gameobjects with specified entry within distance. (Like #13 w/o minDist)
16SMART_TARGET_INVOKER_PARTYinvoker's party members
17SMART_TARGET_PLAYER_RANGEminDistmaxDistPlayers within specified range.
18SMART_TARGET_PLAYER_DISTANCEmaxDistPlayer within specified distance. (Like #17 w/o minDist)
19SMART_TARGET_CLOSEST_CREATUREcreature entry (0: any)maxDist (0: 100m)dead? (0/1)Closest creature with specified entry within specified range.
20SMART_TARGET_CLOSEST_GAMEOBJECTgameobject entry (0: any)maxDist (0: 100m)Closest gameobject with specified entry within specified range.
21SMART_TARGET_CLOSEST_PLAYERmaxDistClosest player within specified range.
22SMART_TARGET_ACTION_INVOKER_VEHICLEUnit's vehicle who caused this Event to occur
23SMART_TARGET_OWNER_OR_SUMMONERUnit's owner or summoner, Use Owner/Charmer of this unit
24SMART_TARGET_THREAT_LISTmaxDist (0: any)All units on creature's threat list
25SMART_TARGET_CLOSEST_ENEMYmaxDistplayerOnly? (0/1)Any attackable target (creature or player) within maxDist
26SMART_TARGET_CLOSEST_FRIENDLYmaxDistplayerOnly? (0/1)Any friendly unit (creature, player or pet) within maxDist
27SMART_TARGET_LOOT_RECIPIENTSall players that have tagged this creature (for kill credit)
28SMART_TARGET_FARTHESTmaxDistplayerOnly? (0/1)isInLos? (0/1)Farthest unit on the threat list
29SMART_TARGET_VEHICLE_PASSENGERseatMask (0: all seats)Vehicle can target unit in given seat
30SMART_TARGET_CLOSEST_UNSPAWNED_GAMEOBJECTgameobject entry (0: any)maxDistClosest unspawned gameobject with specified entry within specified range.
To be used only with SMART_ACTION_ENABLE_TEMP_GOBJ (70) and gameobjects with negative respawn time in the DB.

 

comment ​

Commenting on SAI uses a template which is the following:

  • "Creature name - Event - Action"
  • "Minion of Gurok - On spawn - Set Random Movement"
     

PowerType ​

enum Powers

IDName
-2POWER_HEALTH
0POWER_MANA
1POWER_RAGE
2POWER_FOCUS
3POWER_ENERGY
4POWER_HAPPINESS
5POWER_RUNE
6POWER_RUNIC_POWER