Difference between revisions of "Pre-release protocol"

From wiki.vg
Jump to navigation Jump to search
(Remove 1.1 pre-release stuff (already been merged into Protocol), new Mob Spawn byte (and byte in new packet) appears to be rotation, but not sure what of. Int in new packet is likely EID)
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
This page documents the changes from the [[Protocol|last stable Minecraft release]] (currently 1.0.1) to the current pre-release (currently 12w01a)
+
This page documents the changes from the [[Protocol|last stable Minecraft release]] (currently 1.1) to the current pre-release (currently 12w03a)
  
 
== New packets ==
 
== New packets ==
  
=== Unknown (0xFA) ===
+
=== Unknown (0x23) ===
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 13: Line 13:
 
! class="col4" | Notes
 
! class="col4" | Notes
 
|- class="row1"
 
|- class="row1"
| class="col0 centeralign" rowspan=3 | 0xFA
+
| class="col0 centeralign" rowspan="2" | 0x23
| class="col1 centeralign" | Unknown
+
| class="col1 centeralign" | '''Unknown'''
| class="col2 centeralign" | string
+
| class="col2 centeralign" | int
 
| class="col3 centeralign" |  
 
| class="col3 centeralign" |  
| class="col4" |
+
| class="col4" | Likely to be Entity ID
 
|- class="row2"
 
|- class="row2"
| class="col1 centeralign" | Length of array
+
| class="col0 centeralign" | '''Unknown'''
| class="col2 centeralign" | short
+
| class="col1 centeralign" | byte
| class="col3 centeralign" |
+
| class="col2 centeralign" |  
| class="col4" | Length of the following array
+
| class="col3" | Rotation of something...
 
|- class="row3"
 
|- class="row3"
| class="col1 centeralign" | Array
 
| class="col2 centeralign" | byte[]
 
| class="col3 centeralign" |
 
| class="col4" |
 
|- class="row4"
 
 
! class="col0" | Total Size:
 
! class="col0" | Total Size:
| class="col1 rightalign" colspan="4" | 5 bytes + string + array
+
| class="col1 rightalign" colspan="4" | 6 bytes
 
|}
 
|}
  
 
== Changed packets ==
 
== Changed packets ==
  
=== [[Protocol#Login_Request_.280x01.29|Login Request (0x01)]] ===
+
=== [[Protocol#Mob_Spawn_.280x18.29|Mob Spawn (0x18)]] ===
 
 
New string field added: level generator
 
  
==== Client to Server ====
+
New byte field.
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 49: Line 42:
 
! class="col4" | Notes
 
! class="col4" | Notes
 
|- class="row1"
 
|- class="row1"
| class="col0 centeralign" rowspan="9" | 0x01
+
| class="col0 centeralign" rowspan="9" | 0x18
| class="col1 centeralign" | Protocol Version
+
| class="col1 centeralign" | EID
 
| class="col2 centeralign" | int
 
| class="col2 centeralign" | int
| class="col3 centeralign" | <code>20</code>
+
| class="col3 centeralign" | <code>446</code>
| class="col4" | 1.0.0's protocol version is <code>22</code>
+
| class="col4" | Entity ID
 
|- class="row2"
 
|- class="row2"
| class="col0 centeralign" | Username
+
| class="col0 centeralign" | Type
| class="col1 centeralign" | string
+
| class="col1 centeralign" | byte
| class="col2 centeralign" | <code>TkTech</code>
+
| class="col2 centeralign" | <code>91</code>
| class="col3" | The name of the user attempting to login, max length of 16
+
| class="col3" | The type of mob. See [[Entities#Mobs]]
 
|- class="row3"
 
|- class="row3"
| class="col0 centeralign" | Not used
+
| class="col0 centeralign" | X
| class="col1 centeralign" | long
+
| class="col1 centeralign" | int
| class="col2 centeralign" | <code>0</code>
+
| class="col2 centeralign" | <code>13366</code>
| class="col3" |  
+
| class="col3" | The Absolute Integer X Position of the object
 
|- class="row4"
 
|- class="row4"
| class="col0 centeralign" | Not used
+
| class="col0 centeralign" | Y
| class="col1 centeralign" | string
+
| class="col1 centeralign" | int
| class="col2 centeralign" | (empty string)
+
| class="col2 centeralign" | <code>2176</code>
| class="col3" |  
+
| class="col3" | The Absolute Integer Y Position of the object
 
|- class="row5"
 
|- class="row5"
| class="col0 centeralign" | Not used
+
| class="col0 centeralign" | Z
 
| class="col1 centeralign" | int
 
| class="col1 centeralign" | int
| class="col2 centeralign" | <code>0</code>
+
| class="col2 centeralign" | <code>1680</code>
| class="col3" |  
+
| class="col3" | The Absolute Integer Z Position of the object
 
|- class="row6"
 
|- class="row6"
| class="col0 centeralign" | Not used
+
| class="col0 centeralign" | Yaw
 
| class="col1 centeralign" | byte
 
| class="col1 centeralign" | byte
| class="col2 centeralign" | <code>0</code>
+
| class="col2 centeralign" | <code>-27</code>
| class="col3" |
+
| class="col3" | The X Axis rotation in steps of 2π/256
 
|- class="row7"
 
|- class="row7"
| class="col0 centeralign" | Not used
+
| class="col0 centeralign" | Pitch
 
| class="col1 centeralign" | byte
 
| class="col1 centeralign" | byte
 
| class="col2 centeralign" | <code>0</code>
 
| class="col2 centeralign" | <code>0</code>
| class="col3" |
+
| class="col3" | The Y Axis rotation in steps of 2π/256
 
|- class="row8"
 
|- class="row8"
| class="col0 centeralign" | Not used
+
| class="col0 centeralign" | '''Unknown'''
| class="col1 centeralign" | unsigned byte
 
| class="col2 centeralign" | <code>0</code>
 
| class="col3" |
 
|- class="row9"
 
| class="col0 centeralign" | Not used
 
| class="col1 centeralign" | unsigned byte
 
| class="col2 centeralign" | <code>0</code>
 
| class="col3" |
 
|- class="row10"
 
! class="col0" | Total Size:
 
| class="col1 rightalign" colspan="4" | 25 bytes + length of strings
 
|}
 
 
 
==== Server to Client ====
 
 
 
{| class="wikitable"
 
|- class="row0"
 
! class="col0" | Packet ID
 
! class="col1" | Field Name
 
! class="col2" | Field Type
 
! class="col3" | Example
 
! class="col4" | Notes
 
|- class="row1"
 
| class="col0 centeralign" rowspan="9" | 0x01
 
| class="col1 centeralign" | Entity ID
 
| class="col2 centeralign" | int
 
| class="col3 centeralign" | <code>1298</code>
 
| class="col4" | The Players Entity ID
 
|- class="row2"
 
| class="col0 centeralign" | Not used
 
| class="col1 centeralign" | string
 
| class="col2 centeralign" | (empty string)
 
| class="col3" | Not used
 
|- class="row3"
 
| class="col0 centeralign" | Map Seed
 
| class="col1 centeralign" | long
 
| class="col2 centeralign" | <code>971768181197178410</code>
 
| class="col3" | The server's map seed. Must be sent in respawn packets by the client.
 
|- class="row4"
 
| class="col0 centeralign" | Level Type
 
| class="col1 centeralign" | string
 
| class="col2 centeralign" | DEFAULT
 
| class="col3" | DEFAULT or SUPERFLAT; level-type in server.properties
 
|- class="row5"
 
| class="col0 centeralign" | Server mode
 
| class="col1 centeralign" | int
 
| class="col2 centeralign" | <code>0</code>
 
| class="col3" | 0 for survival, 1 for creative
 
|- class="row6"
 
| class="col0 centeralign" | Dimension
 
| class="col1 centeralign" | byte
 
| class="col2 centeralign" | <code>0</code>
 
| class="col3" | <code>-1</code>: The Nether, <code>0</code>: The Overworld, <code>1</code>: The End
 
|- class="row7"
 
| class="col0 centeralign" | Difficulty
 
 
| class="col1 centeralign" | byte
 
| class="col1 centeralign" | byte
| class="col2 centeralign" | <code>1</code>
+
| class="col2 centeralign" |  
| class="col3" | <code>0</code> thru <code>3</code> for Peaceful, Easy, Normal, Hard
+
| class="col3" | Rotation of something...
|- class="row8"
 
| class="col0 centeralign" | World height
 
| class="col1 centeralign" | unsigned byte
 
| class="col2 centeralign" | <code>128</code>
 
| class="col3" | Defaults to <code>128</code>
 
 
|- class="row9"
 
|- class="row9"
| class="col0 centeralign" | Max players
+
| class="col0 centeralign" | Metadata
| class="col1 centeralign" | unsigned byte
+
| class="col1 centeralign" | Metadata
| class="col2 centeralign" | <code>8</code>
+
| class="col2 centeralign" | <code>127</code>
| class="col3" | Used by the client to draw the player list
+
| class="col3" | Varies by mob, see [[Entities]]
 
|- class="row10"
 
|- class="row10"
 
! class="col0" | Total Size:
 
! class="col0" | Total Size:
| class="col1 rightalign" colspan="4" | 25 bytes + length of strings
+
| class="col1 rightalign" colspan="4" | 21 bytes + Metadata (at least 1)
 
|}
 
|}
  
=== [[Protocol#Respawn_.280x09.29|Respawn (0x09) ]] ===
 
 
New string field added
 
 
{| class="wikitable"
 
|- class="row0"
 
! class="col0" | Packet ID
 
! class="col1" | Field Name
 
! class="col2" | Field Type
 
! class="col3" | Example
 
! class="col4" | Notes
 
|- class="row1"
 
| class="col0 centeralign" rowspan="6" | 0x09
 
| class="col1 centeralign" | Dimension
 
| class="col2 centeralign" | byte
 
| class="col3 centeralign" | <code>1</code>
 
| class="col4" | <code>-1</code>: The Nether, <code>0</code>: The Overworld, <code>1</code>: The End
 
|- class="row2"
 
| class="col1 centeralign" | Difficulty
 
| class="col2 centeralign" | byte
 
| class="col3 centeralign" | <code>1</code>
 
| class="col4" | <code>0</code> thru <code>3</code> for Peaceful, Easy, Normal, Hard. <code>1</code> is always sent c->s
 
|- class="row2"
 
| class="col1 centeralign" | Creative mode
 
| class="col2 centeralign" | byte
 
| class="col3 centeralign" | <code>1</code>
 
| class="col4" | <code>0</code> for survival, <code>1</code> for creative.
 
|- class="row1"
 
| class="col1 centeralign" | World height
 
| class="col2 centeralign" | short
 
| class="col3 centeralign" | <code>128</code>
 
| class="col4" | Defaults to <code>128</code>
 
|- class="row1"
 
| class="col1 centeralign" | Map Seed
 
| class="col2 centeralign" | long
 
| class="col3 centeralign" | <code>-3815848935435401459</code>
 
|- class="row1"
 
| class="col1 centeralign" | Level Type
 
| class="col2 centeralign" | string
 
| class="col3 centeralign" | DEFAULT
 
| class="col4" |
 
|- class="row2"
 
! class="col0" | Total Size:
 
| class="col1 rightalign" colspan="4" | 16 bytes + length of string
 
|}
 
  
 
== Other changes ==
 
== Other changes ==
  
None currently.
+
Protocol version is now 24.
  
 
== Protocol History ==
 
== Protocol History ==
  
=== 2012-01-05 ===
+
=== 2012-01-19 ===
* 12w01a
+
* 12w03a
* Protocol version is now 23
+
* Protocol version is now 24
 
+
* New packet: 0x23
=== 2011-12-15 ===
+
* MobSpawn: new field, 1 byte inserted before metadata.
* 11w50a
 
 
 
=== 2011-12-08 ===
 
* 11w49a
 
 
 
=== 2011-12-01 ===
 
* 11w48a
 
 
 
=== 2011-11-24 ===
 
* 11w47a
 

Revision as of 21:44, 21 January 2012

This page documents the changes from the last stable Minecraft release (currently 1.1) to the current pre-release (currently 12w03a)

New packets

Unknown (0x23)

Packet ID Field Name Field Type Example Notes
0x23 Unknown int Likely to be Entity ID
Unknown byte Rotation of something...
Total Size: 6 bytes

Changed packets

Mob Spawn (0x18)

New byte field.

Packet ID Field Name Field Type Example Notes
0x18 EID int 446 Entity ID
Type byte 91 The type of mob. See Entities#Mobs
X int 13366 The Absolute Integer X Position of the object
Y int 2176 The Absolute Integer Y Position of the object
Z int 1680 The Absolute Integer Z Position of the object
Yaw byte -27 The X Axis rotation in steps of 2π/256
Pitch byte 0 The Y Axis rotation in steps of 2π/256
Unknown byte Rotation of something...
Metadata Metadata 127 Varies by mob, see Entities
Total Size: 21 bytes + Metadata (at least 1)


Other changes

Protocol version is now 24.

Protocol History

2012-01-19

  • 12w03a
  • Protocol version is now 24
  • New packet: 0x23
  • MobSpawn: new field, 1 byte inserted before metadata.