gameobject_template - cmangos/issues GitHub Wiki
Back to world database list of tables.
Contains template of all world’s objects
Field | Type | Null | Key | Default | Extra |
entry | int(10) unsigned | NO | PRI | 0 | |
type | int(10) unsigned | NO | 0 | ||
displayId | int(10) unsigned | NO | 0 | ||
name | char(100) | NO | MUL | 0 | |
IconName | varchar | NO | |||
castBarCaption | varchar(100) | NO | |||
faction | int(4) unsigned | NO | 0 | ||
flags | int(4) unsigned | NO | 0 | ||
ExtraFlags | int(11) unsigned | NO | 0 | ||
size | float | NO | 1 | ||
data0 | int(10) unsigned | NO | 0 | ||
data1 | int(10) unsigned | NO | 0 | ||
data2 | int(10) unsigned | NO | 0 | ||
data3 | int(10) unsigned | NO | 0 | ||
data4 | int(10) unsigned | NO | 0 | ||
data5 | int(10) unsigned | NO | 0 | ||
data6 | int(10) unsigned | NO | 0 | ||
data7 | int(10) unsigned | NO | 0 | ||
data8 | int(10) unsigned | NO | 0 | ||
data9 | int(10) unsigned | NO | 0 | ||
data10 | int(10) unsigned | NO | 0 | ||
data11 | int(10) unsigned | NO | 0 | ||
data12 | int(10) unsigned | NO | 0 | ||
data13 | int(10) unsigned | NO | 0 | ||
data14 | int(10) unsigned | NO | 0 | ||
data15 | int(10) unsigned | NO | 0 | ||
data16 | int(10) unsigned | NO | 0 | ||
data17 | int(10) unsigned | NO | 0 | ||
data18 | int(10) unsigned | NO | 0 | ||
data19 | int(10) unsigned | NO | 0 | ||
data20 | int(10) unsigned | NO | 0 | ||
data21 | int(10) unsigned | NO | 0 | ||
data22 | int(10) unsigned | NO | 0 | ||
data23 | int(10) unsigned | NO | 0 | ||
CustomData1 | int(11) unsigned | NO | 0 | ||
mingold | mediumint(8) unsigned | NO | 0 | ||
maxgold | mediumint(8) unsigned | NO | 0 | ||
StringId | int(11) unsigned | NO | 0 | ||
ScriptName | char(100) | NO |
GAMEOBJECT_BYTES_1: State/Type/Artkit/Animprogress – wotlk+
Id of the gameobject template
GAMEOBJECT_TYPE_DOOR = 0
GAMEOBJECT_TYPE_BUTTON = 1
GAMEOBJECT_TYPE_QUESTGIVER = 2
GAMEOBJECT_TYPE_CHEST = 3
GAMEOBJECT_TYPE_BINDER = 4
GAMEOBJECT_TYPE_GENERIC = 5
GAMEOBJECT_TYPE_TRAP = 6
GAMEOBJECT_TYPE_CHAIR = 7
GAMEOBJECT_TYPE_SPELL_FOCUS = 8
GAMEOBJECT_TYPE_TEXT = 9
GAMEOBJECT_TYPE_GOOBER = 10
GAMEOBJECT_TYPE_TRANSPORT = 11
GAMEOBJECT_TYPE_AREADAMAGE = 12
GAMEOBJECT_TYPE_CAMERA = 13
GAMEOBJECT_TYPE_MAP_OBJECT = 14
GAMEOBJECT_TYPE_MO_TRANSPORT = 15
GAMEOBJECT_TYPE_DUEL_ARBITER = 16
GAMEOBJECT_TYPE_FISHINGNODE = 17
GAMEOBJECT_TYPE_RITUAL = 18
GAMEOBJECT_TYPE_MAILBOX = 19
GAMEOBJECT_TYPE_AUCTIONHOUSE = 20
GAMEOBJECT_TYPE_GUARDPOST = 21
GAMEOBJECT_TYPE_SPELLCASTER = 22
GAMEOBJECT_TYPE_MEETINGSTONE = 23
GAMEOBJECT_TYPE_FLAGSTAND = 24
GAMEOBJECT_TYPE_FISHINGHOLE = 25
GAMEOBJECT_TYPE_FLAGDROP = 26
GAMEOBJECT_TYPE_MINI_GAME = 27
GAMEOBJECT_TYPE_LOTTERY_KIOSK = 28
GAMEOBJECT_TYPE_CAPTURE_POINT = 29
GAMEOBJECT_TYPE_AURA_GENERATOR = 30
GAMEOBJECT_TYPE_DUNGEON_DIFFICULTY = 31
GAMEOBJECT_TYPE_BARBER_CHAIR = 32
GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING = 33
GAMEOBJECT_TYPE_GUILD_BANK = 34
Graphic model id sent to the client from GameObjectDisplayInfo.dbc.
Object’s name
Shows unique text in the object’s casting bar when the object is used.
Object’s faction, if any. See FactionTemplate.dbc
- 1 = in use (can’t interact with the object)
- 2 = Makes chests/doors locked (requiring a key, spell, event to open)
- 4 = Untargetable
- 8 = Transport (Object can transport (elevator, boat, car))
- 16 = Player cant interact with the object.
- 32 = No despawn (never despawn, typically for doors, they just change state)
- 64 = Triggered (typically, summoned objects. Triggered by spell or other events)
NOTE: All chests that contain only quest loots need to have flag 4 set as the core will only allow players who have the quest in their questlog to loot them.
enum GameobjectExtraFlags
GAMEOBJECT_EXTRA_FLAG_CUSTOM_ANIM_ON_USE = 0x00000001, // GO that plays custom animation on usage
GAMEOBJECT_EXTRA_FLAG_DYNGUID = 0x00000002, // Temporary - Uses new dynguid system
GAMEOBJECT_EXTRA_FLAG_ACTIVE = 0x00001000, // Always active
Object’s size must be set because graphic models can be resample.
The content of the data fields depends on the gameobject type
-
GAMEOBJECT_TYPE_DOOR = 0
- data0: startOpen (Boolean flag)
- data1: open (LockId from Lock.dbc)
- data2: autoClose (65536 * seconds(sniff value)) (e.g. open after 5 min = 300 * 65536 = 19660800)
- data3: noDamageImmune (Boolean flag)
- data4: openTextID (Unknown Text ID)
- data5: closeTextID (Unknown Text ID)
-
GAMEOBJECT_TYPE_BUTTON = 1
- data0: startOpen (State)
- data1: open (LockId from Lock.dbc)
- data2: autoClose (65536 * seconds(sniff value))
- data3: linkedTrap (gameobject_template.entry (Spawned GO type 6))
- data4: noDamageImmune (Boolean flag)
- data5: large? (Boolean flag)
- data6: openTextID (Unknown Text ID)
- data7: closeTextID (Unknown Text ID)
- data8: losOK (Boolean flag)
-
GAMEOBJECT_TYPE_QUESTGIVER = 2
- data0: open (LockId from Lock.dbc)
- data1: questList (unknown ID)
- data2: pageMaterial (PageTextMaterial.dbc)
- data3: gossipID (unknown ID)
- data4: customAnim (unknown value from 1 to 4)
- data5: noDamageImmune (Boolean flag)
- data6: openTextID (broadcast_text ID)
- data7: losOK (Boolean flag)
- data8: allowMounted (Boolean flag)
- data9: large? (Boolean flag)
-
GAMEOBJECT_TYPE_CHEST = 3
- data0: open (LockId from Lock.dbc)
- data1: chestLoot (gameobject_loot_template.entry) This field is obtained from WDB data and is not to be changed
- data2: chestRestockTime (time in seconds)
- data3: consumable (State: Boolean flag)
- data4: minRestock (Min successful loot attempts for Mining, Herbalism etc)
- data5: maxRestock (Max successful loot attempts for Mining, Herbalism etc)
- data6: lootedEvent (dbscripts_on_event)
- data7: linkedTrap (gameobject_template.entry (Spawned GO type 6))
- data8: questID (quest_template.entry of completed quest)
- data9: level (minimal level required to open this gameobject)
- data10: losOK (Boolean flag)
- data11: leaveLoot (Boolean flag)
- data12: notInCombat (Boolean flag)
- data13: log loot (Boolean flag)
- data14: openTextID (Unknown ID)
- data15: use group loot rules (Boolean flag)
- GAMEOBJECT_TYPE_BINDER = 4
Object type not used
-
GAMEOBJECT_TYPE_GENERIC = 5
- data0: floatingTooltip (Boolean flag)
- data1: highlight (Boolean flag)
- data2: serverOnly? (Always 0)
- data3: large? (Boolean flag)
- data4: floatOnWater (Boolean flag)
- data5: questID (Required active quest_template.entry to work)
-
GAMEOBJECT_TYPE_TRAP = 6
- data0: open (LockId from Lock.dbc)
- data1: level (npc equivalent level for casted spell)
- data2: diameter (so radius*2)
- data3: spell (Spell Id from spell.dbc)
- data4: charges (0 or 1)
- data5: cooldown (time in seconds)
- data6: autoClose (unknown)
- data7: startDelay? (time in seconds)
- data8: serverOnly? (always 0)
- data9: stealthed (Boolean flag)
- data10: large? (Boolean flag)
- data11: stealthAffected (Boolean flag)
- data12: openTextID (Unknown ID)
-
GAMEOBJECT_TYPE_CHAIR = 7
- data0: chairslots (number of players that can sit down on it)
- data1: chairorientation? (number of usable side?)
-
GAMEOBJECT_TYPE_SPELL_FOCUS = 8
- data0: spellFocusType (from SpellFocusObject.dbc)
- data1: diameter (so radius*2)
- data2: linkedTrap (gameobject_template.entry (Spawned GO type 6))
- data3: serverOnly? (1: Visible to GM only, 0: Visible to all players)
- data4: questID (Required active quest_template.entry to work)
- data5: large? (Boolean flag)
-
GAMEOBJECT_TYPE_TEXT = 9
- data0: pageID (page_text.entry)
- data1: language (from Languages.dbc)
- data2: pageMaterial (PageTextMaterial.dbc)
-
GAMEOBJECT_TYPE_GOOBER = 10
- data0: open (LockId from Lock.dbc)
- data1: questID (Required active quest_template.entry to work)
- data2: eventID (The id of the event that the gameobject will activate)
- data3: autoClose (most be the same like doors (65536 * seconds(sniff value))
- data4: customAnim (unknown)
- data5: consumable (Boolean flag controling if gameobject will despawn or not)
- data6: cooldown (time in seconds)
- data7: pageID (page_text.entry)
- data8: language (from Languages.dbc)
- data9: pageMaterial (PageTextMaterial.dbc)
- data10: spell (Spell Id from spell.dbc)
- data11: noDamageImmune (Boolean flag)
- data12: linkedTrap (gameobject_template.entry (Spawned GO type 6))
- data13: large? (Boolean flag)
- data14: openTextID (Unknown ID)
- data15: closeTextID (Unknown ID)
- data16: losOK (Boolean flag)
- GAMEOBJECT_TYPE_TRANSPORT = 11
No data data used, all are always 0
- GAMEOBJECT_TYPE_AREADAMAGE = 12
Object type not used
-
GAMEOBJECT_TYPE_CAMERA = 13
- data0: open (LockId from Lock.dbc)
- data1: camera (Cinematic entry from CinematicCamera.dbc)
- GAMEOBJECT_TYPE_MAPOBJECT = 14
No data data used, all are always 0
-
GAMEOBJECT_TYPE_MOTRANSPORT = 15
- data0: taxiPathID (Id from TaxiPath.dbc)
- data1: moveSpeed
- data2: accelRate
- GAMEOBJECT_TYPE_DUELFLAG = 16
Only one Gameobject with this type (21680) and no data data
- GAMEOBJECT_TYPE_FISHINGNODE = 17
Only one Gameobject with this type (35591) and no data data
-
GAMEOBJECT_TYPE_RITUAL = 18
- data0: casters/clickers
- data1: spell (Spell Id from spell.dbc)
- data2: animSpell (Spell Id from spell.dbc)
- data3: ritualPersistent (Boolean flag)
- data4: casterTargetSpell (Spell Id from spell.dbc)
- data5: casterTargetSpellTargets (Boolean flag)
- data6: castersGrouped (Boolean flag)
- GAMEOBJECT_TYPE_MAILBOX = 19
No data data used, all are always 0
-
GAMEOBJECT_TYPE_AUCTIONHOUSE = 20
- data0: actionHouseID (From AuctionHouse.dbc ?)
- GAMEOBJECT_TYPE_GUARDPOST = 21
Object type not used
-
GAMEOBJECT_TYPE_SPELLCASTER = 22
- data0: spell (Spell Id from spell.dbc)
- data1: charges
- data2: partyOnly (Boolean flag, need to be in group to use it)
-
GAMEOBJECT_TYPE_MEETINGSTONE = 23
- data0: minLevel
- data1: maxLevel
- data2: areaID (From AreaTable.dbc)
-
GAMEOBJECT_TYPE_FLAGSTAND = 24
- data0: open (LockId from Lock.dbc)
- data1: pickupSpell (Spell Id from spell.dbc)
- data2: radius (distance)
- data3: returnAura (Spell Id from spell.dbc)
- data4: returnSpell (Spell Id from spell.dbc)
- data5: noDamageImmune (Boolean flag)
- data6: openTextID
- data7: losOK (Boolean flag)
-
GAMEOBJECT_TYPE_FISHINGHOLE = 25
- data0: radius (distance)
- data1: chestLoot (gameobject_loot_template.entry)
- data2: minRestock
- data3: maxRestock
-
GAMEOBJECT_TYPE_FLAGDROP = 26
- data0: open (LockId from Lock.dbc)
- data1: eventID (Unknown Event ID)
- data2: pickupSpell (Spell Id from spell.dbc)
- data3: noDamageImmune (Boolean flag)
- GAMEOBJECT_TYPE_MINIGAME = 27
Object type not used
Reused in core for CUSTOM_TELEPORT
- ** data0: areatrigger_teleport.id
- GAMEOBJECT_TYPE_LOTTERYKIOSK = 28
Object type not used
-
GAMEOBJECT_TYPE_CAPTUREPOINT = 29
- data0: radius (Distance)
- data1: spell (Unknown ID, not a spell id in dbc file, maybe server only side spell)
- data2: worldState1
- data3: worldstate2
- data4: winEventID1 (Unknown Event ID)
- data5: winEventID2 (Unknown Event ID)
- data6: contestedEventID1 (Unknown Event ID)
- data7: contestedEventID2 (Unknown Event ID)
- data8: progressEventID1 (Unknown Event ID)
- data9: progressEventID2 (Unknown Event ID)
- data10: neutralEventID1 (Unknown Event ID)
- data11: neutralEventID2 (Unknown Event ID)
- data12: neutralPercent
- data13: worldstate3
- data14: minSuperiority
- data15: maxSuperiority
- data16: minTime (in seconds)
- data17: maxTime (in seconds)
- data18: large? (Boolean flag)
-
GAMEOBJECT_TYPE_AURA_GENERATOR = 30
- data0: startOpen (Boolean flag)
- data1: radius (Distance)
- data2: auraID1 (Spell Id from spell.dbc)
- data3: conditionID1 (Unknown ID)
-
GAMEOBJECT_TYPE_DUNGEONDIFFICULTY = 31
- data0: mapID (From Map.dbc)
- data1: difficulty (0 or 1)
- GAMEOBJECT_TYPE_BARBER_CHAIR = 32
Used for barber chairs.
- GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING = 33
Object type not used
- GAMEOBJECT_TYPE_GUILD_BANK = 34
No data data used, all are always 0
For trap => type 6 GO, 0 value targets enemies, 1 friendlies and 2 all
Minimum possible gold that the GO holds when looted, in copper.
Maximum possible gold that the GO holds when looted, in copper.
string_id – sets StringId to all spawns of entry
Name of the script this object uses if needed