Transport Layer:Transmission Control Protocol (TCP)
Application Layer:Diablo II Realm Messages (MCP)
Message Id:0x19
Message Name:MCP_CHARLIST2
Direction:Server to Client
Used By:Diablo II, Diablo II Lord of Destruction
Message Format:
(does not include protocol header)
(UINT16) Number of characters requested
(UINT32) Number of characters that exist on this account
(UINT16) Number of characters returned
For each character returned:
    (UINT32) Expiration date
    (STRING) Character name
    (STRING) Character statstring


Lists characters.

The expiration date is a second count. To determine when the character will expire, add this time to January 1 00:00:00 UTC 1970 and determine the difference between that value and now (all in seconds).

The statstrings in this packet do not contain the product or character name. Everything else is the same as a character statstring you would receive from a character entering the channel.

| Edited: LordVader



The character data chunks seem to follow this structure for "each" character:
(DWORD) Expiration date
(STRING) Character name -- length of this always seems to be 11 bytes
(STRING) Statstring -- length of this always seems to be 34 bytes