Gameobject template

From OregonCore Wiki
Jump to: navigation, search

Back to World_Database_structure list of tables.


The `gameobject_template` table

Contains template off all world's objects


Structure

Field Type Attributes Key Null Default Extra Comment
entry mediumint(8) unsigned PRI NO 0
type tinyint(3) unsigned NO 0
displayId mediumint(8) unsigned NO 0
name varchar(100) signed NO NULL
castBarCaption varchar(100) signed NO NULL
faction smallint(5) unsigned NO 0
flags int(10) unsigned NO 0
size float signed 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
ScriptName varchar(64) signed NO NULL


Description of the fields

entry

Id of the gameobject template

type

   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

displayId

Graphic model id sent to the client from GameObjectDisplayInfo.dbc.

name

Object's name

castBarCaption

Shows unique text in the object's casting bar when the object is used.

faction

Object's faction, if any. See FactionTemplate.dbc

flags

  • 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))
  • 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.

size

Object's size must be set because graphic models can be resample.

data0-23

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 (long unknown flag)
    • 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 (long unknown flag)
    • 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 (Unknown 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 (unknown ID)
    • 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:  ? (unknown flag)
    • 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_SPELLFOCUS = 8
    • data0: spellFocusType (from SpellFocusObject.dbc)
    • data1: diameter (so radius*2)
    • data2: linkedTrap (gameobject_template.entry (Spawned GO type 6))



  • GAMEOBJECT_TYPE_GOOBER = 10
    • data0: open (LockId from Lock.dbc)
    • data1: questID (Required active quest_template.entry to work)
    • data2: eventID (Unknown Event ID)
    • data3:  ? (unknown flag)
    • data4: customAnim (unknown)
    • data5: consumable (Boolean flag controling if gameobject will despawn or not)
    • data6: cooldown (time is 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?
    • 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:  ?
    • data7: losOK (Boolean flag)



  • 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


  • 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_AURAGENERATOR = 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 Maps.dbc)
    • data1: difficulty (0 or 1)


  • GAMEOBJECT_TYPE_BARBER_CHAIR = 32

Used for barbier chairs.


  • GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING = 33

Object type not used


  • GAMEOBJECT_TYPE_GUILD_BANK = 34

No data data used, all are always 0

ScriptName

Name of the script this object uses if needed