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. All clients also use the core protocol. It is, as of right now, incomplete. Some packets do not have their contents filled out.
Full Packet List (Consolidated Subspace and Continuum Packet List) //====================\\ || C2S || \\====================// ID CLASS HANDLER PKT DESC - OFFSET LEN CONTENTS - [Type Meaning] ---------------------------------------- 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] ---------------------------------------- 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 ----------------------------------------