Difference between revisions of "UDP Game Protocol"
From ASSS Wiki
m (...or not :p) |
m (removed broken hyperlink) |
||
(10 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
− | 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|LogicBot++]], [[MERVBot]], and various | + | 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|LogicBot++]], [[MERVBot]], and various other places. All clients also use the [[core protocol]]. '''It is, as of right now, incomplete. This guide is not complete; some packets do not have their contents filled out.''' See the [[Game Protocol FAQ]] article for additional information. |
+ | |||
+ | A slightly more complete list compiled by SOS, Admiral Kirk and D1st0rt may be found at [http://www.twcore.org/wiki/SubspaceProtocol TWCore Subspace Protocol] page. The contents of this list should eventually be incorporated into this page. | ||
<pre> | <pre> | ||
Line 13: | Line 15: | ||
- OFFSET LEN CONTENTS | - OFFSET LEN CONTENTS | ||
- [Type Meaning] | - [Type Meaning] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
---------------------------------------- | ---------------------------------------- | ||
Line 240: | Line 159: | ||
---------------------------------------- | ---------------------------------------- | ||
− | 0x14 Game 0x40B183 | + | 0x14 Game 0x40B183 Drop all attached pilots |
- 0 1 Type | - 0 1 Type | ||
Line 327: | Line 246: | ||
- 0 1 Type | - 0 1 Type | ||
+ | |||
+ | *Logged packets: | ||
+ | 22 59 B8 13 03 3A 9E 96 60 48 C9 1C 28 0E 00 00 00 00 | ||
+ | 22 1D 51 DD 00 9A 58 3C 89 48 C9 1C 28 AB 00 00 00 00 | ||
---------------------------------------- | ---------------------------------------- | ||
Line 388: | Line 311: | ||
- OFFSET LEN CONTENTS | - OFFSET LEN CONTENTS | ||
- [Type Meaning] | - [Type Meaning] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
---------------------------------------- | ---------------------------------------- | ||
Line 474: | Line 316: | ||
- 0 1 Type | - 0 1 Type | ||
− | - 1 | + | - 1 2 ID |
---------------------------------------- | ---------------------------------------- | ||
Line 538: | Line 380: | ||
- 3 2 PlayerID | - 3 2 PlayerID | ||
- 5 - Message | - 5 - Message | ||
+ | |||
+ | ---------------------------------------- | ||
+ | 0x08 Game 0x402C22 Player greened | ||
+ | |||
+ | - 0 1 Type | ||
+ | |||
+ | ---------------------------------------- | ||
+ | 0x09 Game 0x402C22 Player score changed | ||
+ | |||
+ | - 0 1 Type | ||
---------------------------------------- | ---------------------------------------- | ||
Line 549: | Line 401: | ||
- 3 Full arena. | - 3 Full arena. | ||
- 4 Locked out. | - 4 Locked out. | ||
− | - 5 | + | - 5 Permission only. |
- 6 Spectate only. | - 6 Spectate only. | ||
- 7 Too many points. | - 7 Too many points. | ||
- 8 Connection too slow. | - 8 Connection too slow. | ||
− | - 9 | + | - 9 Permission only arena. |
- 10 Server full. | - 10 Server full. | ||
- 11 Invalid name. | - 11 Invalid name. | ||
Line 560: | Line 412: | ||
- 14 Server busy | - 14 Server busy | ||
- 15 Restricted zone (insufficient usage) | - 15 Restricted zone (insufficient usage) | ||
− | - 16 Demo Version <- If you get this, | + | - 16 Demo Version <- If you get this, there's a serious problem. |
− | - 17 Too many Demo Users (Same as above | + | - 17 Too many Demo Users (Same as above applies) |
- 18 No Demo Players Allowed (again same as the above two) | - 18 No Demo Players Allowed (again same as the above two) | ||
− | - 255 Mod Access Required ( | + | - 255 Mod Access Required (An invalid value, used only in CEBot) |
- 2 4 Server version | - 2 4 Server version | ||
- 6 4 ? | - 6 4 ? | ||
Line 576: | Line 428: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
---------------------------------------- | ---------------------------------------- | ||
Line 601: | Line 443: | ||
- 0 1 Type | - 0 1 Type | ||
+ | - 1 2 Player ID | ||
+ | - 3 2 New Freq | ||
+ | - 5 1 Unknown (0xFF) | ||
---------------------------------------- | ---------------------------------------- |
Latest revision as of 19:06, 5 January 2014
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 other places. All clients also use the core protocol. It is, as of right now, incomplete. This guide is not complete; some packets do not have their contents filled out. See the Game Protocol FAQ article for additional information.
A slightly more complete list compiled by SOS, Admiral Kirk and D1st0rt may be found at TWCore Subspace Protocol page. The contents of this list should eventually be incorporated into this page.
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 Drop all attached pilots - 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 *Logged packets: 22 59 B8 13 03 3A 9E 96 60 48 C9 1C 28 0E 00 00 00 00 22 1D 51 DD 00 9A 58 3C 89 48 C9 1C 28 AB 00 00 00 00 ---------------------------------------- 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 2 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 ---------------------------------------- 0x08 Game 0x402C22 Player greened - 0 1 Type ---------------------------------------- 0x09 Game 0x402C22 Player score changed - 0 1 Type ---------------------------------------- 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 Permission only. - 6 Spectate only. - 7 Too many points. - 8 Connection too slow. - 9 Permission 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, there's a serious problem. - 17 Too many Demo Users (Same as above applies) - 18 No Demo Players Allowed (again same as the above two) - 255 Mod Access Required (An invalid value, used only in CEBot) - 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 ---------------------------------------- 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 - 1 2 Player ID - 3 2 New Freq - 5 1 Unknown (0xFF) ---------------------------------------- 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 ----------------------------------------