-
Notifications
You must be signed in to change notification settings - Fork 5
Packets
Amy Zala edited this page Aug 14, 2020
·
22 revisions
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;
}
struct MatrixPacketHeader {
PacketHeader BaseHeader;
char[4] MessageID;
}
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;
}
struct ControlPacket{
GamePacketHeader BaseHeader;
byte MessageID;
}
- 0: CloseConnection
- 2: MatrixAck
- 3: ReliableGSSAck
- 4: TimeSyncRequest
- 5: TimeSyncResponse
- 6: MTUProbe
struct MatrixPacket{
GamePacketHeader BaseHeader;
byte MessageID;
}
- 17: Login
- 18: EnterZoneAck
- 19: ExitZoneAck
- 20: KeyframeRequest
- 21: DEV_ExecuteCommand
- 22: Referee_ExecuteCommand
- 23: RequestPause
- 24: RequestResume
- 25: ClientStatus
- 26: ClientPreferences
- 27: SynchronizationResponse
- 28: SuperPing
- 29: StressTestMasterObject
- 30: ServerProfiler_RequestNames
- 31: LogInstrumentation
- 32: RequestSigscan
- 33: SendEmergencyChat
- 34: SigscanData
- 35: WelcomeToTheMatrix
- 36: Announce
- 37: EnterZone
- 38: UpdateZoneTimeSync
- 39: HotfixLevelChanged
- 40: ExitZone
- 41: MatrixStatus
- 42: MatchQueueResponse
- 43: MatchQueueUpdate
- 44: FoundMatchUpdate
- 45: ChallengeJoinResponse
- 46: ChallengeInvitation
- 47: ChallengeInvitationSquadInfoAck
- 48: ChallengeInvitationCancel
- 49: ChallengeInvitationResponse
- 50: ChallengeKicked
- 51: ChallengeLeave
- 52: ChallengeRosterUpdate
- 53: ChallengeReadyCheck
- 54: ChallengeMatchParametersUpdate
- 55: ChallengeMatchStarting
- 56: ForceUnqueue
- 57: SynchronizationRequest
- 58: GamePaused
- 59: SuperPong
- 60: ServerProfiler_SendNames
- 61: ServerProfiler_SendFrame
- 62: ZoneQueueUpdate
- 63: DebugLagSampleSim
- 64: DebugLagSampleClient
- 65: LFGMatchFound
- 66: LFGLeaderChange
- 67: ReceiveEmergencyChat
- 68: UpdateDevZoneInfo
struct GSSPacket{
GamePacketHeader BaseHeader;
byte ControllerID;
[BigEndian]
ulong EntityID; // 7 bytes
byte MessageID;
}
- Controller: Generic (0) - Entity: InstanceID