Protocol History

From wiki.vg
Revision as of 16:12, 25 March 2016 by Pokechu22 (talk | contribs) (→‎15w31a/b/c: Split off into separate versions)
Jump to navigation Jump to search

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.

15w41a

  • Added an unused MC|DebugPath channel

15w34a

  • Renamed MC|AdvCdm to MC|AdvCmd
  • Added MC|AutoCmd

15w32a

  • Protocol Version is now 52

15w31c

  • Protocol Version is now 51
  • Added DragonFireball entity

15w31b

  • Protocol Version is now 50

No other changes

15w31a

  • Protocol Version is now 49

Clientbound

  • Added new Boss Bar Packet
  • Changed SlotId to Enum SlotType in PacketEntityEquipment
  • Removed ItemId of Held Item from PacketSpawnPlayer
  • Added Entity UUID to PacketSpawnObject
  • Added Entity UUID to PacketSpawnMob
  • Removed Update Entity NBT Packet

Serverbound

  • Added Enum HandType in PacketUseEntity
  • Added Enum Action in PacketPlayerDigging
  • Added PacketSwitchHand
  • Changed BlockDirection from int to EnumDirection, Block from ItemStack to Enum HandType in PacketPlayerBlockPlacement
  • Added Enum HandType to PacketAnimation
  • Added Enum MainHandLocation to PacketClientSettings

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