SMSG_PET_SPELLS

Client Version 1, Client Version 2

Wowm Representation

Autogenerated from wowm file at wow_message_parser/wowm/world/pet/smsg_pet_spells.wowm:11.

smsg SMSG_PET_SPELLS = 0x0179 {
    Guid pet;
    optional action_bars {
        u32 duration;
        PetReactState react;
        PetCommandState command;
        u8 unknown;
        PetEnabled pet_enabled;
        u32[10] action_bars;
        u8 amount_of_spells;
        u32[amount_of_spells] spells;
        u8 amount_of_cooldowns;
        PetSpellCooldown[amount_of_cooldowns] cooldowns;
    }
}

SMSG have a header of 4 bytes.

SMSG Header

OffsetSize / EndiannessTypeNameDescription
0x002 / Biguint16sizeSize of the rest of the message including the opcode field but not including the size field.
0x022 / Littleuint16opcodeOpcode that determines which fields the message contains.

Body

OffsetSize / EndiannessTypeNameComment
0x048 / LittleGuidpet

Optionally the following fields can be present. This can only be detected by looking at the size of the message.

OffsetSize / EndiannessTypeNameComment
0x0C4 / Littleu32duration
0x101 / -PetReactStatereact
0x111 / -PetCommandStatecommand
0x121 / -u8unknownmangoszero: set to 0
0x131 / -PetEnabledpet_enabled
0x1440 / -u32[10]action_bars
0x3C1 / -u8amount_of_spells
0x3D? / -u32[amount_of_spells]spells
-1 / -u8amount_of_cooldowns
-? / -PetSpellCooldown[amount_of_cooldowns]cooldowns

Client Version 3.3.5

Wowm Representation

Autogenerated from wowm file at wow_message_parser/wowm/world/pet/smsg_pet_spells.wowm:40.

smsg SMSG_PET_SPELLS = 0x0179 {
    Guid pet;
    optional action_bars {
        (u16)CreatureFamily family;
        u32 duration;
        PetReactState react;
        PetCommandState command;
        u8 unknown;
        PetEnabled pet_enabled;
        u32[10] action_bars;
        u8 amount_of_spells;
        u32[amount_of_spells] spells;
        u8 amount_of_cooldowns;
        PetSpellCooldown[amount_of_cooldowns] cooldowns;
    }
}

Header

SMSG have a header of 4 bytes.

SMSG Header

OffsetSize / EndiannessTypeNameDescription
0x002 OR 3 / Biguint16 OR uint16+uint8sizeSize of the rest of the message including the opcode field but not including the size field. Wrath server messages can be 3 bytes. If the first (most significant) size byte has 0x80 set, the header will be 3 bytes, otherwise it is 2.
-2 / Littleuint16opcodeOpcode that determines which fields the message contains.

Body

OffsetSize / EndiannessTypeNameComment
-8 / LittleGuidpet

Optionally the following fields can be present. This can only be detected by looking at the size of the message.

OffsetSize / EndiannessTypeNameComment
-2 / -CreatureFamilyfamily
-4 / Littleu32duration
-1 / -PetReactStatereact
-1 / -PetCommandStatecommand
-1 / -u8unknownmangoszero: set to 0
-1 / -PetEnabledpet_enabled
-40 / -u32[10]action_bars
-1 / -u8amount_of_spells
-? / -u32[amount_of_spells]spells
-1 / -u8amount_of_cooldowns
-? / -PetSpellCooldown[amount_of_cooldowns]cooldowns