SMSG_BATTLEFIELD_STATUS

Client Version 1.12

Wowm Representation

Autogenerated from wowm file at wow_message_parser/wowm/world/battleground/smsg_battlefield_status.wowm:16.

smsg SMSG_BATTLEFIELD_STATUS = 0x02D4 {
    u32 queue_slot;
    Map map;
    if (map != EASTERN_KINGDOMS) {
        BattlegroundBracket bracket;
        u32 client_instance_id;
        StatusId status_id;
        if (status_id == WAIT_QUEUE) {
            u32 average_wait_time_in_ms;
            u32 time_in_queue_in_ms;
        }
        else if (status_id == WAIT_JOIN) {
            u32 time_to_remove_in_queue_in_ms;
        }
        else if (status_id == IN_PROGRESS) {
            u32 time_to_bg_autoleave_in_ms;
            u32 time_to_bg_start_in_ms;
        }
    }
}

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.

Client Version 2.4.3

mangosone treats arena_type, unknown1, battleground_type_id, and unknown2 as one big u64 and does not send any fields after these if all fields are 0.

Wowm Representation

Autogenerated from wowm file at wow_message_parser/wowm/world/battleground/smsg_battlefield_status.wowm:44.

smsg SMSG_BATTLEFIELD_STATUS = 0x02D4 {
    u32 queue_slot;
    ArenaType arena_type;
    u8 unknown1;
    BattlegroundType battleground_type;
    u16 unknown2;
    u32 client_instance_id;
    Bool rated;
    StatusId status_id;
    if (status_id == WAIT_QUEUE) {
        u32 average_wait_time_in_ms;
        u32 time_in_queue_in_ms;
    }
    else if (status_id == WAIT_JOIN) {
        u32 time_to_remove_in_queue_in_ms;
    }
    else if (status_id == IN_PROGRESS) {
        u32 time_to_bg_autoleave_in_ms;
        u32 time_to_bg_start_in_ms;
    }
}

Header

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
0x044 / Littleu32queue_slotvmangos: players can be in 3 queues at the same time (0..2)
0x081 / -ArenaTypearena_type
0x091 / -u8unknown1mangosone sets to 0x0D.
0x0A4 / -BattlegroundTypebattleground_type
0x0E2 / Littleu16unknown2mangosone sets to 0x1F90
0x104 / Littleu32client_instance_id
0x141 / -Boolrated
0x151 / -StatusIdstatus_id

If status_id is equal to WAIT_QUEUE:

OffsetSize / EndiannessTypeNameComment
0x164 / Littleu32average_wait_time_in_ms
0x1A4 / Littleu32time_in_queue_in_ms

Else If status_id is equal to WAIT_JOIN:

OffsetSize / EndiannessTypeNameComment
0x1E4 / Littleu32time_to_remove_in_queue_in_ms

Else If status_id is equal to IN_PROGRESS:

OffsetSize / EndiannessTypeNameComment
0x224 / Littleu32time_to_bg_autoleave_in_ms
0x264 / Littleu32time_to_bg_start_in_ms

Client Version 3.3.5

mangosone treats arena_type, unknown1, battleground_type_id, and unknown2 as one big u64 and does not send any fields after these if all fields are 0.

Wowm Representation

Autogenerated from wowm file at wow_message_parser/wowm/world/battleground/smsg_battlefield_status.wowm:88.

smsg SMSG_BATTLEFIELD_STATUS = 0x02D4 {
    u32 queue_slot;
    ArenaType arena_type;
    u8 is_arena;
    BattlegroundType battleground_type;
    u16 unknown1;
    u8 minimum_level;
    u8 maximum_level;
    u32 client_instance_id;
    Bool rated;
    StatusId status_id;
    if (status_id == WAIT_QUEUE) {
        u32 average_wait_time_in_ms;
        u32 time_in_queue_in_ms;
    }
    else if (status_id == WAIT_JOIN) {
        Map map1;
        u64 unknown2;
        u32 time_to_remove_in_queue_in_ms;
    }
    else if (status_id == IN_PROGRESS) {
        Map map2;
        u64 unknown3;
        u32 time_to_bg_autoleave_in_ms;
        u32 time_to_bg_start_in_ms;
        ArenaFaction faction;
    }
}

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
-4 / Littleu32queue_slotvmangos: players can be in 3 queues at the same time (0..2)
-1 / -ArenaTypearena_type
-1 / -u8is_arenaazerothcore sets to 0x0E if it is arena, 0 otherwise.
-4 / -BattlegroundTypebattleground_type
-2 / Littleu16unknown1azerothcore sets to 0x1F90
-1 / -u8minimum_level
-1 / -u8maximum_level
-4 / Littleu32client_instance_id
-1 / -Boolrated
-1 / -StatusIdstatus_id

If status_id is equal to WAIT_QUEUE:

OffsetSize / EndiannessTypeNameComment
-4 / Littleu32average_wait_time_in_ms
-4 / Littleu32time_in_queue_in_ms

Else If status_id is equal to WAIT_JOIN:

OffsetSize / EndiannessTypeNameComment
-4 / -Mapmap1
-8 / Littleu64unknown2azerothcore: 3.3.5 unknown
-4 / Littleu32time_to_remove_in_queue_in_ms

Else If status_id is equal to IN_PROGRESS:

OffsetSize / EndiannessTypeNameComment
-4 / -Mapmap2
-8 / Littleu64unknown3azerothcore: 3.3.5 unknown
-4 / Littleu32time_to_bg_autoleave_in_ms
-4 / Littleu32time_to_bg_start_in_ms
-1 / -ArenaFactionfaction