The `gameobject` table
This table holds the individual object data on each spawned game object in the world. This data along with the object's template data is read and used to instantiate the objects in the world.
Table Structure
Field | Type | Attributes | Key | Null | Default | Extra | Comment |
---|---|---|---|---|---|---|---|
guid | INT | UNSIGNED | PRI | NO | NULL | Auto increment | Global Unique Identifier |
id | INT | UNSIGNED | NO | 0 | Gameobject Identifier | ||
map | SMALLINT | UNSIGNED | NO | 0 | Map Identifier | ||
zoneId | SMALLINT | UNSIGNED | NO | 0 | Zone Identifier | ||
areaId | SMALLINT | UNSIGNED | NO | 0 | Area Identifier | ||
spawnMask | TINYINT | UNSIGNED | NO | 1 | |||
phaseMask | SMALLINT | UNSIGNED | NO | 1 | |||
position_x | FLOAT | SIGNED | NO | 0 | |||
position_y | FLOAT | SIGNED | NO | 0 | |||
position_z | FLOAT | SIGNED | NO | 0 | |||
orientation | FLOAT | SIGNED | NO | 0 | |||
rotation0 | FLOAT | SIGNED | NO | 0 | |||
rotation1 | FLOAT | SIGNED | NO | 0 | |||
rotation2 | FLOAT | SIGNED | NO | 0 | |||
rotation3 | FLOAT | SIGNED | NO | 0 | |||
spawntimesecs | INT | SIGNED | NO | 0 | |||
animprogress | TINYINT | UNSIGNED | NO | 0 | |||
state | TINYINT | UNSIGNED | NO | 1 | |||
ScriptName | CHAR | YES | '' | ||||
VerifiedBuild | INT | SIGNED | YES | NULL | Not used by the core. | ||
Comment | TEXT | YES | NULL |
Description of the fields
The global unique identifier for the game object. This field must be unique among all game objects.
The template ID of the gameobject. See gameobject_template.entry
The map ID where this object is spawned. See Maps.dbc
The ID of the zone that this object is spawned in. (e.g. The Barrens)
This column is filled in by the worldserver on startup if the Calculate.Gameoject.Zone.Area.Data
setting is enabled. It originates from AreaTable.dbc.
The ID of the area that this object is spawned in. You can think of an area as a "subzone" of a zone, e.g. Lushwater Oasis inside The Barrens.
This column is filled in by the worldserver on startup if the Calculate.Gameoject.Zone.Area.Data
setting is enabled. It originates from AreaTable.dbc.
Controls under which difficulties the object is spawned.
Just like flags you can add them as you wish so 3 would be: Spawned in 10/25 man normal versions of maps (pre 3.2 all maps)
Value | Comment |
---|---|
0 | Not spawned |
1 | Spawned only in 10-man-normal versions of maps (includes maps without a heroic mode) |
2 | Spawned only in 25-man-normal versions of maps (or heroics pre 3.2) |
4 | Spawned only in 10-man heroic versions of maps |
8 | Spawned only in 25-man-heroic versions of maps |
15 | Spawned in all versions of maps |
This is a bitmask field that describes all the phases that this gameobject will appear in. Aura 261 determines the phase you can see. For example, if you had this aura http://www.wowhead.com/?spell=55782, you would be able to see gameobjects in phase 2. If you wanted the gameobject to be visible in both phase 1 and phase 2, you would set the phaseMask to 3.
The X position.
The Y position.
The Z position.
The orientation. (North = 0, South = 3.14159)
Time in seconds for this object to respawn.
Using 0 will result in the object not despawning on use.
Using a negative value will result in the object starting out by being "despawned" until a script will spawn it. It will then despawn after the amount of time specified here has passed.
Not really known what this is used for at this time. However, always set it to 100 for chests.
For chests or doors.
Same as gameobject_template.scriptname.
A gameobject.scriptname record will override a gameobject_template.scriptname record.
This field is used to determine if this gameobject originates from verified sniffs.
If value is 0 then it has not been parsed yet or it has been inherited from an older DB or another Core.
If value is above 0 then it has been parsed with sniffs from that specific client build.
If value is -Client Build then it was parsed with WDB files from that specific client build and manually edited later for some special necessity.
This field serves to add additional context to this gameobject, mostly in the context of sniffed values or script notes.
For example, if a gameobject's position needed to be modified, the original positions are kept in the comment field. Or if the gobs in question are part of a larger script, the comment serves for context.