# scripts [<-Back-to:World](database-world.md) # Tables: \*\*\*\_scripts This table format is used for 3 different tables to control possible scripts activated by different actions: **spell\_scripts:** Holds scripts that can be activated by spells with effect SPELL\_EFFECT\_SCRIPT\_EFFECT (77) or SPELL\_EFFECT\_DUMMY(3). **event\_scripts:** Holds scripts activated whenever an event is activated, be it by an object or as the spell effect SPELL\_EFFECT\_SEND\_EVENT (61). **waypoint\_scripts:** Holds scripts used in the [waypoint\_data](waypoint_data) table. NOTE: An entry in this table may have more than one row as a script may do more than just one action. Also each action the script may make can have a separate delay attached to it. In that case, the core will activate the appropriate action after the correct delay. ## **Structure**
Field Type Attributes Key Null Default Extra Comment
id mediumint(8) unsigned
NO 0

effIndex [1] tinyint(3) unsigned
NO 0

delay int(10) unsigned
NO 0

command mediumint(8) unsigned
NO 0

datalong mediumint(8) unsigned
NO 0

datalong2 int(10) unsigned
NO 0

dataint int(11) signed
NO 0

x float signed
NO 0

y float signed
NO 0

z float signed
NO 0

o float signed
NO 0

guid [2] int(11) signed PRI NO 0

1 present in spell\_scripts table only.  2 present in waypoint\_scripts table only. ## **Description of the fields** ### id For **spell\_scripts**, it is the spell ID. See [Spell.dbc](https://trinitycore.atlassian.net/wiki/display/tc/Spell) For **event\_scripts**, it is the event ID. There doesn't exist currently a full list of events. In any case, the event IDs are taken directly from gameobject WDB data or spell effect data. If both a gameobject and a spell activate the same event, the IDs will match. For **waypoint\_scripts**, it is the [action](waypoint_data_2130114.html#waypoint_data-action) ID. ### effIndex The effect index of the spell that this script is to be applied to. ### delay Delay in seconds before this current step of the script activates. 0 = instant. ### command The type of action performed by the script after [delay](#scripts-delay) seconds have passed. The value of this field affects what other fields also need to be set. The following commands can be used: | Command | Name | Description | |---------|------------------------|--------------------------------------------------------------------------| | 0 | TALK | Creature say/whisper/yell/textemote. | | 1 | EMOTE | Play emote on creature. | | 2 | FIELD\_SET | Change the value at an index for the player. | | 3 | MOVE\_TO | Relocate creature to a destination. | | 4 | FLAG\_SET | Turns on bits on a flag field at an index for the player. | | 5 | FLAG\_REMOVE | Turns off bits on a flag field at an index for the player. | | 6 | TELEPORT\_TO | Teleports the player to a location. | | 7 | QUEST\_EXPLORED | Satisfies the explore requirement for a quest. | | 8 | KILL\_CREDIT | Gives kill credit to the player. | | 9 | RESPAWN\_GAMEOBJECT | Spawns a despawned gameobject. | | 10 | TEMP\_SUMMON\_CREATURE | Temporarily summons a creature. | | 11 | OPEN\_DOOR | Opens a door gameobject (type h1. 0). | | 12 | CLOSE\_DOOR | Closes a door gameobject (type 0). | | 13 | ACTIVATE\_OBJECT | Activates an object. | | 14 | REMOVE\_AURA | Removes an aura due to a spell. | | 15 | CAST\_SPELL | Casts a spell. | | 16 | PLAY\_SOUND | Plays a sound. | | 17 | CREATE\_ITEM | Creates specified amount of items for the player. | | 18 | DESPAWN\_SELF | Forces creature to despawn. | | 19 | nuttin | There is no command 19. | | 20 | LOAD\_PATH | Load path to unit, then unit starts waypoint movement. | | 21 | CALLSCRIPT\_TO\_UNIT | Calls script from one of \*\_scripts table with given unit as source. | | 22 | KILL | Changes state of the creature to dead and optionally removes its corpse. | | 30 | ORIENTATION | Changes unit's orientation (Used in Waypoint Scripts) | | 31 | EQUIP | Sets creature equipment. | | 32 | MODEL | Sets creature model. | | 33 | CLOSE\_GOSSIP | Closes gossip window. This command is only used for Gossip Scripts. | | 34 | PLAYMOVIE | Plays movie. | ### OtherFields Depending on what command was used, the meaning and use for the following fields varies. \***SCRIPT\_COMMAND\_TALK = 0** - - source: Creature. - target: any/Player (for whisper). - datalong: 0=say, 1=yell, 2=text emote, 3=boss emote, 4=whisper 5=boss whisper - dataint: reference to [broadcast\_text.id](broadcast_text) \***SCRIPT\_COMMAND\_EMOTE = 1** - - source or target: Creature. - datalong: The emote ID to play. - datalong2: If this value is > 0 the npc will play emote state rather than oneshot. \***SCRIPT\_COMMAND\_FIELD\_SET = 2** - - source or target: Creature. - datalong: Index of the field. - datalong2: Value to place at the index. \***SCRIPT\_COMMAND\_MOVE\_TO = 3** - - source: Creature. - datalong2: Length (in time) of the motion. - x: X position to move to. - y: Y position to move to. - z: Z position to move to. \***SCRIPT\_COMMAND\_FLAG\_SET = 4** - - source or target: Creature. - datalong: Field index to be set. - datalong2: Flag bit(s) to set. \***SCRIPT\_COMMAND\_FLAG\_REMOVE = 5** - - source or target: Creature. - datalong: Field index to be unset. - datalong2: Flag bit(s) to unset. \***SCRIPT\_COMMAND\_TELEPORT\_TO = 6** - - source or target: Player (datalong2 0) or Creature (datalong2 1). - datalong: Target Map ID. See [Map.dbc](https://trinitycore.atlassian.net/wiki/display/tc/Map) - x: Teleport target x coordinate. - y: Teleport target y coordinate. - z: Teleport target z coordinate. - o: Teleport target orientation. \***SCRIPT\_COMMAND\_QUEST\_EXPLORED = 7** - - source or target: Player. - target or source: WorldObject. - datalong: Quest entry which external status should be satisfied. See [quest\_template.entry](quest_template_2130261.html#quest_template-entry). - datalong2: Distance away from the NPC/object that the player can be and have the script still take effect (min value 5). \***SCRIPT\_COMMAND\_KILL\_CREDIT = 8** - - target or source: Player. - datalong: Creatue entry of kill credit. See [creature\_template.entry](creature_template_2130008.html#creature_template-entry). - datalong2: If value > 0 gives kill credit to the whole group player belongs to, otherwise, gives personal kill credit. \***SCRIPT\_COMMAND\_RESPAWN\_GAMEOBJECT = 9** - - source: WorldObject (summoner). - datalong: Guid of the gameobject to respawn. See [gameobject.guid](gameobject_2130146.html#gameobject-guid). - datalong2: Despawn time in seconds. If the value is < 5 seconds: 5 is used instead. \***SCRIPT\_COMMAND\_TEMP\_SUMMON\_CREATURE = 10** - - source: WorldObject (summoner). - datalong: Entry of the summoned creature. See [creature\_template.entry](creature_template_2130008.html#creature_template-entry). - datalong2: Despawn time in ms. - x: Summon target x coordinate. - y: Summon target y coordinate. - z: Summon target z coordinate. - o: Summon target orientation. \***SCRIPT\_COMMAND\_OPEN\_DOOR = 11** - - source: WorldObject. - datalong: Guid of the activated door. See [gameobject.guid](gameobject_2130146.html#gameobject-guid). - datalong2: Delay before closing again the door. If the value is < 15 seconds: 15 is used instead. \***SCRIPT\_COMMAND\_CLOSE\_DOOR = 12** - - source: WorldObject. - datalong: Guid of the activated door. See [gameobject.guid](gameobject_2130146.html#gameobject-guid). - datalong2: Delay before opening again the door. If the value is < 15 seconds: 15 is used instead. \***SCRIPT\_COMMAND\_ACTIVATE\_OBJECT = 13** - - source: Unit. - target: GameObject. \***SCRIPT\_COMMAND\_REMOVE\_AURA = 14** - - source (datalong2 != 0) or target (datalong2 h1. 0): Unit. - datalong: Spell ID. See [Spell.dbc](https://trinitycore.atlassian.net/wiki/display/tc/Spell) - datalong2: If value > 0, then remove from the source; otherwise remove from the target. \***SCRIPT\_COMMAND\_CAST\_SPELL = 15** - - source: Unit. - target: Unit. - datalong: Spell ID. See [Spell.dbc](https://trinitycore.atlassian.net/wiki/display/tc/Spell) - datalong2: - 0 - Source->Target - 1 - Source->Source (Self cast, use for dummy spells) - 2 - Target->Target - 3 - Target->Source - 4 - Source->Closest entry of dataint. - dataint: Creature entry to target if datalong2 value is 4, or triggered attribute for CastSpell method in other cases. - x: Search range for creature entry (dataint) if datalong2 value is 4. \***SCRIPT\_COMMAND\_PLAY\_SOUND = 16** - - source: WorldObject. - target: none (datalong2 & 1 0) or Player (datalong2 & 1 != 0). - datalong: Sound ID. - datalong2: - 0 - play direct sound to everyone. - 1 - play direct sound to target (must be Player). - 2 - play sound with distance dependency to anyone. - 3 - play sound with distance dependency to target (must be Player). \***SCRIPT\_COMMAND\_CREATE\_ITEM = 17** - - target or source: Player. - datalong: Item entry to create. See [item\_template.entry](item_template_2130222.html#item_template-entry). - datalong2: Amount of items to create. \***SCRIPT\_COMMAND\_DESPAWN\_SELF = 18** - - target: Creature. - datalong: Despawn delay. \***SCRIPT\_COMMAND\_LOAD\_PATH = 20** - - source: Unit. - datalong: Path ID. See [waypoint\_data.id](waypoint_data_2130114.html#waypoint_data-id). - datalong2: If value > 0, means waypoint movement is repeatable. \***SCRIPT\_COMMAND\_CALLSCRIPT\_TO\_UNIT = 21** - - source: if present, used as a search center. - datalong: entry of searched creature, if source exists, guid of the creature otherwise. \*\*datalong2: ID of the script from \*\_scripts table. - dataint: - 3 - use spell\_scripts table; - 5 - use event\_scripts table; - 6 - use waypoint\_scripts table. \***SCRIPT\_COMMAND\_KILL = 22** - - source: Creature. - dataint: if value == 1 remove corpse. \***SCRIPT\_COMMAND\_ORIENTATION = 30** - - source: Unit. - target: Unit (datalong != 0). - datalong: If value != 0, then turn to face the target; otherwise turn to value in o. - o: Set orientation to value in field \`o\`. \***SCRIPT\_COMMAND\_EQUIP = 31** - - source: Creature. - datalong: ID (1, 2, 3 ...)  from equipment entry. See [creature\_equip\_template](creature_equip_template_2129998.html#creature_equip_template-ID).ID \***SCRIPT\_COMMAND\_MODEL = 32** - - source: Creature. - datalong: model ID. \***SCRIPT\_COMMAND\_CLOSE\_GOSSIP = 33** - - source: Player. \***SCRIPT\_COMMAND\_PLAYMOVIE = 34** - - source: Player. - datalong: movie ID. ### guid `field-no-description|5` td class=