Difference between revisions of "Protocol History"

From wiki.vg
Jump to navigation Jump to search
m (→‎15w33c: Match changes on Entities)
(→‎15w36a: Metadata changes)
Line 311: Line 311:
 
* Protocol version 67
 
* Protocol version 67
 
* Nearly all packets had their ID changed in this version
 
* Nearly all packets had their ID changed in this version
 +
* Added a new Metadata type, Block ID (0x12), which is a VarInt: <code>id << 4 | data</code>
 +
* Endermen now use Block ID for their held item, rather than two Metadata ints
  
 
==== Clientbound ====
 
==== Clientbound ====

Revision as of 18:22, 2 April 2016

Provided below is a changelog of the server protocol starting on 2010-08-20. The wiki history feature may also be used to investigate changes.

Contents

1.9.2

  • Protocol version 109
  • Protocol version probably was incremented to force Realms users to update due to a bug that broke Realms.

1.RV-Pre1

  • Another april fools snapshot; changes from it were not kept in the next release.
  • Added several items and blocks
  • Did not change the protocol version, so it is able to connect to 1.9.1 servers.

1.9.1-pre2, 1.9.1-pre3, 1.9.1

  • Protocol version 108
  • Changed dimension in Join Game from a byte enum to an int enum (not VarInt), to the benefit of Minecraft Forge

1.9 and 1.9.1-pre1

  • Protocol version 107

1.9-pre4

  • Protocol version 106

1.9-pre3

  • Protocol version 105

1.9-pre2

  • Protocol version 104

1.9-pre1

  • Protocol version 103

16w07b

  • Protocol version 102

16w07a

  • Protocol version 101

16w06a

  • Protocol version 100
  • Changed fixed-point ints for x, y, and z coordinates to doubles in Spawn Object (0x00), Spawn Experience Orb (0x01), Spawn Global Entity (0x02), Spawn Mob (0x03), Spawn Player (0x05), and Entity Teleport (0x4A).
  • Changed byte-based fixed deltas measured in 32ndths of a block to short-based fixed deltas measured as (currentX * 32 - prevX * 32) * 128 in Entity Relative Move (0x25) and Entity Look And Relative Move (0x26). As such, these packets are used for movements of at max 8 blocks instead of at max 4 blocks.

16w05b

  • Protocol version 99

16w05a

  • Protocol version 98

16w04a

  • Protocol version 97
  • Changed floats in Steer Boat (0x11) to booleans

16w03a

  • Protocol version 96

16w02a

  • Protocol version 95
  • Added a UUID to Spawn Painting (0x04) after entity ID
  • Added VarInt enum category to Named Sound Effect (0x19)
  • Added VarInt enum category to Sound Effect (0x47)

15w51b

  • Protocol version 94

15w51a

  • Protocol version 93

15w50a

  • Protocol version 92

15w49b

  • Protocol version 91

15w49a

  • Protocol version 90

15w47c

  • Protocol version 89

15w47b

  • Protocol version 88

15w47a

  • Protocol version 87

15w46a

  • Protocol version 86

Clientbound

  • Removed Set Compression (0x1E) during play. Its login varient should be used instead.
  • Changed ID of Change Game State from 0x1F to 0x1E
  • Changed ID of Keep Alive from 0x20 to 0x1F
  • Changed ID of Chunk Data from 0x21 to 0x20
  • Changed ID of Effect from 0x22 to 0x21
  • Changed ID of Particle from 0x23 to 0x22
  • Changed ID of Join Game from 0x24 to 0x23
  • Changed ID of Map from 0x25 to 0x24
  • Changed ID of Entity Relative Move from 0x26 to 0x25
  • Changed ID of Entity Look and Relative Move from 0x27 to 0x26
  • Changed ID of Entity Look from 0x28 to 0x27
  • Changed ID of Entity from 0x29 to 0x28
  • Changed ID of Vehicle Move from 0x2A to 0x29
  • Changed ID of Open Sign Editor from 0x2B to 0x2A
  • Changed ID of Player Abilities from 0x2C to 0x2B
  • Changed ID of Combat Event from 0x2D to 0x2C
  • Changed ID of Player List Item from 0x2E to 0x2D
  • Changed ID of Player Position and Look from 0x2F to 0x2E
  • Changed ID of Use Bed from 0x30 to 0x2F
  • Changed ID of Destroy Entities from 0x31 to 0x30
  • Changed ID of Remove Entity Effect from 0x32 to 0x31
  • Changed ID of Resource Pack Send from 0x33 to 0x32
  • Changed ID of Respawn from 0x34 to 0x33
  • Changed ID of Entity Head Look from 0x35 to 0x34
  • Changed ID of World Border from 0x36 to 0x35
  • Changed ID of Camera from 0x37 to 0x36
  • Changed ID of Held Item Change from 0x38 to 0x37
  • Changed ID of Display Scoreboard from 0x39 to 0x38
  • Changed ID of Entity Metadata from 0x3A to 0x39
  • Changed ID of Attach Entity from 0x3B to 0x3A
  • Changed ID of Entity Velocity from 0x3C to 0x3B
  • Changed ID of Entity Equipment from 0x3D to 0x3C
  • Changed ID of Set Experience from 0x3E to 0x3D
  • Changed ID of Update Health from 0x3F to 0x3E
  • Changed ID of Scoreboard Objective from 0x40 to 0x3F
  • Changed ID of Set Passangers from 0x41 to 0x40
  • Changed ID of Teams from 0x42 to 0x41
  • Changed ID of Update Score from 0x43 to 0x42
  • Changed ID of Spawn Position from 0x44 to 0x43
  • Changed ID of Time Update from 0x45 to 0x44
  • Changed ID of Title from 0x46 to 0x45
  • Changed ID of Update Sign from 0x47 to 0x46
  • Changed ID of Sound Effect from 0x48 to 0x47
  • Changed ID of Player List Header and Footer from 0x49 to 0x48
  • Changed ID of Collect Item from 0x4A to 0x49
  • Changed ID of Entity Teleport from 0x4B to 0x4A
  • Changed ID of Entity Properties from 0x4C to 0x4B
  • Changed ID of Entity Effect from 0x4D to 0x4C

15w45a

  • Protocol version 85

15w44b

  • Protocol version 84

15w44a

  • Protocol version 83
  • Click Window (0x07)'s mode field is now a VarInt enum instead of a byte enum

15w43c

  • Protocol version 82

15w43b

  • Protocol version 81

15w43a

  • Protocol version 80

Clientbound

  • Changed ID of Named Sound Effect (previously refered to as Sound Effect) from 0x23 to 0x19
  • Changed ID of Disconnect from 0x19 to 0x1A
  • Changed ID of Entity Status from 0x1A to 0x1B
  • Changed ID of Explosion from 0x1B to 0x1C
  • Changed ID of Unload Chunk from 0x1C to 0x1D
  • Changed ID of Set Compression from 0x1D to 0x1E
  • Changed ID of Set Game State from 0x1E to 0x1F
  • Changed ID of Keep Alive from 0x1F to 0x20
  • Changed ID of Chunk Data from 0x20 to 0x21
  • Changed ID of Effect from 0x21 to 0x22
  • Changed ID of Particle from 0x22 to 0x23
  • Changed ID of Vehicle Move from 0x4C to 0x2A
  • Changed ID of Open Sign Editor from 0x2A to 0x2B
  • Changed ID of Player Abilities from 0x2B to 0x2C
  • Changed ID of Combat Event from 0x2C to 0x2D
  • Changed ID of Player List Item from 0x2D to 0x2E
  • Changed ID of Player Position and Look from 0x2E to 0x2F
  • Changed ID of Use Bed from 0x2F to 0x30
  • Changed ID of Destroy Entities from 0x30 to 0x31
  • Changed ID of Remove Entity Effect from 0x31 to 0x32
  • Changed ID of Resource Pack Send from 0x32 to 0x33
  • Changed ID of Respawn from 0x33 to 0x34
  • Changed ID of Entity Head Look from 0x34 to 0x35
  • Changed ID of World Border from 0x35 to 0x36
  • Changed ID of Camera from 0x36 to 0x37
  • Changed ID of Held Item Change from 0x37 to 0x38
  • Changed ID of Display Scoreboard from 0x38 to 0x39
  • Changed ID of Entity Metadata from 0x39 to 0x3A
  • Changed ID of Set Passangers from 0x3A to 0x41
  • Changed ID of Teams from 0x41 to 0x42
  • Changed ID of Update Score from 0x42 to 0x43
  • Changed ID of Spawn Position from 0x43 to 0x44
  • Changed ID of Time Update from 0x44 to 0x45
  • Changed ID of Title from 0x45 to 0x46
  • Changed ID of Update Sign from 0x46 to 0x47
  • Added Sound Event (numeric ID) with ID 0x48. Structure is VarInt for the ID; x, y, and z as ints; volume as float; and pitch as a byte.
  • Changed ID of Player List Header and Footer from 0x47 to 0x49
  • Changed ID of Collect Item from 0x48 to 0x4A
  • Changed ID of Entity Teleport from 0x49 to 0x4B
  • Changed ID of Entity Properties from 0x4A to 0x4C
  • Changed ID of Entity Effect from 0x4B to 0x4D

Serverbound

  • Changed ID of Teleport Confirm from 0x1D to 0x00
  • Changed ID of Tab Complete from 0x00 to 0x01
  • Changed ID of Chat Message from 0x01 to 0x02
  • Changed ID of Client Status from 0x02 to 0x03
  • Changed ID of Client Settings from 0x03 to 0x04
  • Changed ID of Confirm Transaction from 0x04 to 0x05
  • Changed ID of Enchant Item from 0x05 to 0x06
  • Changed ID of Click Window from 0x06 to 0x07
  • Changed ID of Close Window from 0x07 to 0x08
  • Changed ID of Plugin Message from 0x08 to 0x09
  • Changed ID of Use Entity from 0x09 to 0x0A
  • Changed ID of Keep Alive from 0x0A to 0x0B
  • Changed ID of Vehicle Move from 0x0B to 0x10
  • Changed ID of Steer Boat from 0x1C to 0x11
  • Changed ID of Player Abilities from 0x10 to 0x12
  • Changed ID of Player Digging from 0x11 to 0x13
  • Changed ID of Entity Action from 0x12 to 0x14
  • Changed ID of Steer Vehicle from 0x13 to 0x15
  • Changed ID of Resource Pack Status from 0x14 to 0x16
  • Changed ID of Held Item Change from 0x15 to 0x17
  • Changed ID of Creative Inventory Action from 0x16 to 0x18
  • Changed ID of Update Sign from 0x17 to 0x19
  • Changed ID of Animation from 0x18 to 0x1A
  • Changed ID of Spectate from 0x19 to 0x1B
  • Changed ID of Player Block Placement from 0x1A to 0x1C
  • Changed ID of Use Item from 0x1B to 0x1D

15w42a

  • Protocol version 79
  • Added Teleport ID VarInt field to Player Position and Look (0x2E - clientbound)
  • Added Teleport Confirm (0x1D - serverbound) packet, with a single VarInt for the teleport ID

15w41b

  • Protocol version 78

15w41a

  • Protocol version 77
  • Added an unused MC|DebugPath channel

Clientbound

  • Added Set Passengers (0x3A)
  • Changed ID of Attach Entity from 0x3A to 0x3B
  • Removed "Leash" boolean from Attach Entity - Attach entity is now used only for leashing and Set Passengers is used in all other cases.
  • Changed ID of Entity Velocity from 0x3B to 0x3C
  • Changed ID of Entity Equipment from 0x3C to 0x3D
  • Changed ID of Set Experience from 0x3D to 0x3E
  • Changed ID of Update Health from 0x3E to 0x3F
  • Changed ID of Scoreboard Objectives from 0x3F to 0x40
  • Changed ID of Teams from 0x40 to 0x41
  • Changed ID of Update Score from 0x41 to 0x42
  • Changed ID of Spawn Position from 0x42 to 0x43
  • Changed ID of Time Update from 0x43 to 0x44
  • Changed ID of Title from 0x44 to 0x45
  • Changed ID of Update Sign from 0x45 to 0x46
  • Changed ID of Player List header and footer from 0x46 to 0x47
  • Changed ID of Collect Item from 0x47 to 0x48
  • Changed ID of Entity Teleport from 0x48 to 0x49
  • Changed ID of Entity Properties from 0x49 to 0x4A
  • Changed ID of Entity Effect from 0x4A to 0x4B

Serverbound

  • Added Vehicle Move (0x0B). Its structure is 3 doubles (coordinates) and then 2 floats (yaw and pitch).
  • Changed ID of Player Position from 0x0B to 0x0C
  • Changed ID of Player Position and Look from 0x0C to 0x0D
  • Changed ID of Player Look from 0x0D to 0x0E
  • Changed ID of Player from 0x0E to 0x0F
  • Changed ID of Player Abilities from 0x0F to 0x10
  • Changed ID of Player Digging from 0x10 to 0x11
  • Changed ID of Entity Action from 0x11 to 0x12
  • Changed ID of Steer Vehicle from 0x12 to 0x13
  • Changed ID of Resource Pack Status from 0x13 to 0x14
  • Changed ID of Held Item Change from 0x14 to 0x15
  • Changed ID of Creative Inventory Action from 0x15 to 0x16
  • Changed ID of Update Sign from 0x16 to 0x17
  • Changed ID of Animation from 0x17 to 0x18
  • Changed ID of Spectate from 0x18 to 0x19
  • Changed ID of Player Block Placement from 0x19 to 0x1A
  • Changed ID of Use Item from 0x1A to 0x1B
  • Added Steer Boat packet (0x1C), with 2 floats as a payload.

15w40b

  • Protocol version 76

15w40a

  • Protocol version 75

15w39a/b/c

  • Protocol version 74
  • Changed the hitboxes of several entities

15w38b

  • Protocol version 73

15w38a

  • Protocol version 72

15w37a

  • Protocol version 71

15w36d

  • Protocol version 70
  • Changed Primary Bit Mask in Chunk Data (0x20) from an Int to a VarInt (was an unsigned short in 1.8)

15w36c

  • Protocol version 69

15w36b

  • Protocol version 68

15w36a

  • Protocol version 67
  • Nearly all packets had their ID changed in this version
  • Added a new Metadata type, Block ID (0x12), which is a VarInt: id << 4 | data
  • Endermen now use Block ID for their held item, rather than two Metadata ints

Clientbound

  • Changed ID of Keep Alive from 0x00 to 0x1F
  • Changed ID of Join Game from 0x01 to 0x24
  • Changed ID of Chat Message from 0x02 to 0x0F
  • Changed ID of Time Update from 0x03 to 0x43
  • Changed ID of Entity Equipment from 0x04 to 0x3C
  • Changed ID of Spawn Position from 0x05 to 0x42
  • Changed ID of Update Health from 0x06 to 0x3E
  • Changed ID of Respawn from 0x07 to 0x33
  • Changed ID of Player Position And Look from 0x08 to 0x2E
  • Changed ID of Held Item Change from 0x09 to 0x37
  • Changed ID of Use Bed from 0x0A to 0x2F
  • Changed ID of Animation from 0x0B to 0x06
  • Changed ID of Spawn Player from 0x0C to 0x05
  • Changed ID of Collect Item from 0x0D to 0x47
  • Changed ID of Spawn Mob from 0x0F to 0x03
  • Changed ID of Spawn Painting from 0x10 to 0x04
  • Changed ID of Spawn Experience Orb from 0x11 to 0x01
  • Changed ID of Entity Velocity from 0x12 to 0x3B
  • Changed ID of Destroy Entities from 0x13 to 0x30
  • Changed ID of Entity from 0x14 to 0x29
  • Changed ID of Entity Relative Move from 0x15 to 0x26
  • Changed ID of Entity Look from 0x16 to 0x28
  • Changed ID of Entity Look And Relative Move from 0x17 to 0x27
  • Changed ID of Entity Teleport from 0x18 to 0x48
  • Changed ID of Entity Head Look from 0x19 to 0x34
  • Changed ID of Attach Entity from 0x1B to 0x3A
  • Changed ID of Entity Metadata from 0x1C to 0x39
  • Changed ID of Entity Effect from 0x1D to 0x4A
  • Changed ID of Remove Entity Effect from 0x1E to 0x31
  • Changed ID of Set Experience from 0x1F to 0x3D
  • Changed ID of Entity Properties from 0x20 to 0x49
  • Changed ID of Chunk Data from 0x21 to 0x20
  • Changed ID of Unload Chunk from 0x22 to 0x1C
  • Changed ID of Multi Block Change from 0x23 to 0x10
  • Changed ID of Block Change from 0x24 to 0x0B
  • Changed ID of Block Action from 0x25 to 0x0A
  • Changed ID of Block Break Animation from 0x26 to 0x08
  • Changed ID of Explosion from 0x27 to 0x1B
  • Changed ID of Effect from 0x28 to 0x21
  • Changed ID of Sound Effect from 0x29 to 0x23
  • Changed ID of Particle from 0x2A to 0x22
  • Changed ID of Change Game State from 0x2B to 0x1E
  • Changed ID of Spawn Global Entity from 0x2C to 0x02
  • Changed ID of Open Window from 0x2D to 0x13
  • Changed ID of Close Window from 0x2E to 0x12
  • Changed ID of Set Slot from 0x2F to 0x16
  • Changed ID of Window Items from 0x30 to 0x14
  • Changed ID of Window Property from 0x31 to 0x15
  • Changed ID of Confirm Transaction from 0x32 to 0x11
  • Changed ID of Update Sign from 0x33 to 0x45
  • Changed ID of Map from 0x34 to 0x25
  • Changed ID of Update Block Entity from 0x35 to 0x09
  • Changed ID of Open Sign Editor from 0x36 to 0x2A
  • Changed ID of Statistics from 0x37 to 0x07
  • Changed ID of Player List Item from 0x38 to 0x2D
  • Changed ID of Player Abilities from 0x39 to 0x2B
  • Changed ID of Tab-Complete from 0x3A to 0x0E
  • Changed ID of Scoreboard Objective from 0x3B to 0x3F
  • Changed ID of Update Score from 0x3C to 0x41
  • Changed ID of Display Scoreboard from 0x3D to 0x38
  • Changed ID of Teams from 0x3E to 0x40
  • Changed ID of Plugin Message from 0x3F to 0x18
  • Changed ID of Disconnect from 0x40 to 0x19
  • Changed ID of Server Difficulty from 0x41 to 0x0D
  • Changed ID of Combat Event from 0x42 to 0x2C
  • Changed ID of Camera from 0x43 to 0x36
  • Changed ID of World Border from 0x44 to 0x35
  • Changed ID of Title from 0x45 to 0x44
  • Changed ID of Set Compression from 0x46 to 0x1D
  • Changed ID of Player List Header And Footer from 0x47 to 0x46
  • Changed ID of Resource Pack Send from 0x48 to 0x32
  • Changed ID of Boss Bar from 0x49 to 0x0C
  • Changed ID of Set Cooldown from 0x0A to 0x17

Serverbound

  • Changed ID of Keep Alive from 0x00 to 0x0A
  • Changed ID of Use Entity from 0x02 to 0x09
  • Changed ID of Player from 0x03 to 0x0E
  • Changed ID of Player Position from 0x04 to 0x0B
  • Changed ID of Player Look from 0x05 to 0x0D
  • Changed ID of Player Position And Look from 0x06 to 0x0C
  • Changed ID of Player Digging from 0x07 to 0x10
  • Changed ID of Use Item from 0x08 to 0x1A
  • Changed ID of Player Block Placement from 0x09 to 0x19
  • Changed ID of Held Item Change from 0x0A to 0x14
  • Changed ID of Animation from 0x0B to 0x17
  • Changed ID of Entity Action from 0x0C to 0x11
  • Changed ID of Steer Vehicle from 0x0D to 0x12
  • Changed ID of Close Window from 0x0E to 0x07
  • Changed ID of Click Window from 0x0F to 0x06
  • Changed ID of Confirm Transaction from 0x10 to 0x04
  • Changed ID of Creative Inventory Action from 0x11 to 0x15
  • Changed ID of Enchant Item from 0x12 to 0x05
  • Changed ID of Update Sign from 0x13 to 0x16
  • Changed ID of Player Abilities from 0x14 to 0x0F
  • Changed ID of Tab-Complete from 0x15 to 0x00
  • Changed ID of Client Settings from 0x16 to 0x03
  • Changed ID of Client Status from 0x17 to 0x02
  • Changed ID of Plugin Message from 0x18 to 0x08
  • Changed ID of Resource Pack Status from 0x19 to 0x13

15w35e

  • Protocol version 66

15w35d

  • Protocol version 65

15w35c

  • Protocol version 64

15w35b

  • Protocol version 63

15w35a

  • Protocol version 62
  • Added Unload Chunk packet (0x22), with two ints for the chunk x and z coordinates.
  • Changed ID of multi-block change from 0x22 to 0x23
  • Changed ID of block change from 0x23 to 0x24
  • Changed ID of block action from 0x24 to 0x25
  • Changed ID of block break animation from 0x25 to 0x26
  • Removed Map Chunk Bulk (0x26)
  • Changed Update Sign (0x13 - serverbound) from being 4 chat components to 4 Strings. The serverbound packet still uses chat components.

15w34d

  • Protocol version 61

15w34c

  • Protocol version 60
  • Changed primary bit mask in Chunk Data (0x21) from a short to an Int
  • Significantly reworked Map Chunk Bulk (0x26)
  • Added Set Cooldown (0x4A)

15w34b

  • Protocol version 59
  • Added assume command boolean to Tab Complete (0x15), before the existing "has position" boolean.

15w34a

  • Protocol version 58
  • Added tracking position boolean to Map (0x34)

15w33c

  • Protocol version 57
  • Changed entity metadata format from a single byte for both type and index to several bytes:
    Name Type Meaning
    Index Unsigned Byte Unique index key determining the meaning of the following value, see the table below. If this is 0xff then the it is the end of the Entity Metadata array and no more is read.
    Type Optional Byte Enum Only if Index is not 0xff; the type of the index, see the table below
    Value Optional value of Type Only if Index is not 0xff: the value of the metadata field
  • Remapped metadata types. These types match the final version except that BlockID is missing.
    Value of Type field Type of Value field Notes
    0 Byte
    1 VarInt
    2 Float
    3 String
    4 Chat
    5 Slot
    6 Boolean
    7 Rotation 3 floats: rotation on x, rotation on y, rotation on z
    8 Position
    9 OptPosition (Boolean + Optional Position) Position is present if the Boolean is set to true
    10 Direction (VarInt) ???
    11 OptUUID (Boolean + Optional UUID) UUID is present if the Boolean is set to true

15w33b

  • Protocol version 56

15w33a

  • Protocol version 55

15w32c

  • Protocol version 54

15w32b

  • Protocol version 53

15w32a

  • Protocol version 52

15w31c

  • Protocol Version is now 51
  • Added DragonFireball entity

15w31b

  • Protocol Version is now 50

15w31a

  • Protocol Version is now 49

Clientbound

  • Changed Slot Id from a short to a VarInt enum in Entity Equipment (0x04)
  • Removed Current Item short from Spawn Player (0x0C)
  • Added Entity UUID after entity ID to Spawn Object (0x0E)
  • Spawn Object always sends velocity, even if data is 0
  • Added Entity UUID after entity ID to Spawn Mob (0x0F)
  • Removed Update Entity NBT Packet (0x49)
  • Added Boss Bar packet (0x49)

Serverbound

  • Added VarInt enum for selected hand in Use Entity (0x02); only sent if type is interact or interact at
  • Added swap item in hand (6) as a status for Player Digging (0x07)
  • Added Use Item (0x08) packet with a VarInt enum for the selected hand
  • Changed ID of Player Block Placement from 0x08 to 0x09
  • Face for Player Block Placement is now a VarInt enum instead of a byte
  • Replaced held item (slot) with VarInt enum selected hand in Player Block Placement
  • Changed ID of Held Item Change from 0x09 to 0x0A
  • Changed ID of Animation from 0x0A to 0x0B
  • Added VarInt Enum selected hand to Animation
  • Changed ID of Entity Action from 0x0B to 0x0C
  • Removed Open inventory (6) from valid values for Entity Action's Action enum
  • Changed ID of Steer Vehicle from 0x0C to 0x0D
  • Changed ID of Close Window from 0x0D to 0x0E
  • Changed ID of Click Window from 0x0E to 0x0F
  • Changed ID of Confirm Transaction from 0x0F to 0x10
  • Changed ID of Creative Inventory Action from 0x10 to 0x11
  • Changed ID of Enchant Item from 0x11 to 0x12
  • Changed ID of Update Sign from 0x12 to 0x13
  • Changed ID of Player Abilities from 0x13 to 0x14
  • Changed ID of Tab Complete from 0x14 to 0x15
  • Changed ID of Client Settings from 0x15 to 0x16
  • Added VarInt enum main hand to Client Settings
  • Changed ID of Client Status from 0x16 to 0x17
  • Client Status is now used to signify that the client has opened its inventory, rather than to just award the "Taking Inventory" achievement
  • Changed ID of Plugin Message from 0x17 to 0x18
  • Changed ID of Spectate from 0x18 to 0x19
  • Changed ID of Resource Pack Status from 0x19 to 0x1A

15w14a

Note: 15w14a was a joke snapshot, and its changes were not moved into the following snapshots

  • Protocol version 48
  • Added a new packet with ID 0x4A, that has a single VarInt as its payload. Use unknown.

1.8

1.8-pre3

1.8-pre2

1.8-pre1

  • New metadata type, 7 (Rotation), 12 bytes (3 floats, Pitch, Yaw, and Roll), used on armor stand

14w34a/b/c/d

14w33a/b/c

  • Added new fields to Tab-Complete (Serverbound)

14w32a/b/c/d

  • Added new Update Entity NBT packet
  • Added three new fields to Use Entity

14w31a

  • The length prefix on the payload of Plugin Message has been removed (Both ways)
  • Added new Resource Pack Send packet
  • Added new Resource Pack Status packet
  • Added VarLong data type
  • Changed a few fields in World Border to VarLong
  • Changed the type of Keep Alive ID from Int to VarInt (Clientbound)

14w30c

14w30a/b

14w29a

  • Fix the length prefix of Plugin Message so that its a Varint instead of an unsigned short
  • Added "Reduced Debug Info" boolean to Join Game
  • Added "Long Distance" boolean to Particle

14w28b

  • Uncompressed NBT
  • Added Display name fields to Player List Item
  • New 'Player List Header/Footer' packet

14w28a

  • Changed Chunk packets to remove compression
  • Added packets to toggle compression/set threshold
  • Allowed compression for the whole protocol
  • Changed the Maps packet

14w27a/b

14w26c

  • Changed Multi Block Change to using packed block ids
  • Changed Block Change to using packed block ids

14w26b

  • Bug fix

14w26a

  • Changed chunk sending

14w25b

  • Added boolean field to all entity movement packets

14w25a

  • Update Sign now uses Chat

14w21a

  • All byte arrays have VarInt length prefixes instead of short
  • Spawn Player changes
  • Player list item changes

14w20a

  • Added new packet 'Title'

14w19a

  • Changed the Particle's 'Particle Name' to an int
  • Added a new field to Particle
  • Rewrote Player List Item
  • Added SET_WARNING_TIME and SET_WARNING_BLOCKS to World Border
  • Added new serverbound packet Spectate

14w18b

  • Bugfix

14w18a

  • Added 'INITIALIZE' action to World Border

14w17a

  • Increased the max payload size of 'Plugin Message' from 32767 to 1048576 (Broken because of incorrect data type)
  • Added new packet 'World Border'

14w11a

  • UUIDs now include the '-'s

14w08a

  • Added new field 'Type' to Scoreboard Objective

14w07a

  • Added two new fields to Teams

14w06a

Clientbound

  • Added new field 'Hide Particles' to Entity Effect

Serverbound

  • Removed 'HeadY' from Player Position
  • Removed 'HeadY' from Player Position And Look

14w05a

Clientbound

  • New packet 'Camera'

14w04b

  • Spawn Painting now uses the 'Position' data type
  • Changed Spawn Painting's Direction type to Unsigned Byte

14w04a

  • Encoding for 'Position' changed

Clientbound

  • Changed Entity Equipment's EntityId type to VarInt
  • Changed Update Health's Food type to VarInt
  • Changed Use Bed's EntityId type to VarInt
  • Added new fields to Spawn Player
  • Changed Collect Item's EntityId(s) types to VarInt
  • Changed Entity Velocity's EntityId type to VarInt
  • Changed Destroy Entities' Length type to VarInt
  • Changed Destroy Entities' EntityIds type to VarInt array
  • Changed Entity's EntityId type to VarInt
  • Changed Entity Relative Move's EntityId type to VarInt
  • Changed Entity Look's EntityId type to VarInt
  • Changed Entity Look and Relative Move's EntityId type to VarInt
  • Changed Entity Teleport's EntityId type to VarInt
  • Changed Entity Head Look's EntityId type to VarInt
  • Changed Entity Metadata's EntityId type to Varint
  • Changed Entity Effect's EntityId type to VarInt
  • Changed Entity Effect's Duration type to VarInt
  • Changed Remove Entity Effect's EntityId type to VarInt
  • Changed Set Experience's Level type to VarInt
  • Changed Set Experience's Total Experience type to VarInt
  • Changed Entity Properties's EntityId type to VarInt
  • Changed Entity Properties's List Length type to VarInt
  • Changed Player List Item's Ping type to VarInt
  • Changed Update Score's Value type to VarInt
  • Changed Teams' Player count type to VarInt
  • New packet 'Combat Event'

Serverbound

  • Changed Keep Alive's Keep Alive ID type to VarInt
  • Changed Use Entity's Target type to VarInt
  • Changed Use Entity's Mouse type to Unsigned Byte
  • Removed everything from Animation
  • Changed Entity Action's EntityId type to VarInt
  • Changed Entity Action's Action ID type to Unsigned Byte
  • Changed Entity Action's Values
  • Changed Entity Action's Jump Boast type to VarInt
  • Merged Steer Vehicle's Jump and Unmount into a Bit Field
  • Changed Client Status's Action ID type to Unsigned Byte

14w03a

  • New data type 'Position'

Clientbound

  • Spawn Position now uses the 'Position' data type
  • Use Bed now uses the 'Position' data type
  • Block Change now uses the 'Position' data type
  • Block Action now uses the 'Position' data type
  • Block Break Animation now uses the 'Position' data type
  • Effect now uses the 'Position' data type
  • Sign Update now uses the 'Position' data type
  • Update Block Entity now uses the 'Position' data type
  • Sign Editor Open nows uses the 'Position' data type

Serverbound

  • Player Digging now uses the 'Position' data type
  • Player Block Placement now uses the 'Position' data type
  • Update Sign now uses the 'Position' data type
  • Client Settings 'show cape' type changed from boolean to unsigned byte

14w02a

  • Added 'Position' to Chat Message Clientbound
  • Remove Player Position And Look's 'OnGround' clientbound
  • Added 'Flags' to Player Position And Look clientbound
  • Changed Open Inventory's 'Inventory Type' type from byte to string
  • Added Server Difficulty
  • Removed Client Settings' 'Difficulty'

1.7.6

  • UUIDs now include the '-'s
  • Added new fields to Spawn Player

1.7.5

1.7.4

1.7.3

13w49a

  • Changed Set Slot's Window ID type to byte

1.7.2

  • Changed Multi Block Change's 'X' and 'Z' type to Int

1.7.1

1.7

13w43a

13w42b

13w42a

  • Added 'Level Type' to Join Game
  • Added 'Level Type' to Respawn
  • Removed Sound Effect's 'Sound Category'

13w41b

Warning.png Note this isn't backwards compatible with 13w41a due to Handshakes's Server Port type change

  • Removed Player (Clientbound), Player Position (Clientbound), Player Look (Clientbound)
  • Removed Player Position and Look (Clientbound)'s 'Stance'
  • Removed Join Game's 'N/A' and 'Level Type'
  • Changed Join Game's 'Gamemode' 'Difficulty' 'Max Players' types to Unsigned Byte
  • Changed Handshake's 'Server Port' type to Unsigned Short
  • Removed Respawn's 'World Height' 'Level Type'
  • Changed Respawn's 'Difficulty' and 'Gamemode' types to Unsigned Byte
  • Changed Held Item Change's 'Slot' type to Byte
  • Removed Use Bed's 'unknown byte'
  • Changed Animation's 'Animation' type to Unsigned Byte
  • Changed Animation's 'Entity ID' type to VarInt
  • Changed Spawn Player's 'Entity ID' type to VarInt
  • Changed Spawn Object's 'Entity ID' type to VarInt
  • Changed Spawn Mob's 'Entity ID' type to VarInt
  • Changed Spawn Painting's 'Entity ID' type to VarInt
  • Changed Spawn Experience Orb's 'Entity ID' type to VarInt
  • Changed Multi Block Change's 'Chunk X' and 'Chunk Z' types to VarInt
  • Changed Block Change's 'Block Type' type to VarInt
  • Changed Block Action's 'Block Type' type to VarInt
  • Changed Block Break Animation's 'Entity ID' type to VarInt
  • Changed Explosion's 'X' 'Y' and 'Z' types to Float
  • Changed Change Game State's 'Reason' type to Unsigned Byte
  • Changed Spawn Global Entity's 'Entity ID' type to VarInt
  • Changed Close Window's 'Window ID' type to Unsigned Byte
  • Changed Set Slot's 'Window ID' type to Unsigned Byte
  • Changed Window Items's 'Window ID' type to Unsigned Byte
  • Changed Window Property's 'Window ID' type to Unsigned Byte
  • Changed Comfirm Transaction's 'Window ID' type to Unsigned Byte
  • Changed Maps' 'Item Damage' type to VarInt
  • Removed Maps' 'Item Type'
  • Changed Update Block Entity's 'Action' type to Unsigned Byte
  • Block Editor Open -> Sign Editor Open
  • Removed Sign Editor Open's 'Tile Entity Id'
  • Changed Statistics's 'Count' and 'Amount' types to VarInt
  • Changed Tab-Complete from \x00 String to Array of Strings

13w41a

  • Large protocol rework

13w39a/b

  • UUIDs added to spawn named entity
  • Game state 'gamemode' byte -> float

13w38a/b/c

1.6.4

1.6.3

  • Terrain fixes to help moving to 1.7, no packet changes from 1.6.2

13w37b

13w36a

  • Added sound category byte to 0x3E
  • Changed 0xC8 to a string:int map

1.6.x

1.6.1: Protocol version is now 73. Packet 0xFA is sent after packet 0xFE with additional data

1.6: Protocol version is now 72. Changed Open Window packet, added two inventory types

1.5.x

13w25a: Protocol version is now 71. Changed packet: Increment Statistic (0xC8)

13w24b: Protocol version is now 70

13w24a: Protocol version is now 69. Changed functionality: Time Update (0x04)

13w23b: Protocol version is now 68.

13w22a: Protocol version is now 67. New packet: Entity Properties (0x2C); Changed packets: Chat Message (0x03)

13w18b: Protocol version is now 65.

13w16b: Protocol version is now 63. New packet: Steer Vehicle (0x1B)

13w16a: Protocol version is now 62. Changed packets: Update Health (0x08), Entity Action (0x17), Attach Entity (0x27), Player Abilities (0xCA)

13w09c: Protocol version is now 60.

13w09b: Protocol version is now 59.

13w09c: Protocol version is now 60.

13w09b: Protocol version is now 59.

13w06a: Protocol version is now 57 58 (Changed after bug fix, version is still 13w06a).

13w05b: Protocol version is now 57.

13w05a: Protocol version is now 56. New packets for teams.

13w04a: Protocol version is now 55. New packets for scoreboards.

13w03a: Protocol version is now 54.

13w02a: Protocol version is now 53. All Minecart entities use object type 10, and send the block within seperately. Minecarts now send their type as object data in 0x17.

13w01a: Protocol version is now 52. Added boolean to 0x64 (Open Window) to determine whether or not to use the provided window title.

1.4.x

  • 13w06a: Protocol version is now 58.
  • 13w05b: Protocol version is now 57.
  • 13w05a: Protocol version is now 56. New packets for teams: 0xD1
  • 13w04a: Protocol version is now 55. New packets for scoreboards: 0xCE, 0xCF, 0xD0
  • 13w03a: Protocol version is now 54.
  • 13w02a: Protocol version is now 53. All Minecart entities use object type 10, and send the block within seperately. Minecarts now send their type as object data in 0x17.
  • 13w01a: Protocol version is now 52. Added boolean to 0x64 (Open Window) to determine whether or not to use the provided window title.

2012-12-20

2012-11-14

  • 1.4.4
  • Protocol version is now 49
  • Packet 0x83 has a short (changed from a unsigned byte) header before the byte array
  • Item metadata (5) has an NBT field at the end. As usual if the short is < 0, no data is sent

2012-10-23

2012-08-01

  • 1.3.1
  • Protocol version is now 39
  • Fishing floats, spawned by a 0x17 packet do now use the extra fields
  • All items (except the empty hand) now send enchantment data
  • Removed packet: 0x32 Map Column Allocation

2012-03-22

2012-03-01

2012-01-12

2011-11-13

  • 1.0rc2
  • Protocol version is not changed
  • Client gives invalid server key when authentication hash is 8 bytes and the first byte is > 0x80
  • Bow has extra metadata as slot item.

2011-11-11

  • Beta 1.9 pre6.
  • Protocol version is now 22
  • NewState: Reason 4 = Enter scrolling text mode after slaying the dragon.
  • New entity: EnderCrystal (Spawned using the Add Object/Vehicle (0x17) packet with type 51)

2011-10-27

  • Beta 1.9 pre5.
  • Protocol version is now 21
  • Packet 0x6B (Create Inventory) changed: uses Slot datatype.

2011-10-13

  • Beta 1.9 pre4.
  • Protocol version is now 20
  • Packet 0x2B (Experience) changed: now (float, short, short)
  • New packet 0x6C (Enchant item) added: (byte, byte)
  • Flint and steel no longer enchantable (see 1.9pre3 changes). Might be others, too.
  • Notchian server now features an RCON server (server class: o.java)
  • Notchian server now features "G4S" server [1]

2011-9-29

  • Beta 1.9 pre2.
  • Protocol version is now 19
  • Four packets changed:
  • The change affects the "slot" datatype. This type consists of at least a short (item_id). If this id isn't -1, a byte (count) and a short (uses) follow.
  • From 1.9pre2 onward, additional data is sent but only for certain item_ids. This means the protocol is no longer context free. The additional data is at least a short. If this short isn't -1, a byte[] array follows, containing gzipped NBT data
  • The format of the NBT is as follows

 COMPOUND
   LIST: 'ench'
     SHORT: 'id'
     SHORT: 'lvl'
   END
 END

  • So far only this format, with 'id' and 'lvl' set to 2 and 1 respectively, has been seen.

2011-9-22

  • Beta 1.9 pre1.
  • Protocol version is now 18

2011-9-14

  • Beta 1.8 release.
  • Protocol version is now 17

2011-9-13

  • Beta 1.8 pre2-release.
  • Protocol version is now 16
  • Packet 0x01 (Login) changed (added byte, world height now unsigned)
  • Packet 0x09 (Respawn) changed (added byte)
  • Packet 0x64 (Open Window) changed (Window title changed from string8 to string16)
  • New packet 0x1a (Experience Orb) added
  • Assumedly 0x17 (Add Object/Vehicle) is no longer used for exp orbs.

2011-9-10


2011-6-30

  • Beta 1.7 released.
  • Protocol version number is now 14
  • No new packets
  • Packet 0x36 (Block Action) is now used for pistons too.

2011-5-26

  • Beta 1.6 released.
  • Protocol increase by 2: 13
  • Packet 0x09 (Respawn) changed (added world byte)
  • Packet 0x17 (Add Object) changed.
  • Packet 0x3d (Sound effect) added
  • Packet 0x83 (Map Data) added

2011-4-19

  • Beta 1.5 released.
  • Some packet info at https://gist.github.com/929803
  • Packet 0x01 (Login Request) changed (removed second string)
  • Packet 0x66 (Window Click) changed (added bool for shift)
  • Added two new packets: 0x47 (Thunderbolt) and 0xC8 (Increment Statistic) (classes eq and nj, respectively)
  • Protocol version number is now 11
  • All of the strings are now UCS-2, except for Open window (0x64), which is still UTF-8

2011-3-31

  • Beta 1.4 released.
  • New packet 0x46.
  • Protocol version number is now 10
  • TODO: The protocol itself does not seem to have changed much, but what about possible data values and stuff like that?

2011-2-22

2011-1-13

  • Beta 1.2 released.
  • More packet changes (pastebin): 0x05, 0x0F, 0x13, 0x15, 0x18, 0x19, 0x28, 0x36, 0x66, 0x67.

2010-12-20

  • Notch released Beta on time! Amazing! Refactored the page to be slightly smaller and easier to navigate.
  • A whole host of packet changes. 0x05, 0x08, 0x10, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, and 0x82. Packets 0x11 and 0x3b removed.

2010-12-01

  • Protocol version changed to 6
  • Packet 0x12 (Animation) got a lot more new values
  • Packet 0x26 changed, now indicates entity damage, death and explosion (for creepers, TNT not tested)
  • Packet 0x3B now being sent from client
  • Packet 0x3C added
  • (need info on other changes)

2010-11-24

  • Protocol version changed to 5
  • Packet 0x07 (Use Entity) got a new field (byte)
  • Packet 0x08 (Update Health) added
  • Packet 0x09 (Respawn) added
  • Packet 0x12 (Animation) started getting non-boolean values for the Animation field
  • Packet 0x26 (Entity Death) added

2010-11-10

2010-10-31

  • Protocol version changed to 3
  • Packet 0x01 (login request) changed

2010-09-10

  • Protocol version changed to 2
  • Packets 0x05, 0x06, 0x3B added
  • Server-side inventory (no verification)
  • Vanilla adds experimental monsters (only damaged by fire)

2010-08-20

  • Protocol version reset from 14 to 1
  • Packet 0x04 (time update) added