Difference between revisions of "UDP Game Protocol"

From ASSS Wiki
Jump to: navigation, search
(added freq packet info)
m (pid is length 2, not 4)
Line 314: Line 314:
  
 
- 0 1 Type
 
- 0 1 Type
- 1 4 ID
+
- 1 2 ID
  
 
----------------------------------------
 
----------------------------------------

Revision as of 07:59, 20 December 2006

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

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