GUID

GUIDs uniquely identify almost everything the player character can interact with in World of Warcraft -- including players, pets, vehicle, and interactive world objects (think Midsummer bonfires). GUIDs are represented in WoW as a long string of hex numbers separated by hyphens.

Details
GUIDs are intended to provide a unique way to identify units; the following general rules apply:
 * A monster has a single GUID from spawn until death (or despawn). When it respawns it gets a new GUID.
 * Pets get a new GUID each time they are summoned.
 * Monster and pet GUIDs can be recycled after server (or instance) restart.
 * Players keep their GUID forever, and are unique even in cross-server battlegrounds.
 * However, units that "transform" into other units may not switch GUID immediately.

BattlePet
BattlePet-0-[ID] Prints the currently active companion pet.
 * GUIDs for Battle Pets, also referred to sometimes as . (Not to be confused with speciesID)

BNetAccount
BNetAccount-0-[accountID] The  portion of the GUID is, at least for friend accounts, a hexadecimal form of the Battle.net account ID as used by
 * GUIDs for Battle.net accounts are returned from or

Cast
Cast-[type]-[serverID]-[instanceID]-[zoneUID]-[spellID]-[castUID]
 * GUIDs for spell casts are obtained from spell cast events or as a return value from

The  parameter has the following known variants.

For local spell casts, the server, instance, and zone ID components will always be zero, and the cast UID will be a locally-incrementing integer.

For all other known spell cast types, the cast UID component is similar to Creature and Vehicle GUIDs; the lowest 23 bits represent the timestamp of the cast measured in seconds since the UNIX epoch as returned by modulo , and the higher bits appear to be an incrementing number for spell casts that occur within the same second.

ClientActor
ClientActors are NPCs which are only simulated by the game client instead of the server. ClientActor-x-yy-zzzz

Creature
[unitType]-0-[serverID]-[instanceID]-[zoneUID]-[ID]-[spawnUID]
 * Types:

For Creature and Vehicle GUIDs the  component encodes a wrapping spawn time offset of the entity in the low 23 bits of the field, measured in seconds since the UNIX epoch as returned by  modulo. Higher bits appear to be a unique counter for individual spawns within the same time unit.



For Pet GUIDs the  component encodes a unique identifier in the low 32 bits, similar to Player GUIDs, and a wrapping counter in the upper 8 bits representing the number of times the pet has been summoned.



Item
Item-[serverID]-0-[spawnUID] Prints the GUID of the item in the player's head slot.
 * GUIDs for items are returned from, ItemMixin:GetItemGUID and . (Not to be confused with ItemIDs)

Player
Player-[serverID]-[playerUID]
 * GUIDs for Units are returned from

It should be noted that the act of transferring characters, either server to server, account to account, or even account to account while remaining on the same server will generate a new character GUID, because of how the process works (the character "ceases to exist" for a short period, and is then recreated). This act erases friend and ignore lists. Renaming a character does not trigger a new GUID, as that process is much simpler than a full character move.