Table of Contents

Chat Message (0xB2)

Moongate Packet Classes

  • ChatCommandPacket (Outgoing, Inherited, length Inherited) from src/Moongate.Network.Packets/Outgoing/Speech/ChatCommandPacket.cs

Current Moongate Behavior

Moongate currently has packet classes for this opcode.

Packet Build

Type Field
BYTE[1] cmd
BYTE[2] length
BYTE[2] messageType

Messagetypes will be listed as Subcommands.

Subcommand Build

Messagetypes 0x0001 - 0x0024:

Type Field
BYTE[4] unknown (00 00 00 00)
BYTE[len-9] Unicode for %1 if the message type has a %1 variable for inputting text.
BYTE[2] Null Terminator if there is a %2 Unicode element. (00 00)
BYTE[len-(2+%1+9)] Unicode for %2 if the message type has a %2 variable for inputting text.
BYTE[2] Null Terminator for Packet (00 00)

Messagetypes 0x0028 - 0x002C:

Type Field
BYTE[4] unknown (00 00 00 00)
BYTE[len-9] Unicode for %1 if the message type has a %1 variable for inputting text.
BYTE[2] Null Terminator if there is a %2 Unicode element. (00 00)
BYTE[len-(2+%1+9)] Unicode for %2 if the message type has a %2 variable for inputting text.
BYTE[2] Null Terminator for Packet (00 00)

MessageType 0x0025 (Message), 0x0026 (Emote), 0x0027 (OOC):

Type Field
BYTE[3] Language Code (ENU for english)
BYTE[1] Null Terminator (00)
BYTE[2] Message from (see notes)
BYTE[?] Username in Unicode
BYTE[2] Null Terminator for Username (00 00)
BYTE[?] Unicode Message Sent
BYTE[2] Null Terminator for Message

MessageType 0x03E8 (create conference):

Type Field
BYTE[4] Unknown (00 00 00 00)
BYTE[?] Unicode Channel Name
BYTE[2] Null Terminator for Channel Name (00 00)
BYTE[2] Password Setting (00 30 = No Pass, 00 31 = Password required)
BYTE[2] Null Terminator for packet (00 00)

MessageType 0x03E9 (Destroy conference):

Type Field
BYTE[4] Unknown (00 00 00 00)
BYTE[?] Unicode Channel Name
BYTE[4] Unknown (00 00 00 00)

MessageType 0x03EB (Display Enter Username window):

| Type | Field | | --- | --- | | BYTE[8] | Unknown (00 00 00 00 00 00 00 00) | MessageType 0x03EC (Close Chat):

Type Field
BYTE[8] Unknown (00 00 00 00 00 00 00 00)
  • MessageType 0x03ED (Username accepted, display chat):
Type Field
BYTE[4] Unknown (00 00 00 00)
BYTE[?] Unicode Username
BYTE[4] Null Terminator (00 00 00 00)

MessageType 0x03EE (Add User):

Type Field
BYTE[4] Unknown (00 00 00 00)
BYTE[2] User Type (see notes)
BYTE[?] Unicode Username
BYTE[2] Null Terminator (00 00)

MessageType 0x03EF (Remove User):

Type Field
BYTE[4] Unknown (00 00 00 00)
BYTE[?] Unicode Username
BYTE[2] Null Terminator (00 00)

MessageType 0x03F0 (Clear All Players):

Type Field
BYTE[8] Unknown (00 00 00 00 00 00 00 00)
  • MessageType 0x03F1 (You have joined the %1 Conference):
Type Field
BYTE[4] Unknown (00 00 00 00)
BYTE[?] Unicode Conference Name (%1)
BYTE[4] Unknown (00 00 00 00)

Notes

MessageTypes 0x0001 - 0x0024 and 0x0028 - 0x002C: Directly from Chat.enu file:

0x0001: You are already ignoring the maximum number of peolpe.

0x0002: You are already ignoring %1.

0x0003: You are now ignoring %1.

0x0004: You are no longer ignoring %1.

0x0005: You are not ignoring %1.

0x0006: You are no longer ignoring anyone.

0x0007: That is not a valid conference name.

0x0008: There is already a conference of that name.

0x0009: You must have operator status to do this.

0x000A: Conference %1 renamed to %2.

0x000B: You must be in a conference to do this. To join a conference, select one from the Conference menu.

0x000C: There is no player named '%1'.

0x000D: There is no conference named '%1'.

0x000E: That is not the correct password.

0x000F: %1 has chosen to ignore you. None of your messages to them will get through.

0x0010: The moderator of this conference has not given you speaking privileges.

0x0011: You can now receive private messages.

0x0012: You will no longer receive private messages. Those who send you a message will be notified that you are blocking incoming messages.

0x0013: You are now showing your character name to any players who inquire with the whois command.

0x0014: You are no longer showing your character name to any players who inquire with the whois command.

0x0015: %1 is remaining anonymous.

0x0016: %1 has chosen to not receive private messages at the moment.

0x0017: %1 is known in the lands of Britannia as %2.

0x0018: %1 has been kicked out of the conference.

0x0019: %1, a conference moderator, has kicked you out of the conference.

0x001A: You are already in the conference '%1'.

0x001B: %1 is no longer a conference moderator.

0x001C: %1 is now a conference moderator.

0x001D: %1 has removed you from the list of conference moderators.

0x001E: %1 has made you a conference moderator.

0x001F: %1 no longer has speaking privileges in this conference.

0x0020: %1 now has speaking privileges in this conference.

0x0021: %1, a conference moderator, has removed your speaking privileges for this conference.

0x0022: %1, a conference moderator, has granted you speaking privileges in this conference.

0x0023: From now on, everyone in the conference will have speaking privileges by default.

0x0024: From now on, only moderators will have speaking privileges in this conference by default.

0x0028: The password to the conference has been changed.

0x0029: Sorry--the conference named '%1' is full and no more players are allowed in.

0x002A: You are banning %1 from this conference.

0x002B: %1, a conference moderator, has banned you from the conference.

0x002C: You have been banned from this conference.

MessageTypes 0025, 0026, and 0027: Message from is as follows:

0x0030 = user, 0x0031 = moderator, 0x0032 = muted, 0x0034 = me, 0x0035 = system

MessageType 03EE:

  • User types are 0030 for User, 0031 for Moderator, and 0032 for Muted User.