Difference between revisions of "Pre-release protocol"

From wiki.vg
Jump to navigation Jump to search
(Add new entity IDs)
(Updated to 1.21-pre2)
 
(917 intermediate revisions by 54 users not shown)
Line 1: Line 1:
This page documents the changes from the [[Protocol|last stable Minecraft release]] (currently [[Protocol version numbers|1.10.2, protocol 210]]) to the current pre-release (currently [[Protocol version numbers|16w39a, protocol 307]]). 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 ===
  
No changes so far.
+
No changes documented so far.
  
 
=== Packets ===
 
=== Packets ===
 
No changes so far.
 
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 20: 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|0x03|Spawn Mob}}
+
  {{PacketList|0x7A|Clientbound Report Details (play)|rel=added}}
{{PacketList|0x48|Collect Item}}
+
  {{PacketList|0x7B|Clientbound Server Links (play)|rel=added}}
|-
 
!colspan="4"| Play serverbound
 
  {{PacketList|0x02|Chat Message (serverbound)}}
 
 
  |-
 
  |-
 
|}
 
|}
  
== New/modified data types ==
+
== Handshake ==
  
=== Mobs ===
+
No changes so far.
  
Mobs are spawned via [[Protocol#Spawn_Mob|Spawn Mob]]. There are two extra mob types in the code that refer to mobs classes that can never spawn: Mob and Monster (they are always subclasses, aka another more specific type).
+
== Status ==
  
{| class="wikitable"
+
No changes so far.
|-
 
! Type
 
! Name
 
! x, z
 
! y
 
! ID
 
|- style="background-color: #d9ead3;"
 
| 4
 
| ElderGuardian
 
| 0.85
 
| 0.85
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:elder_guardian</code>
 
|- style="background-color: #d9ead3;"
 
| 5
 
| WitherSkeleton
 
| 0.7
 
| 2.4
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:wither_skeleton</code>
 
|- style="background-color: #d9ead3;"
 
| 6
 
| Stray
 
| 0.6
 
| 1.99
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:stray</code>
 
|- style="background-color: #d9ead3;"
 
| 23
 
| Husk
 
| 0.6
 
| 1.95
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:husk</code>
 
|- style="background-color: #d9ead3;"
 
| 27
 
| ZombieVillager
 
| 0.6
 
| 1.95
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:zombie_villager</code>
 
|- style="background-color: #d9ead3;"
 
| 28
 
| SkeletonHorse
 
| 1.396484
 
| 1.6
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:skeleton_horse</code>
 
|- style="background-color: #d9ead3;"
 
| 29
 
| ZombieHorse
 
| 1.396484
 
| 1.6
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:zombie_horse</code>
 
|- style="background-color: #d9ead3;"
 
| 31
 
| Donkey
 
| 1.396484
 
| 1.6
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:donkey</code>
 
|- style="background-color: #d9ead3;"
 
| 32
 
| Mule
 
| 1.396484
 
| 1.6
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:mule</code>
 
|- style="background-color: #d9ead3;"
 
| 33
 
| EvocationFangs
 
| 0.5
 
| 0.8
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:evocation_fangs</code>
 
|- style="background-color: #d9ead3;"
 
| 34
 
| EvocationIllager
 
| 0.6
 
| 1.95
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:evocation_illager</code>
 
|- style="background-color: #d9ead3;"
 
| 35
 
| Vex
 
| 0.4
 
| 0.8
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:vex</code>
 
|- style="background-color: #d9ead3;"
 
| 36
 
| VindicationIllager
 
| 0.6
 
| 1.95
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:vindication_illager</code>
 
|-
 
| 48
 
| Mob
 
| N/A
 
| N/A
 
|-
 
| 49
 
| Monster
 
| N/A
 
| N/A
 
|-
 
| 50
 
| Creeper
 
| 0.6
 
| 1.7
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:creeper</code>
 
|-
 
| 51
 
| Skeleton
 
| 0.6
 
| 1.99
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:skeleton</code>
 
|-
 
| 52
 
| Spider
 
| 1.4
 
| 0.9
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:spider</code>
 
|-
 
| 53
 
| {{change|Giant Zombie|Giant}}
 
| 0.6 * 6
 
| 1.8 * 6
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:giant</code>
 
|-
 
| 54
 
| Zombie
 
| 0.6
 
| 1.8
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:zombie</code>
 
|-
 
| 55
 
| Slime
 
| 0.51000005 * size
 
| 0.51000005 * size
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:slime</code>
 
|-
 
| 56
 
| Ghast
 
| 4
 
| 4
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:ghast</code>
 
|-
 
| 57
 
| {{change|Zombie Pigman|PigZombie}}
 
| 0.6
 
| 1.8
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:zombie_pigman</code>
 
|-
 
| 58
 
| Enderman
 
| 0.6
 
| 2.9
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:enderman</code>
 
|-
 
| 59
 
| {{change|Cave Spider|CaveSpider}}
 
| 0.7
 
| 0.5
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:cave_spider</code>
 
|-
 
| 60
 
| Silverfish
 
| 0.4
 
| 0.3
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:silverfish</code>
 
|-
 
| 61
 
| Blaze
 
| 0.6
 
| 1.8
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:blaze</code>
 
|-
 
| 62
 
| {{change|Magma Cube|LavaSlime}}
 
| 0.51000005 * size
 
| 0.51000005 * size
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:magma_cube</code>
 
|-
 
| 63
 
| {{change|Ender Dragon|EnderDragon}}
 
| 16.0
 
| 8.0
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:ender_dragon</code>
 
|-
 
| 64
 
| {{change|Wither|WitherBoss}}
 
| 0.9
 
| 3.5
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:wither</code>
 
|-
 
| 65
 
| Bat
 
| 0.5
 
| 0.9
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:bat</code>
 
|-
 
| 66
 
| Witch
 
| 0.6
 
| 1.8
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:witch</code>
 
|-
 
| 67
 
| Endermite
 
| 0.4
 
| 0.3
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:endermite</code>
 
|-
 
| 68
 
| Guardian
 
| 0.85
 
| 0.85
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:guardian</code>
 
|-
 
| 69
 
| Shulker
 
| 1
 
| 1
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:shulker</code>
 
|-
 
| 90
 
| Pig
 
| 0.9
 
| 0.9
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:pig</code>
 
|-
 
| 91
 
| Sheep
 
| 0.9
 
| 1.3
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:sheep</code>
 
|-
 
| 92
 
| Cow
 
| 0.9
 
| 1.4
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:cow</code>
 
|-
 
| 93
 
| Chicken
 
| 0.4
 
| 0.7
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:chicken</code>
 
|-
 
| 94
 
| Squid
 
| 0.8
 
| 0.8
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:squid</code>
 
|-
 
| 95
 
| Wolf
 
| 0.6
 
| 0.85
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:wolf</code>
 
|-
 
| 96
 
| {{change|Mooshroom|MushroomCow}}
 
| 0.9
 
| 1.3
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:mooshroom</code>
 
|-
 
| 97
 
| {{change|Snowman|SnowMan}}
 
| 0.7
 
| 1.9
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:snowman</code>
 
|-
 
| 98
 
| {{change|Ocelot|Ozelot}}
 
| 0.6
 
| 0.8
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:ocelot</code>
 
|-
 
| 99
 
| {{change|Iron Golem|VillagerGolem}}
 
| 1.4
 
| 2.7
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:villager_golem</code>
 
|-
 
| 100
 
| {{change|EntityHorse|Horse}}
 
| 1.396484
 
| 1.6
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:horse</code>
 
|-
 
| 101
 
| Rabbit
 
| 0.4
 
| 0.5
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:rabbit</code>
 
|-
 
| 102
 
| {{change|Polar Bear|PolarBear}}
 
| 1.3
 
| 1.4
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:polar_bear</code>
 
|-
 
| 120
 
| Villager
 
| 0.6
 
| 1.95
 
| style="background-color: #d9ead3; text-align: center;" | <code>minecraft:villager</code>
 
|}
 
  
=== Entity Metadata ===
+
== Login ==
  
=== EvocationIllager ===
+
No changes so far.
  
Extends [[#Monster|Monster]].
+
== Configuration ==
  
{| class="wikitable" style="background-color: #d9ead3;"
+
=== Clientbound ===
! Index
 
! Type
 
!style="width: 250px;" colspan="2"| Meaning
 
|-
 
| 12
 
| Byte
 
| Unknown (Probably hands up animation)
 
|}
 
  
=== Vex ===
+
==== Clientbound Report Details (configuration) ====
  
Extends [[#Monster|Monster]].
+
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" style="background-color: #d9ead3;"
+
{| class="wikitable" {{added}}
  ! Index
+
! Packet ID
  ! Type
+
  ! State
  !style="width: 250px;" colspan="2"| Meaning
+
  ! Bound To
 +
  ! colspan="2"| Field Name
 +
! colspan="2"| Field Type
 +
! Notes
 
  |-
 
  |-
  | 12
+
  | rowspan="3"| 0x0F
  | Byte
+
  | rowspan="3"| Configuration
| Unknown (Probably the attack animation)
+
  | rowspan="3"| Client
  |}
+
| colspan="2"| Details Count
 
+
  | colspan="2"| {{Type|VarInt}} (32)
=== VindicationIllager ===
+
| The number of details in the following array.
 
 
Extends [[#Monster|Monster]].
 
 
 
{| class="wikitable" style="background-color: #d9ead3;"
 
  ! Index
 
! Type
 
!style="width: 250px;" colspan="2"| Meaning
 
 
  |-
 
  |-
  | 12
+
  | rowspan="2"| Details
| Byte
+
  | Title
  | Unknown
+
  | rowspan="2"| {{Type|Array}}
  |}
+
  | {{Type|String}} (128)
 
+
  |
=== AbstractSkeleton ===
 
 
 
Extends [[#Monster|Monster]].
 
 
 
{| class="wikitable" style="background-color: #d9ead3;"
 
  ! Index
 
! Type
 
  !style="width: 250px;" colspan="2"| Meaning
 
 
  |-
 
  |-
  | 12
+
  | Description
  | Boolean
+
  | {{Type|String}} (4096)
  |colspan="2"| Is swinging arms
+
  |
|}
+
|}
  
=== Skeleton ===
+
==== Clientbound Server Links (configuration) ====
  
Extends [[#AbstractSkeleton|AbstractSkeleton]].
+
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" style="background-color: #f4cccc;"
+
{| class="wikitable" {{added}}
  ! Index
+
  ! Packet ID
  ! Type
+
  ! State
  !style="width: 250px;" colspan="2"| Meaning
+
  ! Bound To
  |-
+
  ! colspan="2"| Field Name
| 12
+
  ! colspan="2"| Field Type
| VarInt
+
  ! Notes
|colspan="2"| Type (Normal = 0, Wither = 1, Stray = 2)
 
  |-
 
| 13
 
| Boolean
 
|colspan="2"| Is swinging arms (Used to animate arms for melee attacks; only used when the skeleton does not have a bow in its hand)
 
|}
 
 
 
=== Wither Skeleton ===
 
 
 
Extends [[#AbstractSkeleton|AbstractSkeleton]].
 
 
 
=== Stray ===
 
 
 
Extends [[#AbstractSkeleton|AbstractSkeleton]].
 
 
 
=== Zombie ===
 
 
 
Extends [[#Monster|Monster]].
 
 
 
{| class="wikitable"
 
! Index
 
! Type
 
  !style="width: 250px;" colspan="2"| Meaning
 
 
  |-
 
  |-
  | 12
+
  | rowspan="4"| 0x10
  | Boolean
+
| rowspan="4"| Configuration
  |colspan="2"| Is baby
+
| rowspan="4"| Client
 +
  | colspan="2"| Links Count
 +
  | colspan="2"| {{Type|VarInt}}
 +
| The number of links in the following array.
 
  |-
 
  |-
  | 13
+
  | rowspan="3"| Links
  | VarInt
+
  | Is built-in
  |colspan="2"| {{change|Zombie type (0 for zombie, profession+1 for villagers, 6 for Husk)|Unused}}
+
  | rowspan="3"| {{Type|Array}}
  |- style="background-color: #f4cccc;"
+
  | {{Type|Boolean}}
| 14
+
  | Determines if the following label is built-in (from enum) or custom (text component).
| Boolean
 
  |colspan="2"| Is converting
 
 
  |-
 
  |-
  | {{change|15|14}}
+
| Label
| Boolean
+
  | {{Type|VarInt}} {{Type|Enum}} / {{Type|Text Component}}
|colspan="2"| Are hands held up
+
  | See below.
|}
 
 
 
=== Zombie Villager ===
 
 
 
Extends [[#Zombie|Zombie]].
 
 
 
{| class="wikitable"
 
! Index
 
! Type
 
!style="width: 250px;" colspan="2"| Meaning
 
|- style="background-color: #d9ead3;"
 
| 15
 
| Boolean
 
|colspan="2"| Is converting
 
|- style="background-color: #d9ead3;"
 
| 16
 
| VarInt
 
|colspan="2"| Profession
 
|}
 
 
 
=== Husk ===
 
 
 
Extends [[#Zombie|Zombie]].
 
 
 
=== Guardian ===
 
 
 
Extends [[#Monster|Monster]].
 
 
 
{| class="wikitable"
 
! Index
 
! Type
 
!style="width: 250px;" colspan="2"| Meaning
 
  |- style="background-color: #f4cccc;"
 
|rowspan="3"| 12
 
|rowspan="3"| Byte
 
! Bit mask
 
! Meaning
 
|- style="background-color: #f4cccc;"
 
| 0x02
 
| is retracting spikes
 
|- style="background-color: #f4cccc;"
 
| 0x04
 
| is elderly
 
|- style="background-color: #d9ead3;"
 
| 12
 
| Boolean
 
|colspan="2"| Is retracting spikes
 
 
  |-
 
  |-
  | 13
+
  | URL
  | VarInt
+
  | {{Type|String}}
  |colspan="2"| Target EID
+
  | Valid URL.
|}
+
|}
  
=== ElderGuardian ===
 
  
Extends [[#Guardian|Guardian]].
+
{| class="wikitable" {{added}}
 
+
  ! ID
=== AbstractHorse ===
+
  ! Name
 
+
  ! Notes
Extends [[#Animal|Animal]].
 
 
 
{| class="wikitable" style="background-color: #d9ead3;"
 
  ! Index
 
  ! Type
 
  !style="width: 250px;" colspan="2"| Meaning
 
 
  |-
 
  |-
  |rowspan="9"| 13
+
  | 0
  |rowspan="9"| Byte
+
  | Bug Report
  ! Bit mask
+
  | Displayed on connection error screen; included as a comment in the disconnection report.
! Meaning
 
 
  |-
 
  |-
  | 0x01
+
  | 1
  | ''Unused''
+
| Community Guidelines
 +
  |  
 
  |-
 
  |-
  | 0x02
+
  | 2
  | Is Tame
+
| Support
 +
  |  
 
  |-
 
  |-
  | 0x04
+
  | 3
  | Is saddled
+
| Status
 +
  |  
 
  |-
 
  |-
  | 0x08
+
  | 4
  | Has Chest
+
| Feedback
 +
  |  
 
  |-
 
  |-
  | 0x10
+
  | 5
  | Is Bred (not used on the Notchian server; controlled via the unused Bred NBT flag)
+
| Community
 +
  |  
 
  |-
 
  |-
  | 0x20
+
  | 6
  | Is eating
+
| Website
 +
  |  
 
  |-
 
  |-
  | 0x40
+
  | 7
  | Is rearing (on hind legs)
+
| Forums
 +
  |  
 
  |-
 
  |-
  | 0x80
+
  | 8
  | Is mouth open
+
| News
 +
  |  
 
  |-
 
  |-
  | 14
+
  | 9
  | OptUUID
+
  | Announcements
  |colspan="2"| Owner
+
  |  
|}
 
 
 
=== Horse ===
 
 
 
Extends [[#AbstractHorse|AbstractHorse]].
 
 
 
{| class="wikitable" style="background-color: #d9ead3;"
 
! Index
 
! Type
 
!style="width: 250px;" colspan="2"| Meaning
 
 
  |-
 
  |-
| 15
 
| VarInt
 
|colspan="2"| Variant (Color & Style)
 
|-
 
| 16
 
| VarInt
 
|colspan="2"| Armor
 
 
  |}
 
  |}
  
=== ZombieHorse ===
+
=== Serverbound ===
  
Extends [[#AbstractHorse|AbstractHorse]].
+
No changes so far.
  
=== SkeletonHorse ===
+
== Play ==
 
 
Extends [[#AbstractHorse|AbstractHorse]].
 
 
 
=== ChestedHorse ===
 
 
 
Extends [[#AbstractHorse|AbstractHorse]].
 
 
 
{| class="wikitable" style="background-color: #d9ead3;"
 
! Index
 
! Type
 
!style="width: 250px;" colspan="2"| Meaning
 
|-
 
| 15
 
| Boolean
 
|colspan="2"| Has Chest
 
|}
 
 
 
=== Donkey ===
 
 
 
Extends [[#ChestedHorse|ChestedHorse]].
 
 
 
=== Liama ===
 
 
 
Extends [[#ChestedHorse|ChestedHorse]].
 
 
 
{| class="wikitable" style="background-color: #d9ead3;"
 
! Index
 
! Type
 
!style="width: 250px;" colspan="2"| Meaning
 
|-
 
| 16
 
| Integer
 
| colspan="2"| Unknown
 
|-
 
| 17
 
| Integer
 
| colspan="2"| Unknown
 
|-
 
| 18
 
| Integer
 
| colspan="2"| Unknown
 
|}
 
 
 
=== Mule ===
 
 
 
Extends [[#ChestedHorse|ChestedHorse]].
 
 
 
=== Shulker ===
 
 
 
Extends [[#Golem|Golem]].
 
 
 
{| class="wikitable"
 
! Index
 
! Type
 
! style="width: 250px;" colspan="2"| Meaning
 
|-
 
| 12
 
| Direction
 
|colspan="2"| Facing direction
 
|-
 
| 13
 
| OptPosition
 
|colspan="2"| Attachment position
 
|-
 
| 14
 
| Byte
 
|colspan="2"| Shield height
 
|- style="background-color: #d9ead3;"
 
| 15
 
| Byte
 
| colspan="2"| Unknown
 
|}
 
 
 
 
 
== Handshaking ==
 
  
 
=== Clientbound ===
 
=== Clientbound ===
  
No changes so far.
+
==== Clientbound Report Details (play) ====
 
 
=== Serverbound ===
 
 
 
==== Handshake ====
 
  
This causes the server to switch into the target state.
+
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"
+
{| 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
 
  ! Notes
 
  |-
 
  |-
  |rowspan="4"| 0x00
+
  | rowspan="3"| 0x7A
  |rowspan="4"| Handshaking
+
  | rowspan="3"| Configuration
  |rowspan="4"| Server
+
  | rowspan="3"| Client
  | Protocol Version
+
  | colspan="2"| Details Count
  | VarInt
+
  | colspan="2"| {{Type|VarInt}} (32)
| See [[protocol version numbers]] (currently {{change|210|307}})
+
| The number of details in the following array.
 
  |-
 
  |-
  | Server Address
+
  | rowspan="2"| Details
  | String
+
  | Title
  | Hostname or IP, e.g. localhost or 127.0.0.1, that was used to connect.  The Notchian server does not use this information.
+
  | rowspan="2"| {{Type|Array}}
|-
+
  | {{Type|String}} (128)
  | Server Port
+
  |
| Unsigned Short
 
  | Default is 25565.  The Notchian server does not use this information.
 
 
  |-
 
  |-
  | Next State
+
  | Description
  | VarInt Enum
+
  | {{Type|String}} (4096)
  | 1 for [[#Status|status]], 2 for [[#Login|login]]
+
  |
|}
+
|}
  
== Play ==
+
==== Clientbound Server Links (play) ====
  
=== Clientbound ===
+
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).
  
==== Spawn Mob ====
+
{| class="wikitable" {{added}}
 
 
Sent by the server when a mob entity is spawned.
 
 
 
{| class="wikitable"
 
 
  ! Packet ID
 
  ! Packet ID
 
  ! State
 
  ! State
 
  ! Bound To
 
  ! Bound To
  ! Field Name
+
  ! colspan="2"| Field Name
  ! Field Type
+
  ! colspan="2"| Field Type
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="13"| 0x03
+
  | rowspan="4"| 0x7B
  |rowspan="13"| Play
+
  | rowspan="4"| Configuration
  |rowspan="13"| Client
+
  | rowspan="4"| Client
  | Entity ID
+
  | colspan="2"| Links Count
  | VarInt
+
  | 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.
 
  |-
 
  |-
  | Entity UUID
+
  | URL
  | UUID
+
  | {{Type|String}}
  |  
+
  | Valid URL.
 +
|}
 +
 
 +
{| class="wikitable" {{added}}
 +
! ID
 +
! Name
 +
! Notes
 
  |-
 
  |-
  | Type
+
  | 0
  | {{change|Unsigned Byte|VarInt}}
+
  | Bug Report
  | The type of mob. See [[Entities#Mobs]]
+
  | Displayed on connection error screen; included as a comment in the disconnection report.
 
  |-
 
  |-
  | X
+
  | 1
  | Double
+
  | Community Guidelines
 
  |  
 
  |  
 
  |-
 
  |-
  | Y
+
  | 2
  | Double
+
  | Support
 
  |  
 
  |  
 
  |-
 
  |-
  | Z
+
  | 3
  | Double
+
  | Status
 
  |  
 
  |  
 
  |-
 
  |-
  | Yaw
+
  | 4
  | Angle
+
  | Feedback
 
  |  
 
  |  
 
  |-
 
  |-
  | Pitch
+
  | 5
  | Angle
+
  | Community
 
  |  
 
  |  
 
  |-
 
  |-
  | Head Pitch
+
  | 6
  | Angle
+
  | Website
 
  |  
 
  |  
 
  |-
 
  |-
  | Velocity X
+
  | 7
  | Short
+
  | Forums
  | Same units as [[#Entity Velocity|Entity Velocity]]
+
  |  
|-
 
| Velocity Y
 
| Short
 
| Same units as [[#Entity Velocity|Entity Velocity]]
 
|-
 
| Velocity Z
 
| Short
 
| Same units as [[#Entity Velocity|Entity Velocity]]
 
 
  |-
 
  |-
  | Metadata
+
  | 8
  | [[Entities#Entity Metadata Format|Entity Metadata]]
+
  | News
 
  |  
 
  |  
|}
 
 
==== Collect Item ====
 
 
Sent by the server when someone picks up an item lying on the ground — its sole purpose appears to be the animation of the item flying towards you. It doesn't destroy the entity in the client memory, and it doesn't add it to your inventory. The server only checks for items to be picked up after each [[#Player Position|Player Position]] (and [[#Player Position And Look|Player Position And Look]]) packet sent by the client.
 
 
{| class="wikitable"
 
! Packet ID
 
! State
 
! Bound To
 
! Field Name
 
! Field Type
 
! Notes
 
 
  |-
 
  |-
  |rowspan="3"| 0x48
+
  | 9
|rowspan="3"| Play
+
  | Announcements
|rowspan="3"| Client
 
| Collected Entity ID
 
  | VarInt
 
 
  |  
 
  |  
|-
 
| Collector Entity ID
 
| VarInt
 
|
 
|-
 
|style="background-color: #d9ead3;"|Pickup Item Count
 
|style="background-color: #d9ead3;"|VarInt
 
|style="background-color: #d9ead3;"|Seems to be 1 for XP orbs, otherwise the number of items in the stack.
 
|}
 
 
=== Serverbound ===
 
 
==== Chat Message (serverbound) ====
 
 
Used to send a chat message to the server.  The message may not be longer than {{change|100|256}} characters or else the server will kick the client.
 
 
If the message starts with a <code>/</code>, the server will attempt to interpret it as a command.  Otherwise, the server will broadcast the same chat message to all players on the server (including the player that sent the message), prepended with player's name.  Specifically, it will respond with a translate [[chat]] component, "<code>chat.type.text</code>" with the first parameter set to the display name of the player (including some chat component logic to support clicking the name to send a PM) and the second parameter set to the message.
 
 
{| class="wikitable"
 
! Packet ID
 
! State
 
! Bound To
 
! Field Name
 
! Field Type
 
! Notes
 
 
  |-
 
  |-
|rowspan="1"| 0x02
 
|rowspan="1"| Play
 
|rowspan="1"| Server
 
| Message
 
| String
 
| The client sends the raw input, not a [[Chat]] component
 
 
  |}
 
  |}
 
 
== Status ==
 
 
=== Clientbound ===
 
 
No changes so far.
 
  
 
=== Serverbound ===
 
=== Serverbound ===
Line 819: Line 279:
 
No changes so far.
 
No changes so far.
  
== Login ==
+
[[Category:Minecraft Modern]]
 
 
=== Clientbound ===
 
 
 
No changes so far.
 
 
 
=== Serverbound ===
 
 
 
No changes so far.
 

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.