Difference between revisions of "Pre-release protocol"

From wiki.vg
Jump to navigation Jump to search
(20w17a. There are probably more changes, but burger is having issues.)
(Updated to 1.21-pre2)
 
(273 intermediate revisions by 33 users not shown)
Line 1: Line 1:
This page documents the changes from the [[Protocol|last stable Minecraft release]] (currently [[Protocol version numbers|1.15.2, protocol 578]]) to the current pre-release (currently [[Protocol version numbers|20w17a, protocol 713]]). Note that this page contains bleeding-edge information that may not be completely or correctly documented.
+
This page documents the changes from the [[Protocol|last stable Minecraft release]] (currently [[Protocol version numbers|1.20.6, protocol 766]]) to the current pre-release (currently [[Protocol version numbers|1.21-pre2, protocol {{Snapshot PVN|1073742024}}]]). Note that this page contains bleeding-edge information that may not be completely or correctly documented.
  
 
One who wishes to commandeer the merging of this into [[Protocol]] when an update is made must be sure to respect any changes that may have occurred to the respective packets there.
 
One who wishes to commandeer the merging of this into [[Protocol]] when an update is made must be sure to respect any changes that may have occurred to the respective packets there.
Line 9: Line 9:
 
=== Data types ===
 
=== Data types ===
  
The UUID type is now also sometimes encoded by the Notchian server as an array of four 32-bit integers, from most significant to least significant (matching the new format used on entity NBT).  This representation is identical to using 16 bytes, two 64-bit integers, or one 128-bit integers.
+
No changes documented so far.
  
 
=== Packets ===
 
=== Packets ===
Line 18: Line 18:
 
  !colspan="2"| Documentation
 
  !colspan="2"| Documentation
 
  |-
 
  |-
!colspan="4"| Handshaking serverbound
+
!colspan="4"| Configuration clientbound
{{PacketList|0x00|Handshake}}
+
{{PacketList|0x0F|Clientbound Report Details (configuration)|rel=added}}
 +
{{PacketList|0x10|Clientbound Server Links (configuration)|rel=added}}
 
  |-
 
  |-
!colspan="4"| Play clientbound
+
!colspan="4"| Play clientbound
{{PacketList|{{Change|0x4E|0x43}}|Spawn Position|pre=unchanged}}
+
{{PacketList|0x7A|Clientbound Report Details (play)|rel=added}}
{{PacketList|{{Change|0x43|0x44}}|Display Scoreboard|pre=unchanged}}
+
{{PacketList|0x7B|Clientbound Server Links (play)|rel=added}}
{{PacketList|{{Change|0x44|0x45}}|Entity Metadata|pre=unchanged}}
 
{{PacketList|{{Change|0x45|0x46}}|Attach Entity|pre=unchanged}}
 
{{PacketList|{{Change|0x46|0x47}}|Entity Velocity|pre=unchanged}}
 
{{PacketList|{{Change|0x47|0x48}}|Entity Equipment|pre=unchanged}}
 
{{PacketList|{{Change|0x48|0x49}}|Set Experience|pre=unchanged}}
 
{{PacketList|{{Change|0x49|0x4A}}|Update Health|pre=unchanged}}
 
{{PacketList|{{Change|0x4A|0x4B}}|Scoreboard Objective|pre=unchanged}}
 
{{PacketList|{{Change|0x4B|0x4C}}|Set Passengers|pre=unchanged}}
 
{{PacketList|{{Change|0x4C|0x4D}}|Teams|pre=unchanged}}
 
{{PacketList|{{Change|0x4D|0x4E}}|Update Score|pre=unchanged}}
 
{{PacketList|0x59|Entity Properties}}
 
 
  |-
 
  |-
!colspan="4"| Play serverbound
+
|}
{{PacketList|0x0F|Generate Structure|rel=added}}
 
{{PacketList|{{change|0x0F|0x10}}|Keep Alive (serverbound)|pre=unchanged}}
 
{{PacketList|{{change|0x10|0x11}}|Lock Difficulty|pre=unchanged}}
 
{{PacketList|{{change|0x11|0x12}}|Player Position|pre=unchanged}}
 
{{PacketList|{{change|0x12|0x13}}|Player Position And Rotation (serverbound)|pre=unchanged}}
 
{{PacketList|{{change|0x13|0x14}}|Player Rotation|pre=unchanged}}
 
{{PacketList|{{change|0x14|0x15}}|Player Movement|pre=unchanged}}
 
{{PacketList|{{change|0x15|0x16}}|Vehicle Move (serverbound)|pre=unchanged}}
 
{{PacketList|{{change|0x16|0x17}}|Steer Boat|pre=unchanged}}
 
{{PacketList|{{change|0x17|0x18}}|Pick Item|pre=unchanged}}
 
{{PacketList|{{change|0x18|0x19}}|Craft Recipe Request|pre=unchanged}}
 
{{PacketList|{{change|0x19|0x1A}}|Player Abilities (serverbound)|pre=unchanged}}
 
{{PacketList|{{change|0x1A|0x1B}}|Player Digging|pre=unchanged}}
 
{{PacketList|{{change|0x1B|0x1C}}|Entity Action|pre=unchanged}}
 
{{PacketList|{{change|0x1C|0x1D}}|Steer Vehicle|pre=unchanged}}
 
{{PacketList|{{change|0x1D|0x1E}}|Recipe Book Data|pre=unchanged}}
 
{{PacketList|{{change|0x1E|0x1F}}|Name Item|pre=unchanged}}
 
{{PacketList|{{change|0x1F|0x20}}|Resource Pack Status|pre=unchanged}}
 
{{PacketList|{{change|0x20|0x21}}|Advancement Tab|pre=unchanged}}
 
{{PacketList|{{change|0x21|0x22}}|Select Trade|pre=unchanged}}
 
{{PacketList|{{change|0x22|0x23}}|Set Beacon Effect|pre=unchanged}}
 
{{PacketList|{{change|0x23|0x24}}|Held Item Change (serverbound)|pre=unchanged}}
 
{{PacketList|{{change|0x24|0x25}}|Update Command Block|pre=unchanged}}
 
{{PacketList|{{change|0x25|0x26}}|Update Command Block Minecart|pre=unchanged}}
 
{{PacketList|{{change|0x26|0x27}}|Creative Inventory Action|pre=unchanged}}
 
{{PacketList|{{change|0x27|0x28}}|Update Jigsaw Block}}
 
{{PacketList|{{change|0x28|0x29}}|Update Structure Block|pre=unchanged}}
 
{{PacketList|{{change|0x29|0x2A}}|Update Sign|pre=unchanged}}
 
{{PacketList|{{change|0x2A|0x2B}}|Animation (serverbound)|pre=unchanged}}
 
{{PacketList|{{change|0x2B|0x2C}}|Spectate|pre=unchanged}}
 
{{PacketList|{{change|0x2C|0x2D}}|Player Block Placement|pre=unchanged}}
 
{{PacketList|{{change|0x2D|0x2E}}|Use Item|pre=unchanged}}
 
|-
 
!colspan="4"| Login clientbound
 
{{PacketList|0x02|Login Success}}
 
|}
 
  
== New/modified data types ==
+
== Handshake ==
  
 
No changes so far.
 
No changes so far.
  
== Entity Metadata ==
+
== Status ==
  
{{#vardefine:meta_prerelease|1}}
+
No changes so far.
  
=== FishingHook ===
+
== Login ==
  
{{Metadata inherit|FishingHook|inherits=Entity|start_at=7}}
+
No changes so far.
  
{| class="wikitable"
+
== Configuration ==
! Index
 
! Type
 
!style="width: 250px;" colspan="2"| Meaning
 
! Default
 
|-
 
| {{Metadata id|}}
 
| VarInt
 
|colspan="2"| Hooked entity id + 1, or 0 if there is no hooked entity
 
| 0
 
|- {{Added}}
 
| {{Metadata id|added}}
 
| Boolean
 
|colspan="2"| Is catchable
 
| False
 
|}
 
  
=== Abstract Arrow ===
+
=== Clientbound ===
  
{{Metadata inherit|Abstract Arrow|inherits=Entity|start_at=7}}
+
==== Clientbound Report Details (configuration) ====
  
Abstract base class for [[#Tipped Arrow|Tipped Arrow]] (which is used for regular arrows as well as tipped ones) and [[#Spectral Arrow|Spectral Arrow]].
+
Contains a list of key-value text entries that are included in any crash or disconnection report generated during connection to the server.
 
 
{| class="wikitable"
 
! Index
 
! Type
 
!style="width: 250px;" colspan="2"| Meaning
 
! Default
 
|-
 
| rowspan="3" | {{Metadata id|}}
 
| rowspan="3" | Byte
 
! Bit mask
 
! Meaning
 
| rowspan="3" | 0
 
|-
 
| 0x01
 
| Is critical
 
|-
 
| 0x02
 
| Is noclip (used by loyalty tridents when returning)
 
|- {{removed}}
 
| {{Metadata id|removed}}
 
| OptUUID
 
|colspan="2"| Unused
 
| Empty
 
|-
 
| {{Metadata id|}}
 
| Byte
 
|colspan="2"| Peircing level
 
| 0
 
|}
 
 
 
=== Tipped Arrow ===
 
 
 
{{Metadata inherit|Tipped Arrow|inherits=Abstract Arrow}}
 
 
 
Used for both tipped and regular arrows.  If not tipped, then color is set to -1 and no tipped arrow particles are used.
 
 
 
{| class="wikitable"
 
! Index
 
! Type
 
!style="width: 250px;" colspan="2"| Meaning
 
! Default
 
|-
 
| {{Metadata id|}}
 
| VarInt
 
|colspan="2"| Color (-1 for no particles)
 
| -1
 
|}
 
 
 
=== Spectral Arrow ===
 
 
 
{{Metadata inherit|Spectral Arrow|inherits=Abstract Arrow}}
 
 
 
No additional metadata.
 
 
 
=== Trident ===
 
 
 
{{Metadata inherit|Trident|inherits=Abstract Arrow}}
 
 
 
{| class="wikitable"
 
! Index
 
! Type
 
!style="width: 250px;" colspan="2"| Meaning
 
! Default
 
|-
 
| {{Metadata id|}}
 
| VarInt
 
|colspan="2"| Loyalty level (enchantment)
 
| 0
 
|-
 
| {{Metadata id|}}
 
| Boolean
 
|colspan="2"| Has enchantment glint
 
| False
 
|}
 
 
 
=== Strider ===
 
 
 
{{Metadata inherit|Strider|inherits=Animal|start_at=16}}
 
  
 
{| class="wikitable" {{added}}
 
{| class="wikitable" {{added}}
  ! Index
+
  ! Packet ID
  ! Type
+
  ! State
  !style="width: 250px;" colspan="2"| Meaning
+
  ! Bound To
  ! Default
+
  ! colspan="2"| Field Name
|-
+
  ! colspan="2"| Field Type
| {{Metadata id|}}
+
  ! Notes
| VarInt
 
|colspan="2"| Total time to "boost" with warped fungus on a stick for
 
  | 0
 
|-
 
| {{Metadata id|}}
 
| Boolean
 
|colspan="2"| Should display name tag (true unless riding a vehicle or on or in a block tagged with strider_warm_blocks (default: lava))
 
  | false
 
 
  |-
 
  |-
  | {{Metadata id|}}
+
  | rowspan="3"| 0x0F
  | Boolean
+
  | rowspan="3"| Configuration
  |colspan="2"| Has saddle
+
  | rowspan="3"| Client
  | false
+
  | colspan="2"| Details Count
|}
+
| colspan="2"| {{Type|VarInt}} (32)
 
+
  | The number of details in the following array.
=== Hoglin ===
 
 
 
{{Metadata inherit|Hoglin|inherits=Animal|start_at=16}}
 
 
 
{| class="wikitable" {{added}}
 
  ! Index
 
! Type
 
!style="width: 250px;" colspan="2"| Meaning
 
! Default
 
 
  |-
 
  |-
  | {{Metadata id|}}
+
  | rowspan="2"| Details
  | Boolean
+
  | Title
  |colspan="2"| Is immune to zombification
+
  | rowspan="2"| {{Type|Array}}
| false
+
| {{Type|String}} (128)
|}
+
  |
 
 
=== Zoglin ===
 
 
 
{{Metadata inherit|Hoglin|inherits=Monster|start_at=15}}
 
 
 
{| class="wikitable" {{added}}
 
  ! Index
 
! Type
 
!style="width: 250px;" colspan="2"| Meaning
 
! Default
 
 
  |-
 
  |-
  | {{Metadata id|}}
+
| Description
  | Boolean
+
  | {{Type|String}} (4096)
|colspan="2"| Is baby
+
  |
| false
+
|}
|}
 
  
=== Piglin ===
+
==== Clientbound Server Links (configuration) ====
  
{{Metadata inherit|Piglin|inherits=Monster|start_at=15}}
+
This packet contains a list of links that the Notchian client will display in the menu available from the pause menu. Link labels can be built-in or custom (i.e., any text).
  
 
{| class="wikitable" {{added}}
 
{| class="wikitable" {{added}}
! Index
 
! Type
 
!style="width: 250px;" colspan="2"| Meaning
 
! Default
 
|-
 
| {{Metadata id|}}
 
| Boolean
 
|colspan="2"| Is baby
 
| false
 
|-
 
| {{Metadata id|}}
 
| Boolean
 
|colspan="2"| Is immune to zombification
 
| false
 
|-
 
| {{Metadata id|}}
 
| Boolean
 
|colspan="2"| Is charging crossbow
 
| false
 
|}
 
 
=== {{Change|Zombie Pigman|Zombified Piglin}} ===
 
 
{{Metadata inherit|{{Change|Zombie Pigman|Zombified Piglin}}|inherits=Zombie|start_at=18}}
 
 
No additional metadata.
 
 
== Block Actions ==
 
 
No changes so far.
 
 
== Inventories ==
 
 
No changes so far.
 
 
== Plugin Channels ==
 
 
No changes so far.
 
 
== Play ==
 
 
=== Clientbound ===
 
 
==== Entity Properties ====
 
 
Sets {{Minecraft Wiki|Attribute|attributes}} on the given entity.
 
 
{| class="wikitable"
 
 
  ! Packet ID
 
  ! Packet ID
 
  ! State
 
  ! State
 
  ! Bound To
 
  ! Bound To
  !colspan="2"| Field Name
+
  ! colspan="2"| Field Name
  !colspan="2"| Field Type
+
  ! colspan="2"| Field Type
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="6"| 0x59
+
  | rowspan="4"| 0x10
  |rowspan="6"| Play
+
  | rowspan="4"| Configuration
  |rowspan="6"| Client
+
  | rowspan="4"| Client
  |colspan="2"| Entity ID
+
  | colspan="2"| Links Count
  |colspan="2"| VarInt
+
  | colspan="2"| {{Type|VarInt}}
  |  
+
  | The number of links in the following array.
|-
 
|colspan="2"| Number Of Properties
 
|colspan="2"| Int
 
| Number of elements in the following array
 
 
  |-
 
  |-
  |rowspan="4"| Property
+
  | rowspan="3"| Links
  | Key
+
  | Is built-in
  |rowspan="4"| Array
+
  | rowspan="3"| {{Type|Array}}
  | {{Change|String (64)|Identifier}}
+
  | {{Type|Boolean}}
  | See below
+
  | Determines if the following label is built-in (from enum) or custom (text component).
 
  |-
 
  |-
  | Value
+
  | Label
  | Double
+
  | {{Type|VarInt}} {{Type|Enum}} / {{Type|Text Component}}
  | See below
+
  | See below.
 
  |-
 
  |-
  | Number Of Modifiers
+
  | URL
  | VarInt
+
  | {{Type|String}}
| Number of elements in the following array
+
| Valid URL.
|-
+
|}
| Modifiers
 
| Array of Modifier Data
 
| See {{Minecraft Wiki|Attribute#Modifiers}}. Modifier Data defined below.
 
|}
 
  
Known Key values (see also {{Minecraft Wiki|Attribute#Modifiers}}):
 
  
{| class="wikitable"
+
{| class="wikitable" {{added}}
 +
! ID
 +
! Name
 +
! Notes
 
  |-
 
  |-
  ! Key
+
  | 0
  ! Default
+
  | Bug Report
  ! Min
+
  | Displayed on connection error screen; included as a comment in the disconnection report.
! Max
 
! Label
 
 
  |-
 
  |-
  | {{change|generic.maxHealth|generic.max_health}}
+
  | 1
| 20.0
+
  | Community Guidelines
| 0.0
+
  |  
  | 1024.0
 
  | Max Health
 
 
  |-
 
  |-
  | {{change|generic.followRange|generic.follow_range}}
+
  | 2
| 32.0
+
  | Support
| 0.0
+
  |  
  | 2048.0
 
  | Follow Range
 
 
  |-
 
  |-
  | {{change|generic.knockbackResistance|generic.knockback_resistance}}
+
  | 3
| 0.0
+
  | Status
| 0.0
+
  |  
  | 1.0
 
  | Knockback Resistance
 
 
  |-
 
  |-
  | {{change|generic.movementSpeed|generic.movement_speed}}
+
  | 4
| 0.7
+
  | Feedback
| 0.0
+
  |  
  | 1024.0
 
  | Movement Speed
 
 
  |-
 
  |-
  | {{change|generic.attackDamage|generic.attack_damage}}
+
  | 5
| 2.0
+
  | Community
| 0.0
+
  |  
  | 2048.0
 
  | Attack Damage
 
 
  |-
 
  |-
  | {{change|generic.attackSpeed|generic.attack_speed}}
+
  | 6
| 4.0
+
  | Website
| 0.0
+
  |  
  | 1024.0
 
  | Attack Speed
 
 
  |-
 
  |-
  | {{change|generic.flyingSpeed|generic.flying_speed}}
+
  | 7
| 0.4
+
  | Forums
| 0.0
+
  |  
  | 1024.0
 
  | Flying Speed
 
 
  |-
 
  |-
  | generic.armor
+
  | 8
  | 0.0
+
  | News
  | 0.0
+
  |  
| 30.0
 
| Armor
 
|-
 
| {{change|generic.armorToughness|generic.armor_toughness}}
 
| 0.0
 
| 0.0
 
| 20.0
 
| Armor Toughness
 
|-
 
| {{change|generic.attackKnockback|generic.attack_knockback}}
 
| 0.0
 
| 0.0
 
| 5.0
 
| —
 
 
  |-
 
  |-
  | generic.luck
+
  | 9
  | 0.0
+
  | Announcements
| -1024.0
 
| 1024.0
 
| Luck
 
|-
 
| {{change|horse.jumpStrength|horse.jump_strength}}
 
| 0.7
 
| 0.0
 
| 2.0
 
| Jump Strength
 
|-
 
| {{change|zombie.spawnReinforcements|zombie.spawn_reinforcements}}
 
| 0.0
 
| 0.0
 
| 1.0
 
| Spawn Reinforcements Chance
 
|-
 
| generic.reachDistance
 
| 5.0
 
| 0.0
 
| 1024.0
 
| Player Reach Distance (Forge only)
 
|-
 
| forge.swimSpeed
 
| 1.0
 
| 0.0
 
| 1024.0
 
| Swimming Speed (Forge only)
 
|}
 
 
 
Unknown attributes will cause a game crash ([https://bugs.mojang.com/browse/MC-150405 MC-150405]) due to the default minimum being larger than the default value.
 
 
 
''Modifier Data'' structure:
 
 
 
{| class="wikitable"
 
|-
 
! Field Name
 
! Field Type
 
! Notes
 
|-
 
| UUID
 
| UUID
 
 
  |  
 
  |  
 
  |-
 
  |-
| Amount
 
| Double
 
| May be positive or negative
 
|-
 
| Operation
 
| Byte
 
| See below
 
 
  |}
 
  |}
  
The operation controls how the base value of the modifier is changed.
+
=== Serverbound ===
  
* 0: Add/subtract amount
+
No changes so far.
* 1: Add/subtract amount percent of the current value
 
* 2: Multiply by amount percent
 
  
All of the 0's are applied first, and then the 1's, and then the 2's.
+
== Play ==
  
=== Serverbound ===
+
=== Clientbound ===
  
==== Generate Structure ====
+
==== Clientbound Report Details (play) ====
  
Sent when Generate is pressed on the {{Minecraft Wiki|Jigsaw Block}} interface.
+
Contains a list of key-value text entries that are included in any crash or disconnection report generated during connection to the server.
  
 
{| class="wikitable" {{added}}
 
{| class="wikitable" {{added}}
Line 473: Line 172:
 
  ! State
 
  ! State
 
  ! Bound To
 
  ! Bound To
  ! Field Name
+
  ! colspan="2"| Field Name
  ! Field Type
+
  ! colspan="2"| Field Type
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="2"| 0x0F
+
  | rowspan="3"| 0x7A
  |rowspan="2"| Play
+
  | rowspan="3"| Configuration
  |rowspan="2"| Server
+
  | rowspan="3"| Client
  | Location
+
  | colspan="2"| Details Count
  | Position
+
  | colspan="2"| {{Type|VarInt}} (32)
  | Block entity location
+
  | The number of details in the following array.
 
  |-
 
  |-
  | Levels
+
  | rowspan="2"| Details
  | VarInt
+
| Title
  | Value of the levels slider/max depth to generate
+
| rowspan="2"| {{Type|Array}}
  |}
+
| {{Type|String}} (128)
 +
|
 +
  |-
 +
  | Description
 +
  | {{Type|String}} (4096)
 +
|
 +
|}
  
==== Update Jigsaw Block ====
+
==== Clientbound Server Links (play) ====
  
Sent when Done is pressed on the {{Minecraft Wiki|Jigsaw Block}} interface.
+
This packet contains a list of links that the Notchian client will display in the menu available from the pause menu. Link labels can be built-in or custom (i.e., any text).
  
{| class="wikitable"
+
{| class="wikitable" {{added}}
 
  ! Packet ID
 
  ! Packet ID
 
  ! State
 
  ! State
 
  ! Bound To
 
  ! Bound To
  ! Field Name
+
  ! colspan="2"| Field Name
  ! Field Type
+
  ! colspan="2"| Field Type
 +
! Notes
 +
|-
 +
| rowspan="4"| 0x7B
 +
| rowspan="4"| Configuration
 +
| rowspan="4"| Client
 +
| colspan="2"| Links Count
 +
| colspan="2"| {{Type|VarInt}}
 +
| The number of links in the following array.
 +
|-
 +
| rowspan="3"| Links
 +
| Is built-in
 +
| rowspan="3"| {{Type|Array}}
 +
| {{Type|Boolean}}
 +
| Determines if the following label is built-in (from enum) or custom (text component).
 +
|-
 +
| Label
 +
| {{Type|VarInt}} {{Type|Enum}} / {{Type|Text Component}}
 +
| See below.
 +
|-
 +
| URL
 +
| {{Type|String}}
 +
| Valid URL.
 +
|}
 +
 
 +
{| class="wikitable" {{added}}
 +
! ID
 +
! Name
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="7"| {{Change|0x27|0x28}}
+
  | 0
|rowspan="7"| Play
+
  | Bug Report
|rowspan="7"| Server
+
  | Displayed on connection error screen; included as a comment in the disconnection report.
| Location
+
  |-
  | Position
+
  | 1
  | Block entity location
+
  | Community Guidelines
  |- {{Removed}}
 
  | Attachment type
 
  | Identifier
 
 
  |  
 
  |  
  |- {{Added}}
+
  |-
  | Name
+
  | 2
  | Identifier
+
  | Support
 
  |  
 
  |  
  |- {{Added}}
+
  |-
  | Target
+
  | 3
  | Identifier
+
  | Status
 
  |  
 
  |  
  |-  
+
  |-
  | {{Change|Target pool|Pool}}
+
  | 4
  | Identifier
+
  | Feedback
 
  |  
 
  |  
 
  |-
 
  |-
  | Final state
+
  | 5
  | String
+
  | Community
  | "Turns into" on the GUI, <code>final_state</code> in NBT
+
  |  
|- {{Added}}
 
| Joint type
 
| String
 
| <code>rollable</code> if the attached piece can be rotated, else <code>aligned</code>
 
|}
 
 
 
== Handshaking ==
 
 
 
=== Clientbound ===
 
 
 
There are no clientbound packets in the Handshaking state, since the protocol immediately switches to a different state after the client sends the first packet.
 
 
 
=== Serverbound ===
 
 
 
==== Handshake ====
 
 
 
This causes the server to switch into the target state.
 
 
 
{| class="wikitable"
 
! Packet ID
 
! State
 
! Bound To
 
! Field Name
 
! Field Type
 
! Notes
 
 
  |-
 
  |-
  |rowspan="4"| 0x00
+
  | 6
|rowspan="4"| Handshaking
+
  | Website
|rowspan="4"| Server
+
  |  
  | Protocol Version
 
  | VarInt
 
| See [[protocol version numbers]] (currently {{change|578|713}})
 
 
  |-
 
  |-
  | Server Address
+
  | 7
  | String
+
  | Forums
  | Hostname or IP, e.g. localhost or 127.0.0.1, that was used to connect. The Notchian server does not use this information. Note that SRV records are a complete redirect, e.g. if _minecraft._tcp.example.com points to mc.example.org, users connecting to example.com will provide mc.example.org as server address in addition to connecting to it.
+
  |  
|-
 
| Server Port
 
| Unsigned Short
 
| Default is 25565.  The Notchian server does not use this information.
 
 
  |-
 
  |-
  | Next State
+
  | 8
  | VarInt Enum
+
  | News
  | 1 for [[#Status|status]], 2 for [[#Login|login]]
+
  |  
|}
 
 
 
== Status ==
 
 
 
=== Clientbound ===
 
 
 
No changes so far.
 
 
 
=== Serverbound ===
 
 
 
No changes so far.
 
 
 
== Login ==
 
 
 
=== Clientbound ===
 
 
 
==== Login Success ====
 
 
 
{| class="wikitable"
 
! Packet ID
 
! State
 
! Bound To
 
! Field Name
 
! Field Type
 
! Notes
 
 
  |-
 
  |-
  |rowspan="2"| 0x02
+
  | 9
|rowspan="2"| Login
+
  | Announcements
  |rowspan="2"| Client
+
  |  
  | UUID
 
| {{Change|String (36)|UUID}}
 
| {{Change|Unlike in other packets, this field contains the UUID as a string with hyphens}}.
 
 
  |-
 
  |-
| Username
 
| String (16)
 
|
 
 
  |}
 
  |}
 
This packet switches the connection state to [[#Play|play]].
 
  
 
=== Serverbound ===
 
=== Serverbound ===
  
 
No changes so far.
 
No changes so far.
 
  
 
[[Category:Minecraft Modern]]
 
[[Category:Minecraft Modern]]

Latest revision as of 10:40, 8 June 2024

This page documents the changes from the last stable Minecraft release (currently 1.20.6, protocol 766) to the current pre-release (currently 1.21-pre2, protocol Snapshot 200). Note that this page contains bleeding-edge information that may not be completely or correctly documented.

One who wishes to commandeer the merging of this into Protocol when an update is made must be sure to respect any changes that may have occurred to the respective packets there.

Contents

Data types

No changes documented so far.

Packets

ID Packet name Documentation
Configuration clientbound
0x0F Clientbound Report Details (configuration) Pre
0x10 Clientbound Server Links (configuration) Pre
Play clientbound
0x7A Clientbound Report Details (play) Pre
0x7B Clientbound Server Links (play) Pre

Handshake

No changes so far.

Status

No changes so far.

Login

No changes so far.

Configuration

Clientbound

Clientbound Report Details (configuration)

Contains a list of key-value text entries that are included in any crash or disconnection report generated during connection to the server.

Packet ID State Bound To Field Name Field Type Notes
0x0F Configuration Client Details Count VarInt (32) The number of details in the following array.
Details Title Array String (128)
Description String (4096)

Clientbound Server Links (configuration)

This packet contains a list of links that the Notchian client will display in the menu available from the pause menu. Link labels can be built-in or custom (i.e., any text).

Packet ID State Bound To Field Name Field Type Notes
0x10 Configuration Client Links Count VarInt The number of links in the following array.
Links Is built-in Array Boolean Determines if the following label is built-in (from enum) or custom (text component).
Label VarInt Enum / Text Component See below.
URL String Valid URL.


ID Name Notes
0 Bug Report Displayed on connection error screen; included as a comment in the disconnection report.
1 Community Guidelines
2 Support
3 Status
4 Feedback
5 Community
6 Website
7 Forums
8 News
9 Announcements

Serverbound

No changes so far.

Play

Clientbound

Clientbound Report Details (play)

Contains a list of key-value text entries that are included in any crash or disconnection report generated during connection to the server.

Packet ID State Bound To Field Name Field Type Notes
0x7A Configuration Client Details Count VarInt (32) The number of details in the following array.
Details Title Array String (128)
Description String (4096)

Clientbound Server Links (play)

This packet contains a list of links that the Notchian client will display in the menu available from the pause menu. Link labels can be built-in or custom (i.e., any text).

Packet ID State Bound To Field Name Field Type Notes
0x7B Configuration Client Links Count VarInt The number of links in the following array.
Links Is built-in Array Boolean Determines if the following label is built-in (from enum) or custom (text component).
Label VarInt Enum / Text Component See below.
URL String Valid URL.
ID Name Notes
0 Bug Report Displayed on connection error screen; included as a comment in the disconnection report.
1 Community Guidelines
2 Support
3 Status
4 Feedback
5 Community
6 Website
7 Forums
8 News
9 Announcements

Serverbound

No changes so far.