Packets - themeldingwars/Documentation GitHub Wiki

Packet Definition List

Note: The code below is not meant to be functional. It is only used as a way to convey the layout of the data.

struct PacketHeader {
	[BigEndian]
	uint SocketID;
}

MatrixServer

struct MatrixPacketHeader {
	PacketHeader BaseHeader;
	char[4] MessageID;
}

GameServer

struct GamePacketHeader {
	PacketHeader BaseHeader;
	
	[BigEndian]
	ushort PacketInfo;
	// CCRRSLLLLLLLLLLL
	// byte Channel;	// 2 bits
	// byte ResendCount;	// 2 bits
	// bool IsSplit;	// 1 bit
	// ushort Length;	// 11 bits
	
	// If Channel == 1 || Channel == 2 || Channel == 3
	[BigEndian]
	ushort SequenceNumber;
}

GameServer - Control

struct ControlPacket{
	GamePacketHeader BaseHeader;
	byte MessageID;
}

GameServer - Matrix

struct MatrixPacket{
	GamePacketHeader BaseHeader;
	byte MessageID;
}

GameServer - GSS

struct GSSPacket{
	GamePacketHeader BaseHeader;
	byte ControllerID;
	[BigEndian]
	ulong EntityID; // 7 bytes
	byte MessageID;
}