UDP Game Protocol

From ASSS Wiki
Revision as of 12:36, 22 February 2008 by Dugwyler (talk | contribs) (Addition of link to a more complete packet list, which should be eventually incorporated)
Jump to: navigation, search

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 http://d1st0rt.sscentral.com/packets.html. 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

----------------------------------------
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 (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



----------------------------------------
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
-		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

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