Protocol History
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 1.7.4
- 2 1.7.3
- 3 13w49a
- 4 1.7.2
- 5 1.7.1
- 6 1.7
- 7 13w43a
- 8 13w42b
- 9 13w42a
- 10 13w41b
- 11 13w41a
- 12 13w39a/b
- 13 13w38a/b/c
- 14 1.6.4
- 15 1.6.3
- 16 13w37b
- 17 13w36a
- 18 1.6.x
- 19 1.5.x
- 20 1.4.x
- 21 2012-12-20
- 22 2012-11-14
- 23 2012-10-23
- 24 2012-08-01
- 25 2012-03-22
- 26 2012-03-01
- 27 2012-01-12
- 28 2011-11-13
- 29 2011-11-11
- 30 2011-10-27
- 31 2011-10-13
- 32 2011-9-29
- 33 2011-9-22
- 34 2011-9-14
- 35 2011-9-13
- 36 2011-9-10
- 37 2011-6-30
- 38 2011-5-26
- 39 2011-4-19
- 40 2011-3-31
- 41 2011-2-22
- 42 2011-1-13
- 43 2010-12-20
- 44 2010-12-01
- 45 2010-11-24
- 46 2010-11-10
- 47 2010-10-31
- 48 2010-09-10
- 49 2010-08-20
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
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
- 1.4.6
- Protocol version is now 51
- Changed packet: 0x10 Held Item Change - Packet is now bidirectional
- Changed packet: 0x17 Spawn Object/Vehicle - Added fields Yaw and Pitch
- Changed packet: 0x38 Map Chunk Bulk - Added boolean field
- Removed packet: 0x15 Spawn Dropped Item - Now merged into 0x17 Spawn Object/Vehicle. The Entity Type ID is 0x02. Set the item type by sending 0x28 Entity Metadata with a slot at index 10. Vanilla packet dump
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
- 1.4.1
- Protocol version is now 47
- Entity metadata format updated: type 5 (slot type) now terminates after item_id if it's less than zero.
- Changed packet: 0x04 time update - added 'time of day' field
- Changed packet: 0x15 spawn dropped item - updated to use slot format
- Changed packet: 0x3D particle or sound effect - add new boolean field that forces the sound-effect to play from close range
- (sort of) Changed packet: 0x66 click window - "right click?" field changed from bool to byte
- Changed packet: 0xCC client settings - added boolean "show cape?" field.
- Changed packet: 0xFE server list ping - extra field added; response format slightly expanded to include protocol version.
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
- Added packet: 0x37 Block breaking animation
- Added packet: 0x38 Map Chunk Bulk
- Added packet: 0x3E Name Sound Effect
- Added packet: 0xCB Tab-complete
- Added packet: 0xCC Locale and View Distance
- Added packet: 0xCD Client Statuses used for Login Request and Respawn (1 byte payload)
- Added packet: 0xFC Encryption Key Response
- Added packet: 0xFD Encryption Key Request
- Changed packet: 0x01 Login Request
- Changed packet: 0x02 Handshake
- Changed packet: 0x09 Respawn
- Changed packet: 0x0F Player Block Placement
- Changed packet: 0x14 Spawn named entity
- Changed packet: 0x18 Spawn Mob - added velocity
- Changed packet: 0x1D Destroy Entity
- Changed packet: 0x33 Chunk Data - remove Unused int
- Changed packet: 0x35 Block Change
- Changed packet: 0x36 Block Action
- Changed packet: 0xCA Player Abilities
- Removed packet: 0x32 Map Column Allocation
2012-03-22
- 1.2.4
- Protocol version is now 29
- New packet: 0xCA player abilities
2012-03-01
- 1.2.2
- Protocol version is now 28
- New packet: 0x23 entity head look
- New packet: 0x84 update tile entity
- 0x02 handshake when sent C->S now additionally contains the hostname/port the client is connecting to
- 0x01 login request: map seed (long) parameter removed and dimension changed from byte to int
- 0x09 respawn has the same changes (dimension changed from byte to int and seed removed)
- 0x18 mob spawn has a new byte field: head yaw
- 0x33 map chunks packet was completely changed to use the new 16x16x16 chunk format
- 0x34 multi block change has a new format also
2012-01-12
- 1.1
- Protocol version is now 23
- New packet: 0xFA Plugin message
- 0x01 login request has a new string field: level-type (DEFAULT or SUPERFLAT)
- 0x09 respawn has the same change
- Packet removed: 0x1B stance update (had been unused for some time)
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
and1
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
- Beta 1.8 pre-release.
- Protocol version is now 15
- Packet 0x00 (Keep Alive) changed (added keep-alive id)
- Packet 0x01 (Login) changed (added server mode, height limit, and an unknown field)
- Packet 0x08 (Health) changed (added food bar and food saturation)
- Packet 0x09 (Respawn) changed (added map seed, server mode, height limit)
- Packet 0x13 (Entity Action) has new values for starting/stopping sprinting.
- Packet 0x46 (New/invalid state) changed (added game mode reason, and a game mode byte)
- New packet 0x29 (Entity Effect) added
- New packet 0x2a (Remove Entity Effect) added
- New packet 0x2b (Experience update) added
- New packet 0x6b (Creative item get) added
- New packet 0xc9 (Player list item) added
- New packet 0xfe (Server list ping) added
- New values for 0x13 (Entity Action): start sprinting, stop sprinting
- New value for 0x17 (Add Object/Vehicle): experience orb
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
- Beta 1.3 released.
- New packets 0x11, 0x1B: Some information at https://gist.github.com/841590
- Protocol number is now 9 (updated)
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
- Protocol version changed to 4
- Packet 0x01 (login request) changed
- Packet 0x07 (Use Entity?) added
- Packet 0x1C (Entity Velocity?) added
- Packet 0x27 (Attach Entity?) added
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