<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://sylverant.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=BlueCrab</id>
	<title>Sylverant Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://sylverant.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=BlueCrab"/>
	<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Special:Contributions/BlueCrab"/>
	<updated>2026-04-16T07:01:00Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Sylverant_Wiki:General_disclaimer&amp;diff=531</id>
		<title>Sylverant Wiki:General disclaimer</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Sylverant_Wiki:General_disclaimer&amp;diff=531"/>
		<updated>2025-08-16T04:27:17Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: Protected &amp;quot;Sylverant Wiki:General disclaimer&amp;quot;: Because. ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All information provided on this wiki is provided as-is with no guarantee of its correctness or authenticity. Please apply your own discretion to any information contained herein.&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Sylverant_Wiki:About&amp;diff=530</id>
		<title>Sylverant Wiki:About</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Sylverant_Wiki:About&amp;diff=530"/>
		<updated>2025-08-16T04:27:01Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: Protected &amp;quot;Sylverant Wiki:About&amp;quot;: Because. ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Sylverant wiki is a community-maintained wiki documenting both Phantasy Star Online and the Sylverant PSO Server software suite.&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Sylverant_Wiki:Privacy_policy&amp;diff=529</id>
		<title>Sylverant Wiki:Privacy policy</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Sylverant_Wiki:Privacy_policy&amp;diff=529"/>
		<updated>2025-08-16T04:26:45Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: Protected &amp;quot;Sylverant Wiki:Privacy policy&amp;quot;: Because. ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [https://sylverant.net/privacy-policy/ Privacy Policy] on the main part of the Sylverant web site applies to this wiki as well.&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=User:BlueCrab&amp;diff=528</id>
		<title>User:BlueCrab</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=User:BlueCrab&amp;diff=528"/>
		<updated>2025-08-16T04:25:54Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: Protected &amp;quot;User:BlueCrab&amp;quot;: Because. ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;m the creator/owner of Sylverant. Not really much else to say here.&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=User:BlueCrab&amp;diff=527</id>
		<title>User:BlueCrab</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=User:BlueCrab&amp;diff=527"/>
		<updated>2025-08-16T04:25:25Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: Created page with &amp;quot;I&amp;#039;m the creator/owner of Sylverant. Not really much else to say here.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;m the creator/owner of Sylverant. Not really much else to say here.&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Sylverant_Wiki:General_disclaimer&amp;diff=526</id>
		<title>Sylverant Wiki:General disclaimer</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Sylverant_Wiki:General_disclaimer&amp;diff=526"/>
		<updated>2025-08-16T04:19:21Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All information provided on this wiki is provided as-is with no guarantee of its correctness or authenticity. Please apply your own discretion to any information contained herein.&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Sylverant_Wiki:General_disclaimer&amp;diff=525</id>
		<title>Sylverant Wiki:General disclaimer</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Sylverant_Wiki:General_disclaimer&amp;diff=525"/>
		<updated>2025-08-16T04:18:34Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: Create page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Sylverant_Wiki:About&amp;diff=524</id>
		<title>Sylverant Wiki:About</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Sylverant_Wiki:About&amp;diff=524"/>
		<updated>2025-08-16T04:18:17Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: Create page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Sylverant wiki is a community-maintained wiki documenting both Phantasy Star Online and the Sylverant PSO Server software suite.&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Sylverant_Wiki:Privacy_policy&amp;diff=523</id>
		<title>Sylverant Wiki:Privacy policy</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Sylverant_Wiki:Privacy_policy&amp;diff=523"/>
		<updated>2025-08-16T04:17:18Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: Create page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [https://sylverant.net/privacy-policy/ Privacy Policy] on the main part of the Sylverant web site applies to this wiki as well.&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Packet_0x6F&amp;diff=522</id>
		<title>Packet 0x6F</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Packet_0x6F&amp;diff=522"/>
		<updated>2021-12-13T06:02:00Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x6F to Protocol:Packet 0x6F&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Protocol:Packet 0x6F]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x6F&amp;diff=521</id>
		<title>Protocol:Packet 0x6F</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x6F&amp;diff=521"/>
		<updated>2021-12-13T06:02:00Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x6F to Protocol:Packet 0x6F&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Clients send Packet 0x6F to the server to let the server know that they are done bursting. The server then sends out a very odd packet to clients in the lobby to release them from the lock while waiting for the burst to finish.&lt;br /&gt;
&lt;br /&gt;
==Dreamcast Packet Format==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Packet Type (0x6F)&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Packet Size (0x0004)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:PSO Server Protocol]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Packet_0x66&amp;diff=520</id>
		<title>Packet 0x66</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Packet_0x66&amp;diff=520"/>
		<updated>2021-12-13T06:01:43Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x66 to Protocol:Packet 0x66&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Protocol:Packet 0x66]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x66&amp;diff=519</id>
		<title>Protocol:Packet 0x66</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x66&amp;diff=519"/>
		<updated>2021-12-13T06:01:43Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x66 to Protocol:Packet 0x66&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The server sends Packet 0x66 or Packet 0x69 to clients when a client leave the lobby/team (0x66 for teams, 0x69 for lobbies).&lt;br /&gt;
&lt;br /&gt;
==Dreamcast Packet Format==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Packet Type (0x66 or 0x69)&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Flags (Client ID of leaving Client)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Packet Size (0x0008)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Client ID of leaving client&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Client ID of new leader&lt;br /&gt;
|-&lt;br /&gt;
| 0x06-0x07 || Padding (all zeroes)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:PSO Server Protocol]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x66&amp;diff=518</id>
		<title>Protocol:Packet 0x66</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x66&amp;diff=518"/>
		<updated>2021-12-13T06:01:37Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The server sends Packet 0x66 or Packet 0x69 to clients when a client leave the lobby/team (0x66 for teams, 0x69 for lobbies).&lt;br /&gt;
&lt;br /&gt;
==Dreamcast Packet Format==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Packet Type (0x66 or 0x69)&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Flags (Client ID of leaving Client)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Packet Size (0x0008)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Client ID of leaving client&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Client ID of new leader&lt;br /&gt;
|-&lt;br /&gt;
| 0x06-0x07 || Padding (all zeroes)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:PSO Server Protocol]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Packet_0x65&amp;diff=517</id>
		<title>Packet 0x65</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Packet_0x65&amp;diff=517"/>
		<updated>2021-12-13T06:01:17Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x65 to Protocol:Packet 0x65&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Protocol:Packet 0x65]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x65&amp;diff=516</id>
		<title>Protocol:Packet 0x65</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x65&amp;diff=516"/>
		<updated>2021-12-13T06:01:16Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x65 to Protocol:Packet 0x65&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The server sends Packet 0x65 or Packet 0x68 to clients when a new client joins their lobby/team (Packet 0x65 for teams/games, 0x68 for lobbies).&lt;br /&gt;
&lt;br /&gt;
The server sends Packet 0x67 to a client that is just joining a lobby to let it know all the other clients in the lobby.&lt;br /&gt;
&lt;br /&gt;
==Dreamcast Packet Format==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x0000 || Packet Type (0x65, 0x67, or 0x68)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0001 || Flags (Number of entries (1 for 0x65 and 0x68))&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002-0x0003 || Packet Size (0x044C for 0x65/0x68, Variable for 0x67)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0004 || Client ID (I leave this as zero in Sylverant, but its in the struct as client_id)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0005 || Leader ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007 || Lobby Number&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008-0x0009 || Block Number&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A-0x000B || Lobby Event&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C-0x000F || Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x0010... || Player Data (see below for format)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Player Data format===&lt;br /&gt;
The player data entries are formatted as follows:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x0000-0x0003 || Player Tag (0x00010000)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0004-0x0007 || Guildcard Number&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008-0x000B || IP Address? (can be left blank)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C-0x001B || Character Name&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C-0x043C || [[Protocol:Character Data|Character Data]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:PSO Server Protocol]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x65&amp;diff=515</id>
		<title>Protocol:Packet 0x65</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x65&amp;diff=515"/>
		<updated>2021-12-13T06:01:09Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The server sends Packet 0x65 or Packet 0x68 to clients when a new client joins their lobby/team (Packet 0x65 for teams/games, 0x68 for lobbies).&lt;br /&gt;
&lt;br /&gt;
The server sends Packet 0x67 to a client that is just joining a lobby to let it know all the other clients in the lobby.&lt;br /&gt;
&lt;br /&gt;
==Dreamcast Packet Format==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x0000 || Packet Type (0x65, 0x67, or 0x68)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0001 || Flags (Number of entries (1 for 0x65 and 0x68))&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002-0x0003 || Packet Size (0x044C for 0x65/0x68, Variable for 0x67)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0004 || Client ID (I leave this as zero in Sylverant, but its in the struct as client_id)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0005 || Leader ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x0006 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007 || Lobby Number&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008-0x0009 || Block Number&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A-0x000B || Lobby Event&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C-0x000F || Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x0010... || Player Data (see below for format)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Player Data format===&lt;br /&gt;
The player data entries are formatted as follows:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x0000-0x0003 || Player Tag (0x00010000)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0004-0x0007 || Guildcard Number&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008-0x000B || IP Address? (can be left blank)&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C-0x001B || Character Name&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C-0x043C || [[Protocol:Character Data|Character Data]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:PSO Server Protocol]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x64&amp;diff=514</id>
		<title>Protocol:Packet 0x64</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x64&amp;diff=514"/>
		<updated>2021-12-13T06:00:18Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The server sends Packet 0x64 to clients when they join a game.&lt;br /&gt;
&lt;br /&gt;
==Dreamcast Packet Format==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x0000 || Packet Type (0x64)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0001 || Flags (number of active clients)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002-0x0003 || Packet Size (0x0110)&lt;br /&gt;
|- &lt;br /&gt;
| 0x0004-0x0023 || Map Variations&lt;br /&gt;
|-&lt;br /&gt;
| 0x0024-0x0103 || Four Player Headers (see dc_player_hdr_t struct on [[Protocol:Character Data|Character Data]], any blank headers should simply be zeroed out)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0104 || Client ID of the joining client&lt;br /&gt;
|-&lt;br /&gt;
| 0x0105 || Client ID of the Leader&lt;br /&gt;
|-&lt;br /&gt;
| 0x0106 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x0107 || Difficulty of the game&lt;br /&gt;
|-&lt;br /&gt;
| 0x0108 || Battle Mode Flag&lt;br /&gt;
|-&lt;br /&gt;
| 0x0109 || Event for the lobby&lt;br /&gt;
|-&lt;br /&gt;
| 0x010A || Section ID of the game&#039;s creator&lt;br /&gt;
|-&lt;br /&gt;
| 0x010B || Challenge Mode Flag&lt;br /&gt;
|-&lt;br /&gt;
| 0x010C-0x010F || Random Seed for the game&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:PSO Server Protocol]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Packet_0x64&amp;diff=513</id>
		<title>Packet 0x64</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Packet_0x64&amp;diff=513"/>
		<updated>2021-12-13T06:00:02Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x64 to Protocol:Packet 0x64&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Protocol:Packet 0x64]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x64&amp;diff=512</id>
		<title>Protocol:Packet 0x64</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x64&amp;diff=512"/>
		<updated>2021-12-13T06:00:02Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x64 to Protocol:Packet 0x64&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The server sends Packet 0x64 to clients when they join a game.&lt;br /&gt;
&lt;br /&gt;
==Dreamcast Packet Format==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x0000 || Packet Type (0x64)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0001 || Flags (number of active clients)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002-0x0003 || Packet Size (0x0110)&lt;br /&gt;
|- &lt;br /&gt;
| 0x0004-0x0023 || Map Variations&lt;br /&gt;
|-&lt;br /&gt;
| 0x0024-0x0103 || Four Player Headers (see dc_player_hdr_t struct on [[Character Data]], any blank headers should simply be zeroed out)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0104 || Client ID of the joining client&lt;br /&gt;
|-&lt;br /&gt;
| 0x0105 || Client ID of the Leader&lt;br /&gt;
|-&lt;br /&gt;
| 0x0106 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x0107 || Difficulty of the game&lt;br /&gt;
|-&lt;br /&gt;
| 0x0108 || Battle Mode Flag&lt;br /&gt;
|-&lt;br /&gt;
| 0x0109 || Event for the lobby&lt;br /&gt;
|-&lt;br /&gt;
| 0x010A || Section ID of the game&#039;s creator&lt;br /&gt;
|-&lt;br /&gt;
| 0x010B || Challenge Mode Flag&lt;br /&gt;
|-&lt;br /&gt;
| 0x010C-0x010F || Random Seed for the game&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:PSO Server Protocol]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Packet_0x62&amp;diff=511</id>
		<title>Packet 0x62</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Packet_0x62&amp;diff=511"/>
		<updated>2021-12-13T05:59:46Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x62 to Protocol:Packet 0x62&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Protocol:Packet 0x62]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x62&amp;diff=510</id>
		<title>Protocol:Packet 0x62</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x62&amp;diff=510"/>
		<updated>2021-12-13T05:59:46Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x62 to Protocol:Packet 0x62&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
| __TOC__&lt;br /&gt;
|}&lt;br /&gt;
Clients send Packet 0x62 to the server to forward a &amp;quot;game command&amp;quot; to another client. This is used for various things in game, including requesting drops (clients &amp;quot;ask&amp;quot; the party leader what should be dropped).&lt;br /&gt;
&lt;br /&gt;
PSO v3 (GameCube, Xbox, Blue Burst) sometimes uses packet 0x6D, which has exactly the same format and function as 0x62.&lt;br /&gt;
&lt;br /&gt;
==Main Packet Format==&lt;br /&gt;
===Dreamcast===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Packet Type (0x62 or 0x6D)&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Flags (destination client ID)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Packet Size (Variable)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Subcommand Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Subcommand Size (in 32-bit increments)&lt;br /&gt;
|-&lt;br /&gt;
| 0x06-0x07 || Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x08... || Subcommand Data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Subcommands==&lt;br /&gt;
Various subcommands are sent with this packet, and this is not necessarily meant to be an exhaustive list of them (although, I&#039;d love it if it were eventually).&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x06===&lt;br /&gt;
Subcommand 0x06 is used to send a client&#039;s Guild Card to another client.&lt;br /&gt;
&lt;br /&gt;
====Dreamcast====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Player Tag (0x00010000)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Guildcard Number&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x1F || Player Name&lt;br /&gt;
|-&lt;br /&gt;
| 0x20-0x77 || Guildcard Text&lt;br /&gt;
|-&lt;br /&gt;
| 0x78 || Unused&lt;br /&gt;
|-&lt;br /&gt;
| 0x79 || Always 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x7A || [[Protocol:Language Codes|Language Code]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x7B || Section ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x7C || Character Class&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D-0x7F || Padding (all zeroes)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====PC====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Player Tag (0x00010000)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Guildcard Number&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x37 || Player Name (UTF-16LE)&lt;br /&gt;
|-&lt;br /&gt;
| 0x38-0xE7 || Guildcard Text (UTF-16LE)&lt;br /&gt;
|-&lt;br /&gt;
| 0xE8-0xEB || Unused&lt;br /&gt;
|-&lt;br /&gt;
| 0xEC || Always 1&lt;br /&gt;
|-&lt;br /&gt;
| 0xED || [[Protocol:Language Codes|Language Code]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xEE || Section ID&lt;br /&gt;
|-&lt;br /&gt;
| 0xEF || Character Class&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Gamecube====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Player Tag (0x00010000)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Guildcard Number&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x1F || Player Name&lt;br /&gt;
|-&lt;br /&gt;
| 0x20-0x87 || Guildcard Text&lt;br /&gt;
|-&lt;br /&gt;
| 0x88-0x8B || Unused&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C || Always 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D || [[Protocol:Language Codes|Language Code]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8E || Section ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8F || Character Class&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x5A===&lt;br /&gt;
Subcommand 0x5A (size 0x03) is sent to the leader to request to pick up a dropped item.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Item ID we&#039;re requesting to pick up&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Area of the drop&lt;br /&gt;
|-&lt;br /&gt;
| 0x05-0x07 || Always 0?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x60===&lt;br /&gt;
Subcommand 0x60 is used to request a item drop from the party leader. It is used when a box is opened (I haven&#039;t looked at what is sent when an enemy is killed yet, sorry).&lt;br /&gt;
&lt;br /&gt;
====Dreamcast====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Map Area&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || ??? (seems to always be 0x02 for boxes)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Request ID (might only be one byte, not sure)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Map X Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || Map Y Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x13 || ???&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x94===&lt;br /&gt;
Subcommand 0x94 (size 0x02) can be sent to v2 and later clients to cause them to warp to the specified area. PSOv1 clients ignore this subcommand entirely.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Map Area to warp to&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || Padding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:PSO Server Protocol]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x62&amp;diff=509</id>
		<title>Protocol:Packet 0x62</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x62&amp;diff=509"/>
		<updated>2021-12-13T05:59:38Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
| __TOC__&lt;br /&gt;
|}&lt;br /&gt;
Clients send Packet 0x62 to the server to forward a &amp;quot;game command&amp;quot; to another client. This is used for various things in game, including requesting drops (clients &amp;quot;ask&amp;quot; the party leader what should be dropped).&lt;br /&gt;
&lt;br /&gt;
PSO v3 (GameCube, Xbox, Blue Burst) sometimes uses packet 0x6D, which has exactly the same format and function as 0x62.&lt;br /&gt;
&lt;br /&gt;
==Main Packet Format==&lt;br /&gt;
===Dreamcast===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Packet Type (0x62 or 0x6D)&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Flags (destination client ID)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Packet Size (Variable)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Subcommand Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Subcommand Size (in 32-bit increments)&lt;br /&gt;
|-&lt;br /&gt;
| 0x06-0x07 || Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x08... || Subcommand Data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Subcommands==&lt;br /&gt;
Various subcommands are sent with this packet, and this is not necessarily meant to be an exhaustive list of them (although, I&#039;d love it if it were eventually).&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x06===&lt;br /&gt;
Subcommand 0x06 is used to send a client&#039;s Guild Card to another client.&lt;br /&gt;
&lt;br /&gt;
====Dreamcast====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Player Tag (0x00010000)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Guildcard Number&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x1F || Player Name&lt;br /&gt;
|-&lt;br /&gt;
| 0x20-0x77 || Guildcard Text&lt;br /&gt;
|-&lt;br /&gt;
| 0x78 || Unused&lt;br /&gt;
|-&lt;br /&gt;
| 0x79 || Always 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x7A || [[Protocol:Language Codes|Language Code]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x7B || Section ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x7C || Character Class&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D-0x7F || Padding (all zeroes)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====PC====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Player Tag (0x00010000)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Guildcard Number&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x37 || Player Name (UTF-16LE)&lt;br /&gt;
|-&lt;br /&gt;
| 0x38-0xE7 || Guildcard Text (UTF-16LE)&lt;br /&gt;
|-&lt;br /&gt;
| 0xE8-0xEB || Unused&lt;br /&gt;
|-&lt;br /&gt;
| 0xEC || Always 1&lt;br /&gt;
|-&lt;br /&gt;
| 0xED || [[Protocol:Language Codes|Language Code]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xEE || Section ID&lt;br /&gt;
|-&lt;br /&gt;
| 0xEF || Character Class&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Gamecube====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Player Tag (0x00010000)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Guildcard Number&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x1F || Player Name&lt;br /&gt;
|-&lt;br /&gt;
| 0x20-0x87 || Guildcard Text&lt;br /&gt;
|-&lt;br /&gt;
| 0x88-0x8B || Unused&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C || Always 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D || [[Protocol:Language Codes|Language Code]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8E || Section ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8F || Character Class&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x5A===&lt;br /&gt;
Subcommand 0x5A (size 0x03) is sent to the leader to request to pick up a dropped item.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Item ID we&#039;re requesting to pick up&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Area of the drop&lt;br /&gt;
|-&lt;br /&gt;
| 0x05-0x07 || Always 0?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x60===&lt;br /&gt;
Subcommand 0x60 is used to request a item drop from the party leader. It is used when a box is opened (I haven&#039;t looked at what is sent when an enemy is killed yet, sorry).&lt;br /&gt;
&lt;br /&gt;
====Dreamcast====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Map Area&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || ??? (seems to always be 0x02 for boxes)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Request ID (might only be one byte, not sure)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Map X Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || Map Y Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x13 || ???&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x94===&lt;br /&gt;
Subcommand 0x94 (size 0x02) can be sent to v2 and later clients to cause them to warp to the specified area. PSOv1 clients ignore this subcommand entirely.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Map Area to warp to&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || Padding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:PSO Server Protocol]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x61&amp;diff=508</id>
		<title>Protocol:Packet 0x61</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x61&amp;diff=508"/>
		<updated>2021-12-13T05:58:54Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Clients send the server Packet 0x61 when they join the server to send their character data. Clients send Packet 0x98 to the server when leaving a game to update their character data.&lt;br /&gt;
&lt;br /&gt;
==Dreamcast Packet Format==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x0000 || Packet Type (0x61 or 0x98)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0001 || Flags (0x00)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002-0x0003 || Packet Size (0x0420)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0004-0x041F || [[Protocol:Character Data|Character Data]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:PSO Server Protocol]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Packet_0x61&amp;diff=507</id>
		<title>Packet 0x61</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Packet_0x61&amp;diff=507"/>
		<updated>2021-12-13T05:58:39Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x61 to Protocol:Packet 0x61&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Protocol:Packet 0x61]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x61&amp;diff=506</id>
		<title>Protocol:Packet 0x61</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x61&amp;diff=506"/>
		<updated>2021-12-13T05:58:39Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x61 to Protocol:Packet 0x61&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Clients send the server Packet 0x61 when they join the server to send their character data. Clients send Packet 0x98 to the server when leaving a game to update their character data.&lt;br /&gt;
&lt;br /&gt;
==Dreamcast Packet Format==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x0000 || Packet Type (0x61 or 0x98)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0001 || Flags (0x00)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002-0x0003 || Packet Size (0x0420)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0004-0x041F || [[Character Data]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:PSO Server Protocol]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x60&amp;diff=505</id>
		<title>Protocol:Packet 0x60</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x60&amp;diff=505"/>
		<updated>2021-12-13T05:58:17Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
| __TOC__&lt;br /&gt;
|}&lt;br /&gt;
Clients send Packet 0x60 to the server to forward a &amp;quot;game command&amp;quot; to all clients in the lobby. This is used for various things in game, including telling clients what items are dropped when a box is opened (clients &amp;quot;ask&amp;quot; the party leader what should be dropped with a form of [[Protocol:Packet 0x62#Subcommand 0x60|Packet 0x62]] and the party leader replies with a [[Protocol:Packet 0x60#Subcommand 0x5F|Subcommand 0x5F]]).&lt;br /&gt;
&lt;br /&gt;
PSO v3 (GameCube, Xbox, Blue Burst) sometimes uses packet 0x6C, which has exactly the same format and function as 0x60.&lt;br /&gt;
&lt;br /&gt;
PSO Episode 3 sometimes uses packets 0xC9 and 0xCB in games, which also behave exactly like 0x60. Sending an 0xC9 or 0xCB to a non-Episode 3 client would cause that client to disconnect.&lt;br /&gt;
&lt;br /&gt;
==Main Packet Format==&lt;br /&gt;
===Dreamcast/Gamecube===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Packet Type (0x60 or 0x6C)&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Packet Size (Variable)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Subcommand Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Subcommand Size (in 32-bit increments, not including the main packet header, but including everything Subcommand type and later)&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Client ID of initiating client (usually, but not always)&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Unused (usually, but not always)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08... || Subcommand Data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===PC===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Packet Size (Variable)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Packet Type (0x60 or 0x6C)&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Subcommand Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Subcommand Size (in 32-bit increments, not including the main packet header, but including everything Subcommand type and later)&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Client ID of initiating client (usually, but not always)&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Unused (usually, but not always)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08... || Subcommand Data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Blue Burst===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Packet Size (Variable)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Packet Type (0x60 or 0x6C)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Subcommand Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || Subcommand Size (in 32-bit increments, not including the main packet header, but including everything Subcommand type and later)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || Client ID of initiating client (usually, but not always)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B || Unused (usually, but not always)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C... || Subcommand Data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Subcommands==&lt;br /&gt;
Various subcommands are sent with this packet, and this is not necessarily meant to be an exhaustive list of them (although, I&#039;d love it if it were eventually). Note that many of these, I don&#039;t know exactly how they work or how to fill them in...&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x05===&lt;br /&gt;
Subcommand 0x05 (size 0x03) seems to have something to do with when gates unlock (from switches anyway) or something... The client ID field has something strange in it, and the normally unused byte after it seems to be used for something...&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || All zeroes?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || ???&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x07===&lt;br /&gt;
Subcommand 0x07 (size 0x11) is used for symbol chat. The client ID field in the header always seems to be zero, which means it must be carried somewhere in the data (I&#039;m guessing its the first byte of the data).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Client ID of initiator?&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || Unused? (zeros in my testing)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x3F || Symbol chat data (no idea of the specific format)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x0A===&lt;br /&gt;
Subcommand 0x0A (size 0x03) seems to be used when a hit lands on an enemy. The client ID and normally unused fields in the header are actually used for something here (I think they&#039;re the ID of the enemy, maybe).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Same as byte in Client ID of header&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Unused? (0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Amount of damage done&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x0B===&lt;br /&gt;
Subcommand 0x0B (size 0x03) seems to be used to make a box explode. The Client ID and unused fields in the header are actually used here for something else...  I think they may be the ID of the box that was hit (they match part of the 0x46 subcommand about the attack).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Always 1?&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || Always 0?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || The same as the Client ID byte in the header?&lt;br /&gt;
|-&lt;br /&gt;
| 0x05-0x07 || Always 0?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x0D===&lt;br /&gt;
Subcommand 0x0D (size 0x03) I&#039;ve only seen in passing, and don&#039;t have a clue what it does.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || ??? (I&#039;ve only seen this set to 1)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x07 || ??? (I&#039;ve only seen them as all 0s)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x17===&lt;br /&gt;
Subcommand 0x17 (size 0x05) is used to move a player to another place on the same map they&#039;re on (potentially without their input).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || X Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Y Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || Z Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Maybe unused? (I always set this to a value that was sent by a 0x3E/0x3F in bytes 4-7, which works)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x1F===&lt;br /&gt;
Subcommand 0x1F (size 0x02) is used when someone moves to a different map. It matches Subcommand 0x21 exactly from what I&#039;ve seen...&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Area warped to&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || Unused? (all zeroes)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x20===&lt;br /&gt;
Subcommand 0x20 (size 0x06) I&#039;ve only seen in logs and have no idea what it does.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x13 || ???&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x21===&lt;br /&gt;
Subcommand 0x21 (size 0x02) is used when someone moves to a different map. It is followed by a subcommand 0x22, as well as a 0x3F, 0x1F, and 0x23.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Area warped to&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || Unused? (all zeroes)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x22===&lt;br /&gt;
Subcommand 0x22 (size 0x01) seems to tell clients that someone has finished moving to another map (I think). It has no data beyond the normal header. This packet also shows up when a client leaves a game to go back to the lobby.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x23===&lt;br /&gt;
Subcommand 0x23 (size 0x01) matches Subcommand 0x22 in every way, and comes after an 0x1F. It has no data beyond the normal header.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x24===&lt;br /&gt;
Subcommand 0x24 (size 0x05) I have no idea about. The only thing I can guess is that its related to NPCs (as I&#039;ve only ever noticed it during the Tinkerbell&#039;s Dog 2 quest).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || ???&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || ???&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || ???&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || ???&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x25===&lt;br /&gt;
Subcommand 0x25 (size 0x03) is used tell clients that an item has been equipped.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || The Item ID (in the user&#039;s inventory) of the item being equipped&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || The type of item being equipped? (1 for mag, 2 for frame, 3 for barrier, 6 for weapon)&lt;br /&gt;
|-&lt;br /&gt;
| 0x05-0x07 || Padding?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x26===&lt;br /&gt;
Subcommand 0x26 (size 0x03) is used to tell clients that an item has been unequipped.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || The Item ID (in the user&#039;s inventory) of the item being unequipped&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Padding?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x27===&lt;br /&gt;
Subcommand 0x27 (size 0x02) is used to tell clients that an item has been used. Note that this same command is also used for things like using a Heart of Chao, thus it may have effects that are somewhat important to pay attention to.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || The Item ID (in the user&#039;s inventory) of the item being used.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x28===&lt;br /&gt;
Subcommand 0x28 (size 0x03) is used when feeding a mag. There are no special packets sent when mags level up or anything else of the like, so the server might have to keep track of a lot of rather boring information to do anything with these...&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || The Item ID of the Mag being fed&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || The Item ID of the item being fed to the Mag&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x29===&lt;br /&gt;
Subcommand 0x29 (size 0x03) is used to tell clients that someone has dropped meseta. Also, it is used to remove an item from the client&#039;s inventory (for instance, when they place it in the bank or when they&#039;re dropping part of a stack of items). It is also used to sell an item.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || 0xFFFFFFFF for dropped meseta, Item ID for removing items&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Amount of meseta dropped or amount of item removed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x2A===&lt;br /&gt;
Subcommand 0x2A (size 0x06) is used to tell clients that an item has been dropped by a player from their inventory.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Always seems to be 0x0001&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Area where the item was dropped&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || The Item ID (from the user&#039;s inventory) of the item being dropped&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || X Position?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Y Position?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10-0x13 || Z Position?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x2B===&lt;br /&gt;
Subcommand 0x2B (size 0x07) is used to add an item to a client&#039;s inventory (for instance, when taking an item out of the bank).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Item Data dword 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Item Data dword 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || Item Data dword 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Item ID of place in inventory where the item will go&lt;br /&gt;
|-&lt;br /&gt;
| 0x10-0x13 || Item Data 2 dword&lt;br /&gt;
|-&lt;br /&gt;
| 0x14-0x17 || Unknown (0x00000002)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x2C===&lt;br /&gt;
Subcommand 0x2C (size 0x05) is used to tell other clients that someone is talking to an NPC. This command also seems to come up while dropping items...&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || ??? (Always seems to be 0xFFFF for NPC talk, 0x0384 for dropping items)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || ??? (Always seems to be 0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Location ? (Matches up with stuff from packets nearby)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || Location ? (Once again, matches up nicely)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Padding? (Always seems to be 0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x2D===&lt;br /&gt;
Subcommand 0x2D (size 0x01) is used to tell other clients that someone has finished talking to an NPC. It contains no data of its own, beyond the normal header. This command also shows up while dropping items. This command also shows up when dying.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x30===&lt;br /&gt;
Subcommand 0x30 (size 0x05) is used to tell other clients that someone has leveled up. The values in the packet correspond to what&#039;s in the player structure, not necessarily the exact numerical values.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || ATP&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || MST&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x05 || EVP&lt;br /&gt;
|-&lt;br /&gt;
| 0x06-0x07 || HP&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x09 || DFP&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A-0x0B || ATA&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Level - 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x31===&lt;br /&gt;
Subcommand 0x31 (size 0x01) seems to be related to being resurrected (in my tests by a scape doll... haven&#039;t seen what happens when reverser is used yet). It contains no data beyond the normal header. It also shows up when being resurrected by the medical center.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x32===&lt;br /&gt;
Subcommand 0x32 (size 0x01) has something to do with being resurrected by the medical center, maybe? It contains no data of its own beyond the normal header.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x36===&lt;br /&gt;
Subcommand 0x36 (size 0x01) seems to be related to the end of a photon blast. It contains no data of its own beyond the normal header.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x37===&lt;br /&gt;
Subcommand 0x37 (size 0x02) is related in some way to the use of a photon blast.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Amount of PB used (should always be 0x64 = 100)?&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || Always zero?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x39===&lt;br /&gt;
Subcommand 0x39 (size 0x01) seems to be related to the photon blast gauge being filled up. It contains no data of its own beyond the normal header.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x3A===&lt;br /&gt;
Subcommand 0x3A (size 0x01) is related in some way to being killed by an enemy. It contains no data of its own beyond the normal header.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x3B===&lt;br /&gt;
Subcommand 0x3B (size 0x01) seems to have something to do with a client joining a game or loading into an area... No idea what its supposed to signify. No data is contained beyond the normal header.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x3E===&lt;br /&gt;
Subcommand 0x3E (size 0x06) is used to tell other clients that someone has stopped moving.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || ??? (Always seems to be 0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || ???&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Something to do with the position, maybe?&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || X Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Y Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x10-0x13 || Z Position&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x3F===&lt;br /&gt;
Subcommand 0x3F (size 0x06) seems to be used to tell other clients that someone is not moving after warping, or something like that (triggered when going into the principal warp or after talking to the medical center, for instance). Seems to be used a lot of the time nearby a bunch of subcommand 0x55 packets.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Always seems to be 0?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || ??? (when near a subcommand 0x55, matches with bytes 0x00-0x01 in that?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Something to do with the position, maybe?&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || X Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Y Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x10-0x13 || Z Position&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x40===&lt;br /&gt;
Subcommand 0x40 (size 0x04) is used to tell other clients that someone has started moving (or is moving slowly?).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || X Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Z Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || Padding? (Always seems to be 0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x42===&lt;br /&gt;
Subcommand 0x42 (size 0x03) is used to tell other clients that someone is moving (quickly?).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || X Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Z Position&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x43===&lt;br /&gt;
Subcommand 0x43 (size 0x02) is used when the first step of a normal attack is in progress.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Direction? (Matches bytes 0x02-0x03 in a nearby Subcommand 0x3E)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || 0 for normal attack, 1 for heavy attack&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Padding?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x44===&lt;br /&gt;
Subcommand 0x44 (size 0x02) is used when the second step of a normal attack is in progress.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Direction? (Matches bytes 0x02-0x03 in a nearby Subcommand 0x3E)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || 0 for normal attack, 1 for heavy attack&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Padding?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x45===&lt;br /&gt;
Subcommand 0x45 (size 0x02) is used when the third step of a normal attack is in progress.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Direction? (Matches bytes 0x02-0x03 in a nearby Subcommand 0x3E)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || 0 for normal attack, 1 for heavy attack&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Padding?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x46===&lt;br /&gt;
Subcommand 0x46 (size 0x02 or 0x03) is used when a step of an attack is finished.&lt;br /&gt;
&lt;br /&gt;
In its 0x02 sized form:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Always zero?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In its 0x03 sized form:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Number of items hit? (I&#039;ve only seen 1, but I&#039;ve only hit one thing to see it)&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || All zeroes?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x05 || The item it hit? (same as the client ID and normally unused bytes in the header of Subcommand 0x0B)&lt;br /&gt;
|-&lt;br /&gt;
| 0x06-0x07 || All zeroes?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x47===&lt;br /&gt;
Subcommand 0x47 (size 0x02 or 0x03) is used when casting a technique. Its possible that it could be other sizes if multiple things were hit (I haven&#039;t tested this theory). It is always followed by a Subcommand 0x48. With healing spells, somehow its not mentioned what it affected... Also, I don&#039;t know how to tell what was hit if multiple things were hit...&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Technique cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Always zero?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Level of the spell, minus 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || 1 if at least one thing was hit&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x05 || ID of first item hit?&lt;br /&gt;
|-&lt;br /&gt;
| 0x06-0x07 || All zeroes?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x48===&lt;br /&gt;
Subcommand 0x48 (size 0x02) is used after a technique has been cast.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Technique cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Always zero?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Level of the spell, minus 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Always zero?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x49===&lt;br /&gt;
Subcommand 0x49 (size 0x03) is sent after a photon blast has been used to subtract from the PB gauge.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Photon blast used&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || Always zero?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Amount of PB spent (should always be 0x64 = 100)?&lt;br /&gt;
|-&lt;br /&gt;
| 0x05-0x07 || Always zero?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x4A===&lt;br /&gt;
Subcommand 0x4A (size 0x01) seems to be related to enemies attacking and the character evading. It carries no data beyond the normal header.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x4B===&lt;br /&gt;
Subcommand 0x4B (size 0x04) is one of a few packets relating to enemies landing a hit on a character. What determines which packet (this one or 0x4C) gets used, I don&#039;t know.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Same as 0x3F after the fact (bytes 0x02-0x03)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Amount of HP remaining after hit&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x0B || ???&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x4C===&lt;br /&gt;
Subcommand 0x4C (size 0x04) seems to be related to enemies landing a hit.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Same as 0x3F after the fact (bytes 0x02-0x03)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Amount of HP remaining after hit&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x0B || ???&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x4D===&lt;br /&gt;
Subcommand 0x4D (size 0x02) is related to enemies killing a client.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || ??? (When a scape doll was on hand, this was 0, otherwise 2 in my testing)&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || Padding?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x4E===&lt;br /&gt;
Subcommand 0x4E (size 0x01) has something to do with dying (and not being immediately resurrected by a scape doll). It contains no data of its own beyond the normal header.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x4F===&lt;br /&gt;
Subcommand 0x4F (size 0x01) has something to do with dying (and being immediately resurrected by a scape doll). It contains no data of its own beyond the normal header.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x50===&lt;br /&gt;
Subcommand 0x50 (size 0x02) has something to do with switches (I think?)&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || ??? (The same as bytes 0x02-0x03 in a nearby Subcommand 0x3E/0x3F)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || All zeroes?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x52===&lt;br /&gt;
Subcommand 0x52 (size 0x03) is used to tell other clients that someone is talking to a person at a desk of some sort or has just finished talking to the desk.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || ??? (Always seems to be 0x000000A0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Location? (Matches fairly well with bytes from packets nearby)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x55===&lt;br /&gt;
Subcommand 0x55 (size 0x08) is used to tell clients that someone has warped (maybe?). Several of these seem to be sent at a time (at least when going into and out of the principal&#039;s warp).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || ??? (Matches with nearby subcommand 0x3F&#039;s bytes 0x02-0x03)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Always seems to be 0?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || ???&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || ???&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || ???&lt;br /&gt;
|-&lt;br /&gt;
| 0x10-0x13 || X Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x14-0x17 || Seems to be 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x18-0x1B || Z Position&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x58===&lt;br /&gt;
Subcommand 0x58 (size 0x02) is used to do a lobby action.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Action to do (probably only the first byte)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x59===&lt;br /&gt;
Subcommand 0x59 (size 0x03) is used to pick up a dropped item.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Client ID of inventory where item came from?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Item ID of item that was picked up&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x5D===&lt;br /&gt;
Subcommand 0x5D (size 0x0A) is used to tell clients that someone has split up a stack of items (for dropping one or more).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Area ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || X Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || Z Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Item Data dword 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x10-0x13 || Item Data dword 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x14-0x17 || Item Data dword 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x18-0x1B || New Item ID for split stack&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C-0x1F || Item Data 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x20-0x23 || Always 0x00000002?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x5E===&lt;br /&gt;
Subcommand 0x5E (size 0x06) is used when someone buys something from the shop.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Item Data dword 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Item Data dword 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || Item Data dword 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Item ID of new slot in inventory&lt;br /&gt;
|-&lt;br /&gt;
| 0x10-0x13 || Amount of meseta spent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x5F===&lt;br /&gt;
Subcommand 0x5F (size 0x0B) is used to tell clients what item dropped from an opened box.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Area of the Drop&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || What kind of thing are we asking about?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Request ID (might only be one byte)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || X Coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || Y Coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Unknown (0x00000010 works)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10-0x1B || Item Code (first 3 32-bit values)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C-0x1F || Item ID -- (request_id &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 0x06010100) seems to work for forging it&lt;br /&gt;
|-&lt;br /&gt;
| 0x20-0x23 || Item Code (last 32-bit value)&lt;br /&gt;
|-&lt;br /&gt;
| 0x24-0x27 || Unknown (0x00000002)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x61===&lt;br /&gt;
Subcommand 0x61 (size 0x03) I don&#039;t really know what it does... All I know is that I saw it after a levelup (immediately after the Subcommand 0x30 packet). When I did see it, the client ID field was set to 0, which didn&#039;t correspond to any client IDs in the game at the time. I also saw it when my PB gauge filled and I became invincible for a short time.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Item ID of equipped Mag?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x02 on level up, 0x08 on invincible?&lt;br /&gt;
|-&lt;br /&gt;
| 0x05-0x07 || Always zero?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x63===&lt;br /&gt;
Subcommand 0x63 (size 0x03) is used to remove old items from the map to make room for new items. It seems that there&#039;s about a 50 item limit for things laying around with PSOv2. With this one, the normally unused byte in the header area is used for something, but what I don&#039;t know... When I was first testing this, I saw 0x8C there every time it came up (although, when sending it, setting it to 0 works fine)&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Item ID to remove from the map&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Unused? (always 0 in my initial testing)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x67===&lt;br /&gt;
Subcommand 0x67 (size 0x04), I have no idea about at all. The Client ID and unused fields after it in the header are odd here... I really don&#039;t have a clue what this packet is for.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x0B || ???&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x69===&lt;br /&gt;
Subcommand 0x69 (size 0x03) is used to spawn NPC characters.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || The Client ID to follow around?&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || 0?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || The Client ID the NPC should take on&lt;br /&gt;
|-&lt;br /&gt;
| 0x03-0x05 || All 0?&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || The type of NPC to spawn&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || 0?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x74===&lt;br /&gt;
Subcommand 0x74 (size 0x08) is used for [[Protocol:Word Select|Word Select]].&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x1B || Word Select data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x75===&lt;br /&gt;
Subcommand 0x75 (size 0x02) kinda baffles me a bit... The field used normally for the client ID that triggered the event isn&#039;t used that way here. I really have no idea how this packet is used, as I&#039;ve seen it in a couple of different situations. The first situation I saw it in was NPCs that change their dialog. The second situation I saw it in was in warping down to Ragol...&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || ???&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x76===&lt;br /&gt;
Subcommand 0x76 (size 0x02) seems to be at least somewhat related to enemies dying via photon blast, or something like that. The Client ID/unused bytes in the header are used for the enemy&#039;s id, I think.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || ???&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x79===&lt;br /&gt;
Subcommand 0x79 (size 0x06) deals with Go Go Ball.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x13 || Position and such things... I don&#039;t really care to know what&#039;s going on here.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x89===&lt;br /&gt;
Subcommand 0x89 (size 0x02) is related in some way to being killed.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || ??? (I saw the value 0x00000114 all 3 times I saw this in testing)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x8D===&lt;br /&gt;
Subcommand 0x8D (size 0x02) seems to be related to starting to cast a technique.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Always 0?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x9A===&lt;br /&gt;
Subcommand 0x9A (size 0x02) modifies a user&#039;s statistics.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Always 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || The stat/direction to modify (0 = HP down, 1 = TP down, 2 = Meseta down, 3 = HP up, 4 = TP up)&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || The amount to modify the statistic&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0xAB===&lt;br /&gt;
Subcommand 0xAB (size 0x02) signifies that the user has sat down in their chair (in the lobby).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Always 0?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0xAF===&lt;br /&gt;
Subcommand 0xAF (size 0x02) signifies that the user has changed direction in their chair (in the lobby).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Heading?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0xB0===&lt;br /&gt;
Subcommand 0xB0 (size 0x02) signifies that the user has moved in their chair (in the lobby).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Position or heading?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0xBF===&lt;br /&gt;
Subcommand 0xBF (size 0x02) is used to change the song playing in a CARD lobby on Episode III (in response to a user using the jukebox).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Song to be played&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || Padding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:PSO Server Protocol]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Packet_0x60&amp;diff=504</id>
		<title>Packet 0x60</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Packet_0x60&amp;diff=504"/>
		<updated>2021-12-13T05:57:39Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x60 to Protocol:Packet 0x60&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Protocol:Packet 0x60]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x60&amp;diff=503</id>
		<title>Protocol:Packet 0x60</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x60&amp;diff=503"/>
		<updated>2021-12-13T05:57:39Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x60 to Protocol:Packet 0x60&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
| __TOC__&lt;br /&gt;
|}&lt;br /&gt;
Clients send Packet 0x60 to the server to forward a &amp;quot;game command&amp;quot; to all clients in the lobby. This is used for various things in game, including telling clients what items are dropped when a box is opened (clients &amp;quot;ask&amp;quot; the party leader what should be dropped with a form of [[Protocol:Packet 0x62#Subcommand 0x60|Packet 0x62]] and the party leader replies with a [[Protocol:Packet 0x60#Subcommand 0x5F|Subcommand 0x5F]]).&lt;br /&gt;
&lt;br /&gt;
PSO v3 (GameCube, Xbox, Blue Burst) sometimes uses packet 0x6C, which has exactly the same format and function as 0x60.&lt;br /&gt;
&lt;br /&gt;
PSO Episode 3 sometimes uses packets 0xC9 and 0xCB in games, which also behave exactly like 0x60. Sending an 0xC9 or 0xCB to a non-Episode 3 client would cause that client to disconnect.&lt;br /&gt;
&lt;br /&gt;
==Main Packet Format==&lt;br /&gt;
===Dreamcast/Gamecube===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Packet Type (0x60 or 0x6C)&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Packet Size (Variable)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Subcommand Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Subcommand Size (in 32-bit increments, not including the main packet header, but including everything Subcommand type and later)&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Client ID of initiating client (usually, but not always)&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Unused (usually, but not always)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08... || Subcommand Data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===PC===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Packet Size (Variable)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Packet Type (0x60 or 0x6C)&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Subcommand Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Subcommand Size (in 32-bit increments, not including the main packet header, but including everything Subcommand type and later)&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Client ID of initiating client (usually, but not always)&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Unused (usually, but not always)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08... || Subcommand Data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Blue Burst===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Packet Size (Variable)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Packet Type (0x60 or 0x6C)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Subcommand Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || Subcommand Size (in 32-bit increments, not including the main packet header, but including everything Subcommand type and later)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || Client ID of initiating client (usually, but not always)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B || Unused (usually, but not always)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C... || Subcommand Data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Subcommands==&lt;br /&gt;
Various subcommands are sent with this packet, and this is not necessarily meant to be an exhaustive list of them (although, I&#039;d love it if it were eventually). Note that many of these, I don&#039;t know exactly how they work or how to fill them in...&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x05===&lt;br /&gt;
Subcommand 0x05 (size 0x03) seems to have something to do with when gates unlock (from switches anyway) or something... The client ID field has something strange in it, and the normally unused byte after it seems to be used for something...&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || All zeroes?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || ???&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x07===&lt;br /&gt;
Subcommand 0x07 (size 0x11) is used for symbol chat. The client ID field in the header always seems to be zero, which means it must be carried somewhere in the data (I&#039;m guessing its the first byte of the data).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Client ID of initiator?&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || Unused? (zeros in my testing)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x3F || Symbol chat data (no idea of the specific format)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x0A===&lt;br /&gt;
Subcommand 0x0A (size 0x03) seems to be used when a hit lands on an enemy. The client ID and normally unused fields in the header are actually used for something here (I think they&#039;re the ID of the enemy, maybe).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Same as byte in Client ID of header&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Unused? (0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Amount of damage done&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x0B===&lt;br /&gt;
Subcommand 0x0B (size 0x03) seems to be used to make a box explode. The Client ID and unused fields in the header are actually used here for something else...  I think they may be the ID of the box that was hit (they match part of the 0x46 subcommand about the attack).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Always 1?&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || Always 0?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || The same as the Client ID byte in the header?&lt;br /&gt;
|-&lt;br /&gt;
| 0x05-0x07 || Always 0?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x0D===&lt;br /&gt;
Subcommand 0x0D (size 0x03) I&#039;ve only seen in passing, and don&#039;t have a clue what it does.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || ??? (I&#039;ve only seen this set to 1)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x07 || ??? (I&#039;ve only seen them as all 0s)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x17===&lt;br /&gt;
Subcommand 0x17 (size 0x05) is used to move a player to another place on the same map they&#039;re on (potentially without their input).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || X Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Y Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || Z Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Maybe unused? (I always set this to a value that was sent by a 0x3E/0x3F in bytes 4-7, which works)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x1F===&lt;br /&gt;
Subcommand 0x1F (size 0x02) is used when someone moves to a different map. It matches Subcommand 0x21 exactly from what I&#039;ve seen...&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Area warped to&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || Unused? (all zeroes)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x20===&lt;br /&gt;
Subcommand 0x20 (size 0x06) I&#039;ve only seen in logs and have no idea what it does.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x13 || ???&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x21===&lt;br /&gt;
Subcommand 0x21 (size 0x02) is used when someone moves to a different map. It is followed by a subcommand 0x22, as well as a 0x3F, 0x1F, and 0x23.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Area warped to&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || Unused? (all zeroes)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x22===&lt;br /&gt;
Subcommand 0x22 (size 0x01) seems to tell clients that someone has finished moving to another map (I think). It has no data beyond the normal header. This packet also shows up when a client leaves a game to go back to the lobby.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x23===&lt;br /&gt;
Subcommand 0x23 (size 0x01) matches Subcommand 0x22 in every way, and comes after an 0x1F. It has no data beyond the normal header.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x24===&lt;br /&gt;
Subcommand 0x24 (size 0x05) I have no idea about. The only thing I can guess is that its related to NPCs (as I&#039;ve only ever noticed it during the Tinkerbell&#039;s Dog 2 quest).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || ???&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || ???&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || ???&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || ???&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x25===&lt;br /&gt;
Subcommand 0x25 (size 0x03) is used tell clients that an item has been equipped.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || The Item ID (in the user&#039;s inventory) of the item being equipped&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || The type of item being equipped? (1 for mag, 2 for frame, 3 for barrier, 6 for weapon)&lt;br /&gt;
|-&lt;br /&gt;
| 0x05-0x07 || Padding?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x26===&lt;br /&gt;
Subcommand 0x26 (size 0x03) is used to tell clients that an item has been unequipped.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || The Item ID (in the user&#039;s inventory) of the item being unequipped&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Padding?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x27===&lt;br /&gt;
Subcommand 0x27 (size 0x02) is used to tell clients that an item has been used. Note that this same command is also used for things like using a Heart of Chao, thus it may have effects that are somewhat important to pay attention to.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || The Item ID (in the user&#039;s inventory) of the item being used.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x28===&lt;br /&gt;
Subcommand 0x28 (size 0x03) is used when feeding a mag. There are no special packets sent when mags level up or anything else of the like, so the server might have to keep track of a lot of rather boring information to do anything with these...&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || The Item ID of the Mag being fed&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || The Item ID of the item being fed to the Mag&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x29===&lt;br /&gt;
Subcommand 0x29 (size 0x03) is used to tell clients that someone has dropped meseta. Also, it is used to remove an item from the client&#039;s inventory (for instance, when they place it in the bank or when they&#039;re dropping part of a stack of items). It is also used to sell an item.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || 0xFFFFFFFF for dropped meseta, Item ID for removing items&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Amount of meseta dropped or amount of item removed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x2A===&lt;br /&gt;
Subcommand 0x2A (size 0x06) is used to tell clients that an item has been dropped by a player from their inventory.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Always seems to be 0x0001&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Area where the item was dropped&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || The Item ID (from the user&#039;s inventory) of the item being dropped&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || X Position?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Y Position?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10-0x13 || Z Position?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x2B===&lt;br /&gt;
Subcommand 0x2B (size 0x07) is used to add an item to a client&#039;s inventory (for instance, when taking an item out of the bank).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Item Data dword 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Item Data dword 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || Item Data dword 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Item ID of place in inventory where the item will go&lt;br /&gt;
|-&lt;br /&gt;
| 0x10-0x13 || Item Data 2 dword&lt;br /&gt;
|-&lt;br /&gt;
| 0x14-0x17 || Unknown (0x00000002)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x2C===&lt;br /&gt;
Subcommand 0x2C (size 0x05) is used to tell other clients that someone is talking to an NPC. This command also seems to come up while dropping items...&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || ??? (Always seems to be 0xFFFF for NPC talk, 0x0384 for dropping items)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || ??? (Always seems to be 0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Location ? (Matches up with stuff from packets nearby)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || Location ? (Once again, matches up nicely)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Padding? (Always seems to be 0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x2D===&lt;br /&gt;
Subcommand 0x2D (size 0x01) is used to tell other clients that someone has finished talking to an NPC. It contains no data of its own, beyond the normal header. This command also shows up while dropping items. This command also shows up when dying.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x30===&lt;br /&gt;
Subcommand 0x30 (size 0x05) is used to tell other clients that someone has leveled up. The values in the packet correspond to what&#039;s in the player structure, not necessarily the exact numerical values.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || ATP&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || MST&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x05 || EVP&lt;br /&gt;
|-&lt;br /&gt;
| 0x06-0x07 || HP&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x09 || DFP&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A-0x0B || ATA&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Level - 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x31===&lt;br /&gt;
Subcommand 0x31 (size 0x01) seems to be related to being resurrected (in my tests by a scape doll... haven&#039;t seen what happens when reverser is used yet). It contains no data beyond the normal header. It also shows up when being resurrected by the medical center.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x32===&lt;br /&gt;
Subcommand 0x32 (size 0x01) has something to do with being resurrected by the medical center, maybe? It contains no data of its own beyond the normal header.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x36===&lt;br /&gt;
Subcommand 0x36 (size 0x01) seems to be related to the end of a photon blast. It contains no data of its own beyond the normal header.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x37===&lt;br /&gt;
Subcommand 0x37 (size 0x02) is related in some way to the use of a photon blast.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Amount of PB used (should always be 0x64 = 100)?&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || Always zero?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x39===&lt;br /&gt;
Subcommand 0x39 (size 0x01) seems to be related to the photon blast gauge being filled up. It contains no data of its own beyond the normal header.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x3A===&lt;br /&gt;
Subcommand 0x3A (size 0x01) is related in some way to being killed by an enemy. It contains no data of its own beyond the normal header.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x3B===&lt;br /&gt;
Subcommand 0x3B (size 0x01) seems to have something to do with a client joining a game or loading into an area... No idea what its supposed to signify. No data is contained beyond the normal header.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x3E===&lt;br /&gt;
Subcommand 0x3E (size 0x06) is used to tell other clients that someone has stopped moving.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || ??? (Always seems to be 0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || ???&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Something to do with the position, maybe?&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || X Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Y Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x10-0x13 || Z Position&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x3F===&lt;br /&gt;
Subcommand 0x3F (size 0x06) seems to be used to tell other clients that someone is not moving after warping, or something like that (triggered when going into the principal warp or after talking to the medical center, for instance). Seems to be used a lot of the time nearby a bunch of subcommand 0x55 packets.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Always seems to be 0?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || ??? (when near a subcommand 0x55, matches with bytes 0x00-0x01 in that?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Something to do with the position, maybe?&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || X Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Y Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x10-0x13 || Z Position&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x40===&lt;br /&gt;
Subcommand 0x40 (size 0x04) is used to tell other clients that someone has started moving (or is moving slowly?).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || X Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Z Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || Padding? (Always seems to be 0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x42===&lt;br /&gt;
Subcommand 0x42 (size 0x03) is used to tell other clients that someone is moving (quickly?).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || X Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Z Position&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x43===&lt;br /&gt;
Subcommand 0x43 (size 0x02) is used when the first step of a normal attack is in progress.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Direction? (Matches bytes 0x02-0x03 in a nearby Subcommand 0x3E)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || 0 for normal attack, 1 for heavy attack&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Padding?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x44===&lt;br /&gt;
Subcommand 0x44 (size 0x02) is used when the second step of a normal attack is in progress.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Direction? (Matches bytes 0x02-0x03 in a nearby Subcommand 0x3E)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || 0 for normal attack, 1 for heavy attack&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Padding?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x45===&lt;br /&gt;
Subcommand 0x45 (size 0x02) is used when the third step of a normal attack is in progress.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Direction? (Matches bytes 0x02-0x03 in a nearby Subcommand 0x3E)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || 0 for normal attack, 1 for heavy attack&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Padding?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x46===&lt;br /&gt;
Subcommand 0x46 (size 0x02 or 0x03) is used when a step of an attack is finished.&lt;br /&gt;
&lt;br /&gt;
In its 0x02 sized form:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Always zero?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In its 0x03 sized form:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Number of items hit? (I&#039;ve only seen 1, but I&#039;ve only hit one thing to see it)&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || All zeroes?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x05 || The item it hit? (same as the client ID and normally unused bytes in the header of Subcommand 0x0B)&lt;br /&gt;
|-&lt;br /&gt;
| 0x06-0x07 || All zeroes?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x47===&lt;br /&gt;
Subcommand 0x47 (size 0x02 or 0x03) is used when casting a technique. Its possible that it could be other sizes if multiple things were hit (I haven&#039;t tested this theory). It is always followed by a Subcommand 0x48. With healing spells, somehow its not mentioned what it affected... Also, I don&#039;t know how to tell what was hit if multiple things were hit...&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Technique cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Always zero?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Level of the spell, minus 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || 1 if at least one thing was hit&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x05 || ID of first item hit?&lt;br /&gt;
|-&lt;br /&gt;
| 0x06-0x07 || All zeroes?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x48===&lt;br /&gt;
Subcommand 0x48 (size 0x02) is used after a technique has been cast.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Technique cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Always zero?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Level of the spell, minus 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Always zero?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x49===&lt;br /&gt;
Subcommand 0x49 (size 0x03) is sent after a photon blast has been used to subtract from the PB gauge.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Photon blast used&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || Always zero?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Amount of PB spent (should always be 0x64 = 100)?&lt;br /&gt;
|-&lt;br /&gt;
| 0x05-0x07 || Always zero?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x4A===&lt;br /&gt;
Subcommand 0x4A (size 0x01) seems to be related to enemies attacking and the character evading. It carries no data beyond the normal header.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x4B===&lt;br /&gt;
Subcommand 0x4B (size 0x04) is one of a few packets relating to enemies landing a hit on a character. What determines which packet (this one or 0x4C) gets used, I don&#039;t know.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Same as 0x3F after the fact (bytes 0x02-0x03)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Amount of HP remaining after hit&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x0B || ???&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x4C===&lt;br /&gt;
Subcommand 0x4C (size 0x04) seems to be related to enemies landing a hit.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Same as 0x3F after the fact (bytes 0x02-0x03)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Amount of HP remaining after hit&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x0B || ???&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x4D===&lt;br /&gt;
Subcommand 0x4D (size 0x02) is related to enemies killing a client.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || ??? (When a scape doll was on hand, this was 0, otherwise 2 in my testing)&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || Padding?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x4E===&lt;br /&gt;
Subcommand 0x4E (size 0x01) has something to do with dying (and not being immediately resurrected by a scape doll). It contains no data of its own beyond the normal header.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x4F===&lt;br /&gt;
Subcommand 0x4F (size 0x01) has something to do with dying (and being immediately resurrected by a scape doll). It contains no data of its own beyond the normal header.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x50===&lt;br /&gt;
Subcommand 0x50 (size 0x02) has something to do with switches (I think?)&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || ??? (The same as bytes 0x02-0x03 in a nearby Subcommand 0x3E/0x3F)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || All zeroes?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x52===&lt;br /&gt;
Subcommand 0x52 (size 0x03) is used to tell other clients that someone is talking to a person at a desk of some sort or has just finished talking to the desk.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || ??? (Always seems to be 0x000000A0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Location? (Matches fairly well with bytes from packets nearby)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x55===&lt;br /&gt;
Subcommand 0x55 (size 0x08) is used to tell clients that someone has warped (maybe?). Several of these seem to be sent at a time (at least when going into and out of the principal&#039;s warp).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || ??? (Matches with nearby subcommand 0x3F&#039;s bytes 0x02-0x03)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Always seems to be 0?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || ???&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || ???&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || ???&lt;br /&gt;
|-&lt;br /&gt;
| 0x10-0x13 || X Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x14-0x17 || Seems to be 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x18-0x1B || Z Position&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x58===&lt;br /&gt;
Subcommand 0x58 (size 0x02) is used to do a lobby action.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Action to do (probably only the first byte)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x59===&lt;br /&gt;
Subcommand 0x59 (size 0x03) is used to pick up a dropped item.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Client ID of inventory where item came from?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Item ID of item that was picked up&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x5D===&lt;br /&gt;
Subcommand 0x5D (size 0x0A) is used to tell clients that someone has split up a stack of items (for dropping one or more).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Area ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || X Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || Z Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Item Data dword 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x10-0x13 || Item Data dword 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x14-0x17 || Item Data dword 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x18-0x1B || New Item ID for split stack&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C-0x1F || Item Data 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x20-0x23 || Always 0x00000002?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x5E===&lt;br /&gt;
Subcommand 0x5E (size 0x06) is used when someone buys something from the shop.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Item Data dword 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Item Data dword 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || Item Data dword 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Item ID of new slot in inventory&lt;br /&gt;
|-&lt;br /&gt;
| 0x10-0x13 || Amount of meseta spent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x5F===&lt;br /&gt;
Subcommand 0x5F (size 0x0B) is used to tell clients what item dropped from an opened box.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Area of the Drop&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || What kind of thing are we asking about?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Request ID (might only be one byte)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || X Coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || Y Coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Unknown (0x00000010 works)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10-0x1B || Item Code (first 3 32-bit values)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C-0x1F || Item ID -- (request_id &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 0x06010100) seems to work for forging it&lt;br /&gt;
|-&lt;br /&gt;
| 0x20-0x23 || Item Code (last 32-bit value)&lt;br /&gt;
|-&lt;br /&gt;
| 0x24-0x27 || Unknown (0x00000002)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x61===&lt;br /&gt;
Subcommand 0x61 (size 0x03) I don&#039;t really know what it does... All I know is that I saw it after a levelup (immediately after the Subcommand 0x30 packet). When I did see it, the client ID field was set to 0, which didn&#039;t correspond to any client IDs in the game at the time. I also saw it when my PB gauge filled and I became invincible for a short time.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Item ID of equipped Mag?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x02 on level up, 0x08 on invincible?&lt;br /&gt;
|-&lt;br /&gt;
| 0x05-0x07 || Always zero?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x63===&lt;br /&gt;
Subcommand 0x63 (size 0x03) is used to remove old items from the map to make room for new items. It seems that there&#039;s about a 50 item limit for things laying around with PSOv2. With this one, the normally unused byte in the header area is used for something, but what I don&#039;t know... When I was first testing this, I saw 0x8C there every time it came up (although, when sending it, setting it to 0 works fine)&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Item ID to remove from the map&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Unused? (always 0 in my initial testing)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x67===&lt;br /&gt;
Subcommand 0x67 (size 0x04), I have no idea about at all. The Client ID and unused fields after it in the header are odd here... I really don&#039;t have a clue what this packet is for.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x0B || ???&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x69===&lt;br /&gt;
Subcommand 0x69 (size 0x03) is used to spawn NPC characters.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || The Client ID to follow around?&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || 0?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || The Client ID the NPC should take on&lt;br /&gt;
|-&lt;br /&gt;
| 0x03-0x05 || All 0?&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || The type of NPC to spawn&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || 0?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x74===&lt;br /&gt;
Subcommand 0x74 (size 0x08) is used for [[Word Select]]. Some day, I&#039;ll document this further.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x1B || Word Select data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x75===&lt;br /&gt;
Subcommand 0x75 (size 0x02) kinda baffles me a bit... The field used normally for the client ID that triggered the event isn&#039;t used that way here. I really have no idea how this packet is used, as I&#039;ve seen it in a couple of different situations. The first situation I saw it in was NPCs that change their dialog. The second situation I saw it in was in warping down to Ragol...&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || ???&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x76===&lt;br /&gt;
Subcommand 0x76 (size 0x02) seems to be at least somewhat related to enemies dying via photon blast, or something like that. The Client ID/unused bytes in the header are used for the enemy&#039;s id, I think.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || ???&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x79===&lt;br /&gt;
Subcommand 0x79 (size 0x06) deals with Go Go Ball.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x13 || Position and such things... I don&#039;t really care to know what&#039;s going on here.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x89===&lt;br /&gt;
Subcommand 0x89 (size 0x02) is related in some way to being killed.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || ??? (I saw the value 0x00000114 all 3 times I saw this in testing)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x8D===&lt;br /&gt;
Subcommand 0x8D (size 0x02) seems to be related to starting to cast a technique.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Always 0?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x9A===&lt;br /&gt;
Subcommand 0x9A (size 0x02) modifies a user&#039;s statistics.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Always 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || The stat/direction to modify (0 = HP down, 1 = TP down, 2 = Meseta down, 3 = HP up, 4 = TP up)&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || The amount to modify the statistic&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0xAB===&lt;br /&gt;
Subcommand 0xAB (size 0x02) signifies that the user has sat down in their chair (in the lobby).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Always 0?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0xAF===&lt;br /&gt;
Subcommand 0xAF (size 0x02) signifies that the user has changed direction in their chair (in the lobby).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Heading?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0xB0===&lt;br /&gt;
Subcommand 0xB0 (size 0x02) signifies that the user has moved in their chair (in the lobby).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Position or heading?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0xBF===&lt;br /&gt;
Subcommand 0xBF (size 0x02) is used to change the song playing in a CARD lobby on Episode III (in response to a user using the jukebox).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Song to be played&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || Padding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:PSO Server Protocol]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x60&amp;diff=502</id>
		<title>Protocol:Packet 0x60</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x60&amp;diff=502"/>
		<updated>2021-12-13T05:57:31Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
| __TOC__&lt;br /&gt;
|}&lt;br /&gt;
Clients send Packet 0x60 to the server to forward a &amp;quot;game command&amp;quot; to all clients in the lobby. This is used for various things in game, including telling clients what items are dropped when a box is opened (clients &amp;quot;ask&amp;quot; the party leader what should be dropped with a form of [[Protocol:Packet 0x62#Subcommand 0x60|Packet 0x62]] and the party leader replies with a [[Protocol:Packet 0x60#Subcommand 0x5F|Subcommand 0x5F]]).&lt;br /&gt;
&lt;br /&gt;
PSO v3 (GameCube, Xbox, Blue Burst) sometimes uses packet 0x6C, which has exactly the same format and function as 0x60.&lt;br /&gt;
&lt;br /&gt;
PSO Episode 3 sometimes uses packets 0xC9 and 0xCB in games, which also behave exactly like 0x60. Sending an 0xC9 or 0xCB to a non-Episode 3 client would cause that client to disconnect.&lt;br /&gt;
&lt;br /&gt;
==Main Packet Format==&lt;br /&gt;
===Dreamcast/Gamecube===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Packet Type (0x60 or 0x6C)&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Packet Size (Variable)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Subcommand Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Subcommand Size (in 32-bit increments, not including the main packet header, but including everything Subcommand type and later)&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Client ID of initiating client (usually, but not always)&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Unused (usually, but not always)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08... || Subcommand Data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===PC===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Packet Size (Variable)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Packet Type (0x60 or 0x6C)&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Subcommand Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Subcommand Size (in 32-bit increments, not including the main packet header, but including everything Subcommand type and later)&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Client ID of initiating client (usually, but not always)&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Unused (usually, but not always)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08... || Subcommand Data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Blue Burst===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Packet Size (Variable)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Packet Type (0x60 or 0x6C)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Subcommand Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || Subcommand Size (in 32-bit increments, not including the main packet header, but including everything Subcommand type and later)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || Client ID of initiating client (usually, but not always)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B || Unused (usually, but not always)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C... || Subcommand Data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Subcommands==&lt;br /&gt;
Various subcommands are sent with this packet, and this is not necessarily meant to be an exhaustive list of them (although, I&#039;d love it if it were eventually). Note that many of these, I don&#039;t know exactly how they work or how to fill them in...&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x05===&lt;br /&gt;
Subcommand 0x05 (size 0x03) seems to have something to do with when gates unlock (from switches anyway) or something... The client ID field has something strange in it, and the normally unused byte after it seems to be used for something...&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || All zeroes?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || ???&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x07===&lt;br /&gt;
Subcommand 0x07 (size 0x11) is used for symbol chat. The client ID field in the header always seems to be zero, which means it must be carried somewhere in the data (I&#039;m guessing its the first byte of the data).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Client ID of initiator?&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || Unused? (zeros in my testing)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x3F || Symbol chat data (no idea of the specific format)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x0A===&lt;br /&gt;
Subcommand 0x0A (size 0x03) seems to be used when a hit lands on an enemy. The client ID and normally unused fields in the header are actually used for something here (I think they&#039;re the ID of the enemy, maybe).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Same as byte in Client ID of header&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Unused? (0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Amount of damage done&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x0B===&lt;br /&gt;
Subcommand 0x0B (size 0x03) seems to be used to make a box explode. The Client ID and unused fields in the header are actually used here for something else...  I think they may be the ID of the box that was hit (they match part of the 0x46 subcommand about the attack).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Always 1?&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || Always 0?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || The same as the Client ID byte in the header?&lt;br /&gt;
|-&lt;br /&gt;
| 0x05-0x07 || Always 0?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x0D===&lt;br /&gt;
Subcommand 0x0D (size 0x03) I&#039;ve only seen in passing, and don&#039;t have a clue what it does.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || ??? (I&#039;ve only seen this set to 1)&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x07 || ??? (I&#039;ve only seen them as all 0s)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x17===&lt;br /&gt;
Subcommand 0x17 (size 0x05) is used to move a player to another place on the same map they&#039;re on (potentially without their input).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || X Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Y Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || Z Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Maybe unused? (I always set this to a value that was sent by a 0x3E/0x3F in bytes 4-7, which works)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x1F===&lt;br /&gt;
Subcommand 0x1F (size 0x02) is used when someone moves to a different map. It matches Subcommand 0x21 exactly from what I&#039;ve seen...&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Area warped to&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || Unused? (all zeroes)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x20===&lt;br /&gt;
Subcommand 0x20 (size 0x06) I&#039;ve only seen in logs and have no idea what it does.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x13 || ???&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x21===&lt;br /&gt;
Subcommand 0x21 (size 0x02) is used when someone moves to a different map. It is followed by a subcommand 0x22, as well as a 0x3F, 0x1F, and 0x23.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Area warped to&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || Unused? (all zeroes)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x22===&lt;br /&gt;
Subcommand 0x22 (size 0x01) seems to tell clients that someone has finished moving to another map (I think). It has no data beyond the normal header. This packet also shows up when a client leaves a game to go back to the lobby.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x23===&lt;br /&gt;
Subcommand 0x23 (size 0x01) matches Subcommand 0x22 in every way, and comes after an 0x1F. It has no data beyond the normal header.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x24===&lt;br /&gt;
Subcommand 0x24 (size 0x05) I have no idea about. The only thing I can guess is that its related to NPCs (as I&#039;ve only ever noticed it during the Tinkerbell&#039;s Dog 2 quest).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || ???&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || ???&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || ???&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || ???&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x25===&lt;br /&gt;
Subcommand 0x25 (size 0x03) is used tell clients that an item has been equipped.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || The Item ID (in the user&#039;s inventory) of the item being equipped&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || The type of item being equipped? (1 for mag, 2 for frame, 3 for barrier, 6 for weapon)&lt;br /&gt;
|-&lt;br /&gt;
| 0x05-0x07 || Padding?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x26===&lt;br /&gt;
Subcommand 0x26 (size 0x03) is used to tell clients that an item has been unequipped.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || The Item ID (in the user&#039;s inventory) of the item being unequipped&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Padding?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x27===&lt;br /&gt;
Subcommand 0x27 (size 0x02) is used to tell clients that an item has been used. Note that this same command is also used for things like using a Heart of Chao, thus it may have effects that are somewhat important to pay attention to.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || The Item ID (in the user&#039;s inventory) of the item being used.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x28===&lt;br /&gt;
Subcommand 0x28 (size 0x03) is used when feeding a mag. There are no special packets sent when mags level up or anything else of the like, so the server might have to keep track of a lot of rather boring information to do anything with these...&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || The Item ID of the Mag being fed&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || The Item ID of the item being fed to the Mag&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x29===&lt;br /&gt;
Subcommand 0x29 (size 0x03) is used to tell clients that someone has dropped meseta. Also, it is used to remove an item from the client&#039;s inventory (for instance, when they place it in the bank or when they&#039;re dropping part of a stack of items). It is also used to sell an item.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || 0xFFFFFFFF for dropped meseta, Item ID for removing items&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Amount of meseta dropped or amount of item removed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x2A===&lt;br /&gt;
Subcommand 0x2A (size 0x06) is used to tell clients that an item has been dropped by a player from their inventory.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Always seems to be 0x0001&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Area where the item was dropped&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || The Item ID (from the user&#039;s inventory) of the item being dropped&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || X Position?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Y Position?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10-0x13 || Z Position?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x2B===&lt;br /&gt;
Subcommand 0x2B (size 0x07) is used to add an item to a client&#039;s inventory (for instance, when taking an item out of the bank).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Item Data dword 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Item Data dword 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || Item Data dword 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Item ID of place in inventory where the item will go&lt;br /&gt;
|-&lt;br /&gt;
| 0x10-0x13 || Item Data 2 dword&lt;br /&gt;
|-&lt;br /&gt;
| 0x14-0x17 || Unknown (0x00000002)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x2C===&lt;br /&gt;
Subcommand 0x2C (size 0x05) is used to tell other clients that someone is talking to an NPC. This command also seems to come up while dropping items...&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || ??? (Always seems to be 0xFFFF for NPC talk, 0x0384 for dropping items)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || ??? (Always seems to be 0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Location ? (Matches up with stuff from packets nearby)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || Location ? (Once again, matches up nicely)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Padding? (Always seems to be 0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x2D===&lt;br /&gt;
Subcommand 0x2D (size 0x01) is used to tell other clients that someone has finished talking to an NPC. It contains no data of its own, beyond the normal header. This command also shows up while dropping items. This command also shows up when dying.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x30===&lt;br /&gt;
Subcommand 0x30 (size 0x05) is used to tell other clients that someone has leveled up. The values in the packet correspond to what&#039;s in the player structure, not necessarily the exact numerical values.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || ATP&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || MST&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x05 || EVP&lt;br /&gt;
|-&lt;br /&gt;
| 0x06-0x07 || HP&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x09 || DFP&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A-0x0B || ATA&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Level - 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x31===&lt;br /&gt;
Subcommand 0x31 (size 0x01) seems to be related to being resurrected (in my tests by a scape doll... haven&#039;t seen what happens when reverser is used yet). It contains no data beyond the normal header. It also shows up when being resurrected by the medical center.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x32===&lt;br /&gt;
Subcommand 0x32 (size 0x01) has something to do with being resurrected by the medical center, maybe? It contains no data of its own beyond the normal header.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x36===&lt;br /&gt;
Subcommand 0x36 (size 0x01) seems to be related to the end of a photon blast. It contains no data of its own beyond the normal header.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x37===&lt;br /&gt;
Subcommand 0x37 (size 0x02) is related in some way to the use of a photon blast.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Amount of PB used (should always be 0x64 = 100)?&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || Always zero?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x39===&lt;br /&gt;
Subcommand 0x39 (size 0x01) seems to be related to the photon blast gauge being filled up. It contains no data of its own beyond the normal header.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x3A===&lt;br /&gt;
Subcommand 0x3A (size 0x01) is related in some way to being killed by an enemy. It contains no data of its own beyond the normal header.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x3B===&lt;br /&gt;
Subcommand 0x3B (size 0x01) seems to have something to do with a client joining a game or loading into an area... No idea what its supposed to signify. No data is contained beyond the normal header.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x3E===&lt;br /&gt;
Subcommand 0x3E (size 0x06) is used to tell other clients that someone has stopped moving.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || ??? (Always seems to be 0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || ???&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Something to do with the position, maybe?&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || X Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Y Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x10-0x13 || Z Position&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x3F===&lt;br /&gt;
Subcommand 0x3F (size 0x06) seems to be used to tell other clients that someone is not moving after warping, or something like that (triggered when going into the principal warp or after talking to the medical center, for instance). Seems to be used a lot of the time nearby a bunch of subcommand 0x55 packets.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Always seems to be 0?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || ??? (when near a subcommand 0x55, matches with bytes 0x00-0x01 in that?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Something to do with the position, maybe?&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || X Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Y Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x10-0x13 || Z Position&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x40===&lt;br /&gt;
Subcommand 0x40 (size 0x04) is used to tell other clients that someone has started moving (or is moving slowly?).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || X Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Z Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || Padding? (Always seems to be 0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x42===&lt;br /&gt;
Subcommand 0x42 (size 0x03) is used to tell other clients that someone is moving (quickly?).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || X Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Z Position&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x43===&lt;br /&gt;
Subcommand 0x43 (size 0x02) is used when the first step of a normal attack is in progress.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Direction? (Matches bytes 0x02-0x03 in a nearby Subcommand 0x3E)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || 0 for normal attack, 1 for heavy attack&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Padding?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x44===&lt;br /&gt;
Subcommand 0x44 (size 0x02) is used when the second step of a normal attack is in progress.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Direction? (Matches bytes 0x02-0x03 in a nearby Subcommand 0x3E)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || 0 for normal attack, 1 for heavy attack&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Padding?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x45===&lt;br /&gt;
Subcommand 0x45 (size 0x02) is used when the third step of a normal attack is in progress.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Direction? (Matches bytes 0x02-0x03 in a nearby Subcommand 0x3E)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || 0 for normal attack, 1 for heavy attack&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Padding?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x46===&lt;br /&gt;
Subcommand 0x46 (size 0x02 or 0x03) is used when a step of an attack is finished.&lt;br /&gt;
&lt;br /&gt;
In its 0x02 sized form:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Always zero?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In its 0x03 sized form:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Number of items hit? (I&#039;ve only seen 1, but I&#039;ve only hit one thing to see it)&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || All zeroes?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x05 || The item it hit? (same as the client ID and normally unused bytes in the header of Subcommand 0x0B)&lt;br /&gt;
|-&lt;br /&gt;
| 0x06-0x07 || All zeroes?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x47===&lt;br /&gt;
Subcommand 0x47 (size 0x02 or 0x03) is used when casting a technique. Its possible that it could be other sizes if multiple things were hit (I haven&#039;t tested this theory). It is always followed by a Subcommand 0x48. With healing spells, somehow its not mentioned what it affected... Also, I don&#039;t know how to tell what was hit if multiple things were hit...&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Technique cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Always zero?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Level of the spell, minus 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || 1 if at least one thing was hit&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x05 || ID of first item hit?&lt;br /&gt;
|-&lt;br /&gt;
| 0x06-0x07 || All zeroes?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x48===&lt;br /&gt;
Subcommand 0x48 (size 0x02) is used after a technique has been cast.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Technique cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Always zero?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Level of the spell, minus 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Always zero?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x49===&lt;br /&gt;
Subcommand 0x49 (size 0x03) is sent after a photon blast has been used to subtract from the PB gauge.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Photon blast used&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || Always zero?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Amount of PB spent (should always be 0x64 = 100)?&lt;br /&gt;
|-&lt;br /&gt;
| 0x05-0x07 || Always zero?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x4A===&lt;br /&gt;
Subcommand 0x4A (size 0x01) seems to be related to enemies attacking and the character evading. It carries no data beyond the normal header.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x4B===&lt;br /&gt;
Subcommand 0x4B (size 0x04) is one of a few packets relating to enemies landing a hit on a character. What determines which packet (this one or 0x4C) gets used, I don&#039;t know.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Same as 0x3F after the fact (bytes 0x02-0x03)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Amount of HP remaining after hit&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x0B || ???&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x4C===&lt;br /&gt;
Subcommand 0x4C (size 0x04) seems to be related to enemies landing a hit.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Same as 0x3F after the fact (bytes 0x02-0x03)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Amount of HP remaining after hit&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x0B || ???&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x4D===&lt;br /&gt;
Subcommand 0x4D (size 0x02) is related to enemies killing a client.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || ??? (When a scape doll was on hand, this was 0, otherwise 2 in my testing)&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || Padding?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x4E===&lt;br /&gt;
Subcommand 0x4E (size 0x01) has something to do with dying (and not being immediately resurrected by a scape doll). It contains no data of its own beyond the normal header.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x4F===&lt;br /&gt;
Subcommand 0x4F (size 0x01) has something to do with dying (and being immediately resurrected by a scape doll). It contains no data of its own beyond the normal header.&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x50===&lt;br /&gt;
Subcommand 0x50 (size 0x02) has something to do with switches (I think?)&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || ??? (The same as bytes 0x02-0x03 in a nearby Subcommand 0x3E/0x3F)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || All zeroes?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x52===&lt;br /&gt;
Subcommand 0x52 (size 0x03) is used to tell other clients that someone is talking to a person at a desk of some sort or has just finished talking to the desk.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || ??? (Always seems to be 0x000000A0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Location? (Matches fairly well with bytes from packets nearby)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x55===&lt;br /&gt;
Subcommand 0x55 (size 0x08) is used to tell clients that someone has warped (maybe?). Several of these seem to be sent at a time (at least when going into and out of the principal&#039;s warp).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || ??? (Matches with nearby subcommand 0x3F&#039;s bytes 0x02-0x03)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Always seems to be 0?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || ???&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || ???&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || ???&lt;br /&gt;
|-&lt;br /&gt;
| 0x10-0x13 || X Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x14-0x17 || Seems to be 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x18-0x1B || Z Position&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x58===&lt;br /&gt;
Subcommand 0x58 (size 0x02) is used to do a lobby action.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Action to do (probably only the first byte)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x59===&lt;br /&gt;
Subcommand 0x59 (size 0x03) is used to pick up a dropped item.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Client ID of inventory where item came from?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Item ID of item that was picked up&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x5D===&lt;br /&gt;
Subcommand 0x5D (size 0x0A) is used to tell clients that someone has split up a stack of items (for dropping one or more).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Area ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || X Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || Z Position&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Item Data dword 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x10-0x13 || Item Data dword 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x14-0x17 || Item Data dword 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x18-0x1B || New Item ID for split stack&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C-0x1F || Item Data 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x20-0x23 || Always 0x00000002?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x5E===&lt;br /&gt;
Subcommand 0x5E (size 0x06) is used when someone buys something from the shop.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Item Data dword 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Item Data dword 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || Item Data dword 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Item ID of new slot in inventory&lt;br /&gt;
|-&lt;br /&gt;
| 0x10-0x13 || Amount of meseta spent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x5F===&lt;br /&gt;
Subcommand 0x5F (size 0x0B) is used to tell clients what item dropped from an opened box.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Area of the Drop&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || What kind of thing are we asking about?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Request ID (might only be one byte)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || X Coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || Y Coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Unknown (0x00000010 works)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10-0x1B || Item Code (first 3 32-bit values)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C-0x1F || Item ID -- (request_id &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 0x06010100) seems to work for forging it&lt;br /&gt;
|-&lt;br /&gt;
| 0x20-0x23 || Item Code (last 32-bit value)&lt;br /&gt;
|-&lt;br /&gt;
| 0x24-0x27 || Unknown (0x00000002)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x61===&lt;br /&gt;
Subcommand 0x61 (size 0x03) I don&#039;t really know what it does... All I know is that I saw it after a levelup (immediately after the Subcommand 0x30 packet). When I did see it, the client ID field was set to 0, which didn&#039;t correspond to any client IDs in the game at the time. I also saw it when my PB gauge filled and I became invincible for a short time.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Item ID of equipped Mag?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x02 on level up, 0x08 on invincible?&lt;br /&gt;
|-&lt;br /&gt;
| 0x05-0x07 || Always zero?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x63===&lt;br /&gt;
Subcommand 0x63 (size 0x03) is used to remove old items from the map to make room for new items. It seems that there&#039;s about a 50 item limit for things laying around with PSOv2. With this one, the normally unused byte in the header area is used for something, but what I don&#039;t know... When I was first testing this, I saw 0x8C there every time it came up (although, when sending it, setting it to 0 works fine)&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Item ID to remove from the map&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Unused? (always 0 in my initial testing)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x67===&lt;br /&gt;
Subcommand 0x67 (size 0x04), I have no idea about at all. The Client ID and unused fields after it in the header are odd here... I really don&#039;t have a clue what this packet is for.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x0B || ???&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x69===&lt;br /&gt;
Subcommand 0x69 (size 0x03) is used to spawn NPC characters.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || The Client ID to follow around?&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || 0?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || The Client ID the NPC should take on&lt;br /&gt;
|-&lt;br /&gt;
| 0x03-0x05 || All 0?&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || The type of NPC to spawn&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || 0?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x74===&lt;br /&gt;
Subcommand 0x74 (size 0x08) is used for [[Word Select]]. Some day, I&#039;ll document this further.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x1B || Word Select data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x75===&lt;br /&gt;
Subcommand 0x75 (size 0x02) kinda baffles me a bit... The field used normally for the client ID that triggered the event isn&#039;t used that way here. I really have no idea how this packet is used, as I&#039;ve seen it in a couple of different situations. The first situation I saw it in was NPCs that change their dialog. The second situation I saw it in was in warping down to Ragol...&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || ???&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x76===&lt;br /&gt;
Subcommand 0x76 (size 0x02) seems to be at least somewhat related to enemies dying via photon blast, or something like that. The Client ID/unused bytes in the header are used for the enemy&#039;s id, I think.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || ???&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x79===&lt;br /&gt;
Subcommand 0x79 (size 0x06) deals with Go Go Ball.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x13 || Position and such things... I don&#039;t really care to know what&#039;s going on here.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x89===&lt;br /&gt;
Subcommand 0x89 (size 0x02) is related in some way to being killed.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || ??? (I saw the value 0x00000114 all 3 times I saw this in testing)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x8D===&lt;br /&gt;
Subcommand 0x8D (size 0x02) seems to be related to starting to cast a technique.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Always 0?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0x9A===&lt;br /&gt;
Subcommand 0x9A (size 0x02) modifies a user&#039;s statistics.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x01 || Always 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || The stat/direction to modify (0 = HP down, 1 = TP down, 2 = Meseta down, 3 = HP up, 4 = TP up)&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || The amount to modify the statistic&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0xAB===&lt;br /&gt;
Subcommand 0xAB (size 0x02) signifies that the user has sat down in their chair (in the lobby).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Always 0?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0xAF===&lt;br /&gt;
Subcommand 0xAF (size 0x02) signifies that the user has changed direction in their chair (in the lobby).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Heading?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0xB0===&lt;br /&gt;
Subcommand 0xB0 (size 0x02) signifies that the user has moved in their chair (in the lobby).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00-0x03 || Position or heading?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Subcommand 0xBF===&lt;br /&gt;
Subcommand 0xBF (size 0x02) is used to change the song playing in a CARD lobby on Episode III (in response to a user using the jukebox).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Song to be played&lt;br /&gt;
|-&lt;br /&gt;
| 0x01-0x03 || Padding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:PSO Server Protocol]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Packet_0x44&amp;diff=501</id>
		<title>Packet 0x44</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Packet_0x44&amp;diff=501"/>
		<updated>2021-12-13T05:56:23Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x44 to Protocol:Packet 0x44&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Protocol:Packet 0x44]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x44&amp;diff=500</id>
		<title>Protocol:Packet 0x44</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x44&amp;diff=500"/>
		<updated>2021-12-13T05:56:22Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x44 to Protocol:Packet 0x44&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The server sends clients Packet 0x44 when starting to send a quest to let the client know which files are going to be transmitted.&lt;br /&gt;
&lt;br /&gt;
Packet 0xA6 is used similarly for GBA files for the Gamecube version of PSO, as well as by other versions for Downloadable quests.&lt;br /&gt;
&lt;br /&gt;
==Dreamcast Packet Format==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Packet Type (0x44 or 0xA6)&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Flags (0x02? or 0x00)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Packet Size (0x003C)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x23 || Name of Quest (PSO/Name)&lt;br /&gt;
|-&lt;br /&gt;
| 0x24-0x26 || Padding (all zeroes)&lt;br /&gt;
|-&lt;br /&gt;
| 0x27-0x36 || Name of the file&lt;br /&gt;
|-&lt;br /&gt;
| 0x37 || Padding (zero)&lt;br /&gt;
|-&lt;br /&gt;
| 0x38-0x3B || Size of the file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:PSO Server Protocol]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Packet_0x41&amp;diff=499</id>
		<title>Packet 0x41</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Packet_0x41&amp;diff=499"/>
		<updated>2021-12-13T05:56:04Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x41 to Protocol:Packet 0x41&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Protocol:Packet 0x41]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x41&amp;diff=498</id>
		<title>Protocol:Packet 0x41</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x41&amp;diff=498"/>
		<updated>2021-12-13T05:56:04Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x41 to Protocol:Packet 0x41&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The server sends clients Packet 0x41 as a reply to a guild card search (initiated by a [[Protocol:Packet 0x40|Packet 0x40]] sent by the client). This packet is only sent out if the person being searched for is online currently.&lt;br /&gt;
&lt;br /&gt;
==Dreamcast Packet Format==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Packet Type (0x41)&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Flags (0x00)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Packet Size (0x00C4)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Player Tag (0x00010000)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || Guildcard Number of searching person&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Guildcard Number of person being searched for&lt;br /&gt;
|-&lt;br /&gt;
| 0x10-0x13 || Padding (all zeroes)&lt;br /&gt;
|-&lt;br /&gt;
| 0x14-0x17 || IP Address of the Block the person is on (&#039;&#039;&#039;Big-Endian&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x18-0x19 || Port of the Block the person is on (&#039;&#039;&#039;Little-Endian&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A-0x1B || Padding (all zeroes)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C-0x5F || Location string (see below for format)&lt;br /&gt;
|-&lt;br /&gt;
| 0x60-0x63 || Menu ID of the lobby the person is on&lt;br /&gt;
|-&lt;br /&gt;
| 0x64-0x67 || Item ID of the lobby the person is on&lt;br /&gt;
|-&lt;br /&gt;
| 0x68-0xA3 || Padding (all zeroes)&lt;br /&gt;
|-&lt;br /&gt;
| 0xA4-0xC3 || Name of the character the person is using&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Since I&#039;m lazy, this is how Sylverant formats the Location string:&lt;br /&gt;
&amp;lt;pre&amp;gt;sprintf(pkt-&amp;gt;location, &amp;quot;%s,BLOCK%02d,%s&amp;quot;, game, block, ship);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:PSO Server Protocol]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x41&amp;diff=497</id>
		<title>Protocol:Packet 0x41</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x41&amp;diff=497"/>
		<updated>2021-12-13T05:55:56Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The server sends clients Packet 0x41 as a reply to a guild card search (initiated by a [[Protocol:Packet 0x40|Packet 0x40]] sent by the client). This packet is only sent out if the person being searched for is online currently.&lt;br /&gt;
&lt;br /&gt;
==Dreamcast Packet Format==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Packet Type (0x41)&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Flags (0x00)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Packet Size (0x00C4)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Player Tag (0x00010000)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || Guildcard Number of searching person&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Guildcard Number of person being searched for&lt;br /&gt;
|-&lt;br /&gt;
| 0x10-0x13 || Padding (all zeroes)&lt;br /&gt;
|-&lt;br /&gt;
| 0x14-0x17 || IP Address of the Block the person is on (&#039;&#039;&#039;Big-Endian&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x18-0x19 || Port of the Block the person is on (&#039;&#039;&#039;Little-Endian&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A-0x1B || Padding (all zeroes)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C-0x5F || Location string (see below for format)&lt;br /&gt;
|-&lt;br /&gt;
| 0x60-0x63 || Menu ID of the lobby the person is on&lt;br /&gt;
|-&lt;br /&gt;
| 0x64-0x67 || Item ID of the lobby the person is on&lt;br /&gt;
|-&lt;br /&gt;
| 0x68-0xA3 || Padding (all zeroes)&lt;br /&gt;
|-&lt;br /&gt;
| 0xA4-0xC3 || Name of the character the person is using&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Since I&#039;m lazy, this is how Sylverant formats the Location string:&lt;br /&gt;
&amp;lt;pre&amp;gt;sprintf(pkt-&amp;gt;location, &amp;quot;%s,BLOCK%02d,%s&amp;quot;, game, block, ship);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:PSO Server Protocol]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Packet_0x40&amp;diff=496</id>
		<title>Packet 0x40</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Packet_0x40&amp;diff=496"/>
		<updated>2021-12-13T05:55:35Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x40 to Protocol:Packet 0x40&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Protocol:Packet 0x40]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x40&amp;diff=495</id>
		<title>Protocol:Packet 0x40</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x40&amp;diff=495"/>
		<updated>2021-12-13T05:55:35Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x40 to Protocol:Packet 0x40&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Clients send the server a Packet 0x40 to search for someone by guild card. The server will reply with a [[Protocol:Packet 0x41|Packet 0x41]] if the person is online, otherwise no reply will be generated.&lt;br /&gt;
&lt;br /&gt;
==Dreamcast Packet Format==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Packet Type (0x40)&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Flags (0x00)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Packet Size (0x0010)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Player Tag (0x00010000)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || Guildcard Number of searching person&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Guildcard Number of person being searched for&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:PSO Server Protocol]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x40&amp;diff=494</id>
		<title>Protocol:Packet 0x40</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x40&amp;diff=494"/>
		<updated>2021-12-13T05:55:27Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Clients send the server a Packet 0x40 to search for someone by guild card. The server will reply with a [[Protocol:Packet 0x41|Packet 0x41]] if the person is online, otherwise no reply will be generated.&lt;br /&gt;
&lt;br /&gt;
==Dreamcast Packet Format==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Packet Type (0x40)&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Flags (0x00)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Packet Size (0x0010)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || Player Tag (0x00010000)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x0B || Guildcard Number of searching person&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C-0x0F || Guildcard Number of person being searched for&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:PSO Server Protocol]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Packet_0x1F&amp;diff=493</id>
		<title>Packet 0x1F</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Packet_0x1F&amp;diff=493"/>
		<updated>2021-12-13T05:54:38Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x1F to Protocol:Packet 0x1F&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Protocol:Packet 0x1F]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x1F&amp;diff=492</id>
		<title>Protocol:Packet 0x1F</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x1F&amp;diff=492"/>
		<updated>2021-12-13T05:54:38Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x1F to Protocol:Packet 0x1F&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Protocol:Packet 0x07]]&lt;br /&gt;
&lt;br /&gt;
[[Category:PSO Server Protocol]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x1F&amp;diff=491</id>
		<title>Protocol:Packet 0x1F</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x1F&amp;diff=491"/>
		<updated>2021-12-13T05:54:31Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: Changed redirect target from Packet 0x07 to Protocol:Packet 0x07&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Protocol:Packet 0x07]]&lt;br /&gt;
&lt;br /&gt;
[[Category:PSO Server Protocol]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Packet_0x1D&amp;diff=490</id>
		<title>Packet 0x1D</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Packet_0x1D&amp;diff=490"/>
		<updated>2021-12-13T05:54:15Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x1D to Protocol:Packet 0x1D&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Protocol:Packet 0x1D]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x1D&amp;diff=489</id>
		<title>Protocol:Packet 0x1D</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x1D&amp;diff=489"/>
		<updated>2021-12-13T05:54:15Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x1D to Protocol:Packet 0x1D&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The server sends clients a Packet 0x1D as a &amp;quot;ping&amp;quot; packet (essentially to make sure that the client is still alive).&lt;br /&gt;
&lt;br /&gt;
==Dreamcast Packet Format==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Packet Type (0x1D)&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Flags (0x00)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Packet Size (0x0004)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:PSO Server Protocol]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Packet_0x19&amp;diff=488</id>
		<title>Packet 0x19</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Packet_0x19&amp;diff=488"/>
		<updated>2021-12-13T05:54:02Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x19 to Protocol:Packet 0x19&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Protocol:Packet 0x19]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x19&amp;diff=487</id>
		<title>Protocol:Packet 0x19</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x19&amp;diff=487"/>
		<updated>2021-12-13T05:54:02Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x19 to Protocol:Packet 0x19&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The server sends clients a Packet 0x19 to redirect them to a different IP/Port.&lt;br /&gt;
&lt;br /&gt;
==Dreamcast Packet Format==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Packet Type (0x19)&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Flags (0x00)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02-0x03 || Packet Size (0x000C)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04-0x07 || IP Address of destination (&#039;&#039;&#039;Big-Endian&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08-0x09 || Port Number of destination (&#039;&#039;&#039;Little-Endian&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A-0x0B || Padding (both zeroes)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:PSO Server Protocol]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x17&amp;diff=486</id>
		<title>Protocol:Packet 0x17</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x17&amp;diff=486"/>
		<updated>2021-12-13T05:53:39Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: Changed redirect target from Packet 0x02 to Protocol:Packet 0x02&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Protocol:Packet 0x02]]&lt;br /&gt;
&lt;br /&gt;
[[Category:PSO Server Protocol]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Packet_0x17&amp;diff=485</id>
		<title>Packet 0x17</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Packet_0x17&amp;diff=485"/>
		<updated>2021-12-13T05:53:13Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x17 to Protocol:Packet 0x17&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Protocol:Packet 0x17]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x17&amp;diff=484</id>
		<title>Protocol:Packet 0x17</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x17&amp;diff=484"/>
		<updated>2021-12-13T05:53:13Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x17 to Protocol:Packet 0x17&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Packet 0x02]]&lt;br /&gt;
&lt;br /&gt;
[[Category:PSO Server Protocol]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Packet_0x13&amp;diff=483</id>
		<title>Packet 0x13</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Packet_0x13&amp;diff=483"/>
		<updated>2021-12-13T05:52:35Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x13 to Protocol:Packet 0x13&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Protocol:Packet 0x13]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
	<entry>
		<id>https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x13&amp;diff=482</id>
		<title>Protocol:Packet 0x13</title>
		<link rel="alternate" type="text/html" href="https://sylverant.net/wiki/index.php?title=Protocol:Packet_0x13&amp;diff=482"/>
		<updated>2021-12-13T05:52:35Z</updated>

		<summary type="html">&lt;p&gt;BlueCrab: BlueCrab moved page Packet 0x13 to Protocol:Packet 0x13&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The server sends clients a Packet 0x13 to send a portion of quest data to the client.&lt;br /&gt;
&lt;br /&gt;
Packet 0xA7 is used similarly, but for GBA files on the Gamecube version of PSO or Downloadable quests in most versions.&lt;br /&gt;
&lt;br /&gt;
==Dreamcast Packet Format==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Bytes !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0x0000 || Packet Type (0x13 or 0xA7)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0001 || Flags (Number of this chunk (0-based))&lt;br /&gt;
|-&lt;br /&gt;
| 0x0002-0x0003 || Packet Size (0x0418)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0004-0x0013 || Name of the file being sent&lt;br /&gt;
|-&lt;br /&gt;
| 0x0014-0x0413 || Chunk data (always 1024 bytes)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0414-0x0417 || Chunk size (1024 for most chunks, whatever is appropriate for the last chunk of each file)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:PSO Server Protocol]]&lt;/div&gt;</summary>
		<author><name>BlueCrab</name></author>
	</entry>
</feed>