UDP Game Protocol
From ASSS Wiki
This is a document outlining the UDP protocol used by game clients (Continuum, SubSpace, and all of the Bots in use today). This is not exhaustive but has been compiled from LogicBot++, MERVBot, and various files from Catid Inside and Snrrrub's Dump. The posted outline is taken from the FPL at Explody's Loot.
Full Packet List (Consolidated Subspace and Continuum Packet List) //====================\\ || C2S || \\====================// ID CLASS HANDLER PKT DESC - OFFSET LEN CONTENTS - [Type Meaning] ---------------------------------------- 0x0100 Core Special Encryption Request - 0 2 Type Byte - 2 4 Client Encryption Key - 6 2 Client Version/Type ---------------------------------------- 0x0200 Core 0x444D5A Connection Affirmation - 0 2 Type - 2 4 Encryption Key ---------------------------------------- 0x0300 Core 0x444EA6 Reliable Message - 0 2 Type - 2 4 ID - 6 - Packet, send this to the handler. ---------------------------------------- 0x0400 Core 0x444DF9 Reliable ACK - 0 2 Type - 2 4 ID ---------------------------------------- 0x0500 Core 0x4450E2 Sync Request - 0 2 Type - 2 4 Timestamp ---------------------------------------- 0x0600 Core 0x444FF9 Sync Response - 0 2 Type - 2 4 Ping time - 6 4 Timestamp ---------------------------------------- 0x0700 Core 0x4453AC Disconnection - 0 2 Type ---------------------------------------- 0x0800 Core 0x445281 File Transfer Body - 0 2 Type ---------------------------------------- 0x0900 Core 0x445281 File Transfer Tail - 0 2 Type ---------------------------------------- 0x0A00 Core 0x4452F8 Huge File Transfer - 0 2 Type ---------------------------------------- 0x0B00 Core 0x44519B Cancel Download (Clear buffer built by 0x000A types) - 0 2 Type ---------------------------------------- 0x0C00 Core 0x44521B Cancel Download Acknowledgment - 0 2 Type ---------------------------------------- 0x0D00 Core 0x444DDE Unknown - 0 2 Type ---------------------------------------- 0x0E00 Core 0x4453B4 Clustered Packet - 0 2 Type - 2 1 Len of packet #1 packet in cluster - 3 Len The packet, run it through the handler. - Len+1 1 Len of next packet in cluster - - - Repeat untill cluster concludes. ---------------------------------------- 0x01 Game 0x40B750 Arena Login - 0 1 Type - 1 1 Ship type - 2 2 Allow audio? - 4 2 X resolution - 6 2 Y resolution - 8 2 Main arena number 0xFFFF for random pub, 0xFFFD for sub. - 10 16 Arena name (optional, if offset 8 is 0xFFFD) ---------------------------------------- 0x02 Game 0x40B3C1 Leave arena - 0 1 Type ---------------------------------------- 0x03 Game 0x409BA9 Position - 0 1 Type - 1 1 Direction - 2 4 Timestamp - 6 2 X velocity - 8 2 Y pixels - 10 1 Checksum - 11 1 Togglables - 12 2 X pixels - 14 2 Y velocity - 16 2 Bounty - 18 2 Energy - 20 2 Weapon info - 22 2 Energy (Optional) - 24 2 S2C latency (Optional) - 26 2 Timer (Optional) - 28 4 Item info (Optional) ---------------------------------------- 0x04 Game 0x40CAA1 Packet tampering - 0 1 Type ---------------------------------------- 0x05 Game 0x40A15B Death message - 0 1 Type ---------------------------------------- 0x06 Chat 0x40B67C Chat - 0 1 Type - 1 1 Chat type - 0x00 Arena - 0x01 Public macro - 0x02 Public message - 0x03 Team message - 0x04 Freq - 0x05 Private message - 0x06 Moderator warning - 0x07 Remote private message - 0x09 Channel message - 2 1 Sound code - 3 2 Target player's player ID - 5 - Text ---------------------------------------- 0x07 Game 0x40AC3B Take green - 0 1 Type ---------------------------------------- 0x08 Game 0x40B26E Spectate request - 0 1 Type - 1 2 Player ID ---------------------------------------- 0x09 Game 0x40C0E7 Password/Login - 0 1 Type - 1 1 Boolean: New user (1 = New, 0 = Not New) - 2 32 Name - 34 32 Password - 66 4 Machine ident (drive serial number - can be random for bots) - 70 1 ConnectType (0x00 is a good idea) - 71 2 Timezone bias - 73 2 Unkown - 75 2 Client version (0x24 = Ctm, 0x86 = SS) - 77 4 Unkown, memory checksum, Set to = 444 - 81 4 Unkown, memory checksum, Set to = 555 - 85 4 Permission ident - 89 12 Unkown ---------------------------------------- 0x0A Game 0x40CAA1 Packet tampering - 0 1 Type ---------------------------------------- 0x0B Game 0x409EA9 SSUpdate.EXE request - 0 1 Type ---------------------------------------- 0x0C Game 0x409A6F Map Request - 0 1 Type ---------------------------------------- 0x0D Game 0x409A9F news.txt request - 0 1 Type ---------------------------------------- 0x0E Game 0x40B4D7 Voice message - 0 1 Type ---------------------------------------- 0x0F Game 0x40AEF5 Frequency change - 0 1 Type ---------------------------------------- 0x10 Game 0x40BF47 Attach request - 0 1 Type ---------------------------------------- 0x11 Game 0x40CAA1 Packet tampering - 0 1 Type ---------------------------------------- 0x12 Game 0x40CAA1 Packet tampering - 0 1 Type ---------------------------------------- 0x13 Game 0x40ADDC Flag request - 0 1 Type ---------------------------------------- 0x14 Game 0x40B183 Unknown - 0 1 Type ---------------------------------------- 0x15 Game 0x40B1EB Drop flags - 0 1 Type ---------------------------------------- 0x16 Game 0x40B8C7 File transfer - 0 1 Type ---------------------------------------- 0x17 Game 0x40B645 Registration information response - 0 1 Type ---------------------------------------- 0x18 Game 0x40AF19 Set ship type - 0 1 Type ---------------------------------------- 0x19 Game 0x40B41E Set personal banner - 0 1 Type ---------------------------------------- 0x1A Game 0x4097BA Security checksum - 0 1 Type Byte 0x1A - 1 4 Weapon Count - 5 4 Settings Checksum *2 - 9 4 Subspace.EXE Checksum - 13 4 Map.LVL Checksum - 17 4 S2CSlowTotal - 21 4 S2CFastTotal - 25 2 S2CSlowCurrent - 27 2 S2CFastCurrent - 29 2 S2CRelOut (?Unsure?) - 31 2 Ping - 33 2 Ping Average - 35 2 Ping Low - 37 2 Ping High - 39 1 Slow Frame Detected (Boolean) ---------------------------------------- 0x1B Game 0x4096C9 Security violation - 0 1 Type ---------------------------------------- 0x1C Game 0x409626 Drop brick - 0 1 Type ---------------------------------------- 0x1D Game 0x40948B ?setsettings - 0 1 Type ---------------------------------------- 0x1E Game KotH Timer drop - 0 1 Type ---------------------------------------- 0x1F Game 0x408EBD Fire a ball - 0 1 Type ---------------------------------------- 0x20 Game 0x409322 Ball request - 0 1 Type ---------------------------------------- 0x21 Game 0x408F95 Soccer goal scored - 0 1 Type ---------------------------------------- 0x22 Game 0x4096E2 ? Task switch ? - 0 1 Type ---------------------------------------- 0x23 CTMGame 0x40C0E7 Continuum login - 0 1 Type ---------------------------------------- 0x24 CTMGame 0x40C0E7 Continuum login - 0 1 Type ---------------------------------------- 0x25 CTMGame 0x40C0E7 Continuum login - 0 1 Type ---------------------------------------- 0x26 CTMGame 0x40C0E7 Continuum login - 0 1 Type ---------------------------------------- 0x27 CTMGame 0x40C0E7 Continuum login - 0 1 Type ---------------------------------------- 0x28 CTMGame 0x40C0E7 Continuum login - 0 1 Type ---------------------------------------- 0x29 CTMGame 0x40C0E7 Continuum login - 0 1 Type ---------------------------------------- 0x2A CTMGame 0x40C0E7 Continuum login - 0 1 Type ---------------------------------------- 0x2B CTMGame 0x40C0E7 Continuum login - 0 1 Type ---------------------------------------- //====================\\ || S2C || \\====================// ID CLASS Handler DESC - OFFSET LEN CONTENTS - [Type Meaning] ---------------------------------------- 0x0001 Core Special Encryption Request - 0 2 Type ---------------------------------------- 0x0002 Core 0x444D5A Connection Affirmation - 0 2 Type - 2 4 Encryption Key ---------------------------------------- 0x0003 Core 0x444EA6 Reliable Message - 0 2 Type - 2 4 ID - 6 ALL Packet, send this to the handler. ---------------------------------------- 0x0004 Core 0x444DF9 ACK - 0 2 Type - 2 4 ID ---------------------------------------- 0x0005 Core 0x4450E2 Sync Request - 0 2 Type - 2 4 Timestamp ---------------------------------------- 0x0006 Core 0x444FF9 Sync Response - 0 2 Type - 2 4 Ping time - 6 4 Timestamp ---------------------------------------- 0x0007 Core 0x4453AC Disconnection - 0 2 Type ---------------------------------------- 0x0008 Core 0x445281 File Transfer Body - 0 2 Type ---------------------------------------- 0x0009 Core 0x445281 File Transfer Tail - 0 2 Type ---------------------------------------- 0x000A Core 0x4452F8 Huge File Transfer - 0 2 Type ---------------------------------------- 0x000B Core 0x44519B Cancel Download (Clear buffer built by 0x000A types) - 0 2 Type ---------------------------------------- 0x000C Core 0x44521B Cancel Download Acknowledgment - 0 2 Type ---------------------------------------- 0x000D Core 0x444DDE Unknown - 0 2 Type ---------------------------------------- 0x000E Core 0x4453B4 Clustered Packet - 0 2 Type - 2 1 Len of packet #1 packet in cluster - 3 Len The packet, run it through the handler. - Len+1 1 Len of next packet in cluster - - - Repeat untill cluster concludes. ---------------------------------------- 0x01 Game 0x402A7E UID notification - 0 1 Type - 1 4 ID ---------------------------------------- 0x02 Game 0x402A24 In game /* We are in the arena */ - 0 1 Type ---------------------------------------- 0x03 Game 0x402B43 Player Entering - 0 1 Type - 1 1 Ship type - 2 1 Accepts audio messages - 3 20 Player name (confirmed ASCIIZ) - 23 20 Squad name (confirmed ASCIIZ) - 43 4 Flag points - 47 4 Kill points - 51 2 Player ident - 53 2 Team - 55 2 Wins - 57 2 Losses - 59 2 Turretee ident - 61 2 Flags carried - 63 1 Boolean: Has KoTH ---------------------------------------- 0x04 Game 0x402C58 Player leaving - 0 1 Type - 1 1 Player ID ---------------------------------------- 0x05 Game 0x402D34 Player fired a weapon - 0 1 Type ---------------------------------------- 0x06 Game 0x402CFC Player died - 0 1 Type - 1 1 Death green - 2 2 Killer ident - 4 2 Killed ident - 6 2 Bounty - 8 2 ? Flags ---------------------------------------- 0x07 Chat 0x40303D Chat - 0 1 Type - 1 1 Message Type - 0x00 Arena - 0x01 Public macro - 0x02 Public message - 0x03 Team message - 0x04 Freq - 0x05 Private message - 0x06 Moderator warning - 0x07 Remote private message - 0x08 Red server errors, without a name tag (S2C only) - 0x09 Channel message - 2 1 Sound Code - 3 2 PlayerID - 5 - Message ---------------------------------------- 0x0A Game 0x40306F Password response - 0 1 Type byte - 1 1 Accept response meaning - 0 Login OK. - 1 Unknown user. - 2 Bad password. - 3 Full arena. - 4 Locked out. - 5 Perission only. - 6 Spectate only. - 7 Too many points. - 8 Connection too slow. - 9 Perission only arena. - 10 Server full. - 11 Invalid name. - 12 Offensive name. - 13 No biller (not saving scores). - 14 Server busy - 15 Restricted zone (insufficient usage) - 16 Demo Version <- If you get this, theres a serious problem. - 17 Too many Demo Users (Same as above applys) - 18 No Demo Players Allowed (again same as the above two) - 255 Mod Access Required (Added by MGB) - 2 4 Server version - 6 4 ? - 10 4 EXE checksum - 14 4 ? unused - 18 1 ? boolean - 19 1 Boolean: Request registration form - 20 4 ? memory checksum - 24 4 News checksum (0 = no news file) - 28 4 ? time/date - 32 4 ? time/date ---------------------------------------- 0x09 Game 0x402C22 Player score changed - 0 1 Type ---------------------------------------- 0x0A Game 0x4033AB Password packet response - 0 1 Type ---------------------------------------- 0x0B Game 0x403386 Soccer goal - 0 1 Type ---------------------------------------- 0x0C Game 0x402BEF Player voice - 0 1 Type ---------------------------------------- 0x0D Game 0x402C7C Set player frequency - 0 1 Type ---------------------------------------- 0x0E Game 0x402BC6 Create turret link - 0 1 Type byte - 1 2 Turreter ident (gunner) - 3 2 Turretee ident (driver)(when -1, detaching) ---------------------------------------- 0x0F Game 0x402A43 Arena settings - 0 1 Type ---------------------------------------- 0x10 Game 0x4027CD File transfer - 0 1 Type ---------------------------------------- 0x11 Game 0x4033AB No-op - 0 1 Type ---------------------------------------- 0x12 Game 0x4031D4 Flag position - 0 1 Type ---------------------------------------- 0x13 Game 0x403233 Flag claim - 0 1 Type ---------------------------------------- 0x14 Game 0x4030D5 Flag victory - 0 1 Type ---------------------------------------- 0x15 Game 0x40325C Destroy turret link - 0 1 Type byte - 1 2 Player ident ---------------------------------------- 0x16 Game 0x403280 Drop flag - 0 1 Type ---------------------------------------- 0x17 Game 0x4033AB No-op - 0 1 Type ---------------------------------------- 0x18 Game 0x4030A6 Synchronization - 0 1 Type ---------------------------------------- 0x19 Game 0x4028FB Request file - 0 1 Type ---------------------------------------- 0x1A Game 0x4032A4 Reset score(s) - 0 1 Type ---------------------------------------- 0x1B Game 0x4032C8 Personal ship reset - 0 1 Type ---------------------------------------- 0x1C Game 0x4032E4 Put player in spectator mode / change extra info flag - 0 1 Type ---------------------------------------- 0x1D Game 0x402CC1 Player team and ship changed - 0 1 Type byte - 1 1 Ship type - 2 2 Player ident - 4 2 Team ---------------------------------------- 0x1E Game 0x4033AB Banner flag - 0 1 Type ---------------------------------------- 0x1F Game 0x403209 Player banner changed - 0 1 Type ---------------------------------------- 0x20 Game 0x402ABF Collected prize - 0 1 Type ---------------------------------------- 0x21 Game 0x403302 Brick dropped - 0 1 Type repeated until the end of the message - 1 2 X1 tiles - 3 2 Y1 tiles - 5 2 X2 tiles - 7 2 Y2 tiles - 9 2 Team - 11 2 Brick ident (sent more than once) - 13 4 Timestamp ---------------------------------------- 0x22 Game 0x40316E Turf flag update - 0 1 Type repeated until the end of the message - 1 2 Team for flag X ---------------------------------------- 0x23 Game 0x403192 Flag reward granted - 0 1 Type repeated until the end of the message - 1 2 Team - 3 2 Points ---------------------------------------- 0x24 Game 0x402AEA Speed zone statistics - 0 1 Type ---------------------------------------- 0x25 Game 0x402B1F Toggle UFO ship - 0 1 Type ---------------------------------------- 0x26 Game 0x4033AB No-op - 0 1 Type ---------------------------------------- 0x27 Game 0x4033AB Keep-alive - 0 1 Type ---------------------------------------- 0x28 Game 0x402EE3 Player position update - 0 1 Type ---------------------------------------- 0x29 Game 0x4030FD Map information - 0 1 Type ---------------------------------------- 0x2A Game 0x402867 Compressed map file - 0 1 Type ---------------------------------------- 0x2B Game 0x402787 Set personal KoTH timer - 0 1 Type ---------------------------------------- 0x2C Game 0x402762 KoTH game reset - 0 1 Type ---------------------------------------- 0x2D Game 0x4027AA ? Some other timer change ? - 0 1 Type ---------------------------------------- 0x2E Game 0x402741 Power-ball position update - 0 1 Type ---------------------------------------- 0x2F Game 0x403364 Arena directory listing - 0 1 Type ---------------------------------------- 0x30 Game 0x402707 Got zone banner advertisements - 0 1 Type ---------------------------------------- 0x31 Game 0x4033A6 Login Finished - 0 1 Type ---------------------------------------- 0x31 CTMGame You are now past the login sequence - 0 1 Type ---------------------------------------- 0x32 CTMGame Change personal ship coordinates - 0 1 Type ---------------------------------------- 0x33 CTMGame Custom login failure message - 0 1 Type ---------------------------------------- 0x34 CTMGame Continuum version packet - 0 1 Type ---------------------------------------- 0x35 CTMGame Object toggling - 0 1 Type ----------------------------------------