Difference between revisions of "UDP Game Protocol"

From ASSS Wiki
Jump to: navigation, search
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 files from [http://catid.ssihosting.com/ Catid Inside] and [http://snrrrub.sscentral.com/ Snrrrub's Dump].  The posted outline is taken from the FPL at [http://explody.ssihosting.com/ Explody's Loot].
+
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]
 
----------------------------------------
 
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.
 
  
 
----------------------------------------
 
----------------------------------------
Line 240: Line 159:
  
 
----------------------------------------
 
----------------------------------------
0x14 Game 0x40B183 Unknown
+
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]
 
----------------------------------------
 
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.
 
  
 
----------------------------------------
 
----------------------------------------
Line 474: Line 316:
  
 
- 0 1 Type
 
- 0 1 Type
- 1 4 ID
+
- 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 Perission only.
+
- 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 Perission only arena.
+
- 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, theres a serious problem.
+
- 16 Demo Version <- If you get this, there's a serious problem.
- 17 Too many Demo Users (Same as above applys)
+
- 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 (Added by MGB)
+
- 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:
  
  
 
----------------------------------------
 
0x09 Game 0x402C22 Player score changed
 
 
- 0 1 Type
 
 
----------------------------------------
 
0x0A Game 0x4033AB Password packet response
 
 
- 0 1 Type
 
  
 
----------------------------------------
 
----------------------------------------
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

----------------------------------------