Table of Contents

Chat Text (0xB3)

Moongate Packet Classes

  • ChatTextPacket (Incoming, Variable, length -1) from src/Moongate.Network.Packets/Incoming/Speech/ChatTextPacket.cs

Current Moongate Behavior

Moongate currently has packet classes for this opcode.

Packet Build

Type Field
BYTE[1] cmd
BYTE[2] Length
BYTE[4] Unicode Language Code
BYTE[2] Type

Subcommand Build

Type 0x41 (Change Password):

Type Field
BYTE[?] Unicode Password
BYTE[2] Null Terminator (00 00)

Type 0x58 (Close):

| Type | Field | | --- | --- | | BYTE[2] | Null Terminator (00 00) | Type 0x61 (Message):

Type Field
BYTE[?] Unicode Message
BYTE[2] Null Terminator (00 00)

Text 0x62 (Join Conference):

Type Field
BYTE[2] Holder (0x0022)
BYTE[?] Unicode conference name
BYTE[2] Holder (0x0022)
BYTE[2] Holder (0x0020)
BYTE[?] Unicode password if pass req'd
BYTE[2] Null Teriminator (0x0000)

Text 0x63 (Create New Conference):

Type Field
BYTE[?] Unicode conference name
BYTE[2] Holder (0x007b) if pass entered
BYTE[?] Unicode conference pass if pass entered
BYTE[2] Holder (0x007d) if pass entered
BYTE[2] Null Teriminator (0x0000)

Text 0x64 (Rename Conference):

Type Field
BYTE[?] Unicode conference name (all text after /rename )
BYTE[2] Null Teriminator (0x0000)

Text 0x65 (Send Private Message):

Type Field
BYTE[?] Unicode name (all text after /msg )
BYTE[2] Null Teriminator (0x0000)

Text 0x66 (Ignore):

Type Field
BYTE[?] Unicode name (all text after +ignore )
BYTE[2] Null Teriminator (0x0000)

Text 0x67 (Stop Ignoring):

Type Field
BYTE[?] Unicode name (all text after -ignore )
BYTE[2] Null Teriminator (0x0000)

Text 0x68 (Toggle Ignore):

Type Field
BYTE[?] Unicode name (all text after /ignore )
BYTE[2] Null Teriminator (0x0000)

Text 0x69 (Grant Speaking Priveleges):

Type Field
BYTE[?] Unicode name (all text after +voice )
BYTE[2] Null Teriminator (0x0000)

Text 0x6A (Remove Speaking Priveleges):

Type Field
BYTE[?] Unicode name (all text after -voice )
BYTE[2] Null Teriminator (0x0000)

Text 0x6B (Toggle Speaking Priveleges):

Type Field
BYTE[?] Unicode name (all text after /voice )
BYTE[2] Null Teriminator (0x0000)

Text 0x6C (Grant Moderator Status):

Type Field
BYTE[?] Unicode name (all text after +ops )
BYTE[2] Null Teriminator (0x0000)

Text 0x6D (Remove Moderator Status):

Type Field
BYTE[?] Unicode name (all text after -ops )
BYTE[2] Null Teriminator (0x0000)

Text 0x6E (Toggle Moderator Status):

Type Field
BYTE[?] Unicode name (all text after /ops )
BYTE[2] Null Teriminator (0x0000)

Text 0x6F (not receiving messages):

| Type | Field | | --- | --- | | BYTE[2] | Null Teriminator (0x0000) | Text 0x70 (receiving messages):

| Type | Field | | --- | --- | | BYTE[2] | Null Teriminator (0x0000) | Text 0x71 (Toggle receiving messages):

| Type | Field | | --- | --- | | BYTE[2] | Null Teriminator (0x0000) | Text 0x72 (show my character name):

Type Field
BYTE[2] Null Teriminator (0x0000)
  • Text 0x73 (don't show my character name):
Type Field
BYTE[2] Null Teriminator (0x0000)

Text 0x74 (Toggle showing my character name):

Type Field
BYTE[2] Null Teriminator (0x0000)
  • Text 0x75 (Who is this player?):
Type Field
BYTE[?] Unicode text (all text after /whois )
BYTE[2] Null Teriminator (0x0000)

Text 0x76 (Kick out of the conference?):

Type Field
BYTE[?] Unicode text (all text after /kick )
BYTE[2] Null Teriminator (0x0000)

Text 0x77 (only moderators have speaking priveleges by default):

| Type | Field | | --- | --- | | BYTE[2] | Null Teriminator (0x0000) | Text 0x78 (everyone has speaking priveleges by default):

| Type | Field | | --- | --- | | BYTE[2] | Null Teriminator (0x0000) | Text 0x79 (Toggle default speaking priveleges):

| Type | Field | | --- | --- | | BYTE[2] | Null Teriminator (0x0000) | Text 0x7A (emote)

Type Field
BYTE[?] Unicode text (all text after /emote or /em ):
BYTE[2] Null Teriminator (0x0000)

Notes

N/A