SMSG_LOGIN_SETTIMESPEED

Client Version 1, Client Version 2, Client Version 3.0, Client Version 3.1.0, Client Version 3.1.1

Tells the client what the datetime is and how fast time passes.

The client also asks for the datetime with CMSG_QUERY_TIME and gets a reply from SMSG_QUERY_TIME_RESPONSE, but this does not appear to change anything in the client.

Despite sending this as the very first message after the client logs in it will still send a CMSG_QUERY_TIME.

Wowm Representation

Autogenerated from wowm file at wow_message_parser/wowm/world/login_logout/smsg_login_settimespeed.wowm:4.

smsg SMSG_LOGIN_SETTIMESPEED = 0x0042 {
    DateTime datetime;
    f32 timescale;
}

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 / LittleDateTimedatetimeCurrent server datetime.
Running the client with -console verifies that this message in this format sets the correct datetime. SMSG_QUERY_TIME_RESPONSE will not set this.
0x084 / Littlef32timescaleHow many minutes should pass by every second.
vmangos/cmangos/mangoszero set this to 0.01666667. This means that 1/60 minutes pass every second (one second passes every second). Setting this to 1.0 will make the client advance one minute every second.

Examples

Example 1

Comment

Set time to 2022-08-13 (Wednesday) 08:10 and timescale 0.016666668 (1/60).

0, 10, // size
66, 0, // opcode (66)
10, 50, 115, 22, // datetime: DateTime
137, 136, 136, 60, // timescale: f32

Client Version 3.1.2, Client Version 3.2, Client Version 3.3

Wowm Representation

Autogenerated from wowm file at wow_message_parser/wowm/world/login_logout/smsg_login_settimespeed.wowm:28.

smsg SMSG_LOGIN_SETTIMESPEED = 0x0042 {
    DateTime datetime;
    f32 timescale;
    u32 unknown1;
}

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 / LittleDateTimedatetimeCurrent server datetime.
Running the client with -console verifies that this message in this format sets the correct datetime. SMSG_QUERY_TIME_RESPONSE will not set this.
0x084 / Littlef32timescaleHow many minutes should pass by every second.
vmangos/cmangos/mangoszero set this to 0.01666667. This means that 1/60 minutes pass every second (one second passes every second). Setting this to 1.0 will make the client advance one minute every second.
0x0C4 / Littleu32unknown1arcemu/azerothcore/mangostwo: Set to 0.