Difference between revisions of "Bedrock Protocol"

From wiki.vg
Jump to navigation Jump to search
(This was an accident, sorry! Undo revision 15592 by Orladog (talk))
Tag: Undo
(Add some auto-generated data (from the NukkitX protocol))
Line 155: Line 155:
 
  |
 
  |
 
  |}
 
  |}
 +
  
 
==== Client To Server Handshake ====
 
==== Client To Server Handshake ====
Line 178: Line 179:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="3"| 0x05
+
  |rowspan="2"| 0x05
  |rowspan="3"| Client
+
  |rowspan="2"| Client
 
  |Disconnect screen visibility
 
  |Disconnect screen visibility
 
  |boolean
 
  |boolean
Line 198: Line 199:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x06
+
  |rowspan="2"| 0x06
  |rowspan="1"| Client
+
  |rowspan="2"| Client
 +
| Forced To Accept
 +
| boolean
 +
|
 +
|-
 +
| Scripting Enabled
 +
| boolean
 +
|
 
  |}
 
  |}
  
Line 214: Line 222:
 
  |rowspan="1"| Client
 
  |rowspan="1"| Client
 
  |}
 
  |}
 +
  
 
==== Resource Pack Response ====
 
==== Resource Pack Response ====
Line 307: Line 316:
 
  |rowspan="1"| 0x0E
 
  |rowspan="1"| 0x0E
 
  |rowspan="1"| Client
 
  |rowspan="1"| Client
 +
| Unique Entity Id
 +
| long
 +
|
 
  |}
 
  |}
  
Line 331: Line 343:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x11
+
  |rowspan="2"| 0x11
  |rowspan="1"| Client
+
  |rowspan="2"| Client
 +
| Item Runtime Entity Id
 +
| ulong
 +
|
 +
|-
 +
| Runtime Entity Id
 +
| ulong
 +
|
 
  |}
 
  |}
  
Line 372: Line 391:
 
  |rowspan="1"| 0x14
 
  |rowspan="1"| 0x14
 
  |rowspan="1"| Client
 
  |rowspan="1"| Client
 +
| Jump Strength
 +
| int
 +
|
 
  |}
 
  |}
  
Line 396: Line 418:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x16
+
  |rowspan="7"| 0x16
  |rowspan="1"| Client
+
  |rowspan="7"| Client
  |}
+
  | Unique Entity Id
 
+
| long
==== Tick Sync ====
+
  |
 
 
{| class="wikitable"
 
  ! Packet ID
 
! Bound To
 
! Field Name
 
! Field Type
 
! Notes
 
 
  |-
 
  |-
  |rowspan="1"| 0x17
+
  | Runtime Entity Id
  |rowspan="1"| Client
+
| ulong
 +
|
 +
|-
 +
| Position X
 +
| float
 +
  |
 +
|-
 +
| Position Y
 +
| float
 +
|
 +
|-
 +
| Position Z
 +
| float
 +
|
 +
|-
 +
| Direction
 +
| int
 +
|
 +
|-
 +
| Name
 +
| String
 +
|
 
  |}
 
  |}
  
==== Level Sound Event (1) ====
+
==== Tick Sync ====
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 422: Line 458:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x18
+
  |rowspan="2"| 0x17
  |rowspan="1"| Client
+
  |rowspan="2"| Client
 +
| Request Timestamp
 +
| long (little endian)
 +
|
 +
|-
 +
| Response Timestamp
 +
| long (little endian)
 +
|
 
  |}
 
  |}
  
==== Level Event ====
+
==== Level Sound Event (1) ====
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 435: Line 478:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x19
+
  |rowspan="1"| 0x18
 
  |rowspan="1"| Client
 
  |rowspan="1"| Client
 
  |}
 
  |}
  
==== Block Event ====
+
==== Level Event ====
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 448: Line 491:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x1A
+
  |rowspan="1"| 0x19
 
  |rowspan="1"| Client
 
  |rowspan="1"| Client
 
  |}
 
  |}
  
==== Entity Event ====
+
==== Block Event ====
 +
 
 +
{| class="wikitable"
 +
! Packet ID
 +
! Bound To
 +
! Field Name
 +
! Field Type
 +
! Notes
 +
|-
 +
|rowspan="3"| 0x1A
 +
|rowspan="3"| Client
 +
| Block Position
 +
| Position
 +
|
 +
|-
 +
| Event Type
 +
| int
 +
|
 +
|-
 +
| Event Data
 +
| int
 +
|
 +
|}
 +
 
 +
==== Entity Event ====
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 542: Line 609:
 
  |rowspan="1"| Client
 
  |rowspan="1"| Client
 
  |}
 
  |}
 
  
 
==== Block Pick Request ====
 
==== Block Pick Request ====
Line 553: Line 619:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x22
+
  |rowspan="5"| 0x22
  |rowspan="1"| Client
+
  |rowspan="5"| Client
 +
| Block Position X
 +
| int
 +
|
 +
|-
 +
| Block Position Y
 +
| int
 +
|
 +
|-
 +
| Block Position Z
 +
| int
 +
|
 +
|-
 +
| Add User Data
 +
| boolean
 +
|
 +
|-
 +
| Hotbar Slot
 +
| byte
 +
|
 
  |}
 
  |}
  
Line 566: Line 651:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x23
+
  |rowspan="2"| 0x23
  |rowspan="1"| Client
+
  |rowspan="2"| Client
 +
| Runtime Entity Id
 +
| long (little endian)
 +
|
 +
|-
 +
| Hotbar Slot
 +
| byte
 +
|
 
  |}
 
  |}
  
Line 592: Line 684:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x25
+
  |rowspan="3"| 0x25
  |rowspan="1"| Client
+
  |rowspan="3"| Client
 +
| Runtime Entity Id
 +
| ulong
 +
|
 +
|-
 +
| Fall Distance
 +
| float
 +
|
 +
|-
 +
| In Void
 +
| boolean
 +
|
 
  |}
 
  |}
  
Line 607: Line 710:
 
  |rowspan="1"| 0x26
 
  |rowspan="1"| 0x26
 
  |rowspan="1"| Client
 
  |rowspan="1"| Client
 +
| Health
 +
| int
 +
|
 
  |}
 
  |}
  
Line 631: Line 737:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x28
+
  |rowspan="4"| 0x28
  |rowspan="1"| Client
+
  |rowspan="4"| Client
 +
| Runtime Entity Id
 +
| ulong
 +
|
 +
|-
 +
| Motion X
 +
| float
 +
|
 +
|-
 +
| Motion Y
 +
| float
 +
|
 +
|-
 +
| Motion Z
 +
| float
 +
|
 
  |}
 
  |}
  
Line 699: Line 820:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x2D
+
  |rowspan="4"| 0x2D
  |rowspan="1"| Client
+
  |rowspan="4"| Client
 +
| Position X
 +
| float
 +
|
 +
|-
 +
| Position Y
 +
| float
 +
|
 +
|-
 +
| Position Z
 +
| float
 +
|
 +
|-
 +
| Runtime Entity Id
 +
| ulong
 +
|
 
  |}
 
  |}
  
Line 712: Line 848:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x2E
+
  |rowspan="4"| 0x2E
  |rowspan="1"| Client
+
  |rowspan="4"| Client
 +
| Window Id
 +
| byte
 +
|
 +
|-
 +
| Type
 +
| byte
 +
|
 +
|-
 +
| Block Position
 +
| Position
 +
|
 +
|-
 +
| Unique Entity Id
 +
| long
 +
|
 
  |}
 
  |}
  
Line 727: Line 878:
 
  |rowspan="1"| 0x2F
 
  |rowspan="1"| 0x2F
 
  |rowspan="1"| Client
 
  |rowspan="1"| Client
 +
| Window Id
 +
| byte
 +
|
 
  |}
 
  |}
  
Line 738: Line 892:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x30
+
  |rowspan="3"| 0x30
  |rowspan="1"| Client
+
  |rowspan="3"| Client
 +
| Selected Hotbar Slot
 +
| uint
 +
|
 +
|-
 +
| Container Id
 +
| byte
 +
|
 +
|-
 +
| Select Hotbar Slot
 +
| boolean
 +
|
 
  |}
 
  |}
  
Line 777: Line 942:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x33
+
  |rowspan="3"| 0x33
  |rowspan="1"| Client
+
  |rowspan="3"| Client
 +
| Window Id
 +
| byte
 +
|
 +
|-
 +
| Property
 +
| int
 +
|
 +
|-
 +
| Value
 +
| int
 +
|
 
  |}
 
  |}
  
Line 913: Line 1,089:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x3D
+
  |rowspan="5"| 0x3D
  |rowspan="1"| Client
+
  |rowspan="5"| Client
  |}
+
| Dimension
 +
| int
 +
|
 +
|-
 +
| Position X
 +
| float
 +
|
 +
|-
 +
| Position Y
 +
| float
 +
|
 +
|-
 +
| Position Z
 +
| float
 +
|
 +
|-
 +
| Respawn
 +
| boolean
 +
|
 +
  |}
  
 
==== Set Player Game Type ====
 
==== Set Player Game Type ====
Line 972: Line 1,167:
 
  |}
 
  |}
  
==== Spawn Experience Orb====
+
==== Spawn Experience Orb ====
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 981: Line 1,176:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x42
+
  |rowspan="4"| 0x42
  |rowspan="1"| Client
+
  |rowspan="4"| Client
 +
| Position X
 +
| float
 +
|
 +
|-
 +
| Position Y
 +
| float
 +
|
 +
|-
 +
| Position Z
 +
| float
 +
|
 +
|-
 +
| Amount
 +
| int
 +
|
 
  |}
 
  |}
  
Line 1,009: Line 1,219:
 
  |rowspan="1"| 0x44
 
  |rowspan="1"| 0x44
 
  |rowspan="1"| Client
 
  |rowspan="1"| Client
 +
| Unique Map Id
 +
| long
 +
|
 
  |}
 
  |}
  
Line 1,052: Line 1,265:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x47
+
  |rowspan="3"| 0x47
  |rowspan="1"| Client
+
  |rowspan="3"| Client
 +
| Block Position X
 +
| int
 +
|
 +
|-
 +
| Block Position Y
 +
| int
 +
|
 +
|-
 +
| Block Position Z
 +
| int
 +
|
 
  |}
 
  |}
  
Line 1,078: Line 1,302:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x49
+
  |rowspan="2"| 0x49
  |rowspan="1"| Client
+
  |rowspan="2"| Client
 +
| Camera Unique Entity Id
 +
| long
 +
|
 +
|-
 +
| Player Unique Entity Id
 +
| long
 +
|
 
  |}
 
  |}
  
Line 1,134: Line 1,365:
 
  |}
 
  |}
  
==== CommandBlock Update====
+
==== CommandBlock Update ====
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 1,282: Line 1,513:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x57
+
  |rowspan="2"| 0x57
  |rowspan="1"| Client
+
  |rowspan="2"| Client
 +
| Sound Name
 +
| String
 +
|
 +
|-
 +
| Stopping All Sound
 +
| boolean
 +
|
 
  |}
 
  |}
  
Line 1,310: Line 1,548:
 
  |rowspan="1"| 0x59
 
  |rowspan="1"| 0x59
 
  |rowspan="1"| Client
 
  |rowspan="1"| Client
 +
| Behavior Tree Json
 +
| String
 +
|
 
  |}
 
  |}
  
Line 1,334: Line 1,575:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x5B
+
  |rowspan="2"| 0x5B
  |rowspan="1"| Client
+
  |rowspan="2"| Client
 +
| Offer Id
 +
| String
 +
|
 +
|-
 +
| Shown To All
 +
| boolean
 +
|
 
  |}
 
  |}
  
Line 1,388: Line 1,636:
 
  |rowspan="1"| 0x5F
 
  |rowspan="1"| 0x5F
 
  |rowspan="1"| Client
 
  |rowspan="1"| Client
 +
| Address
 +
| String
 +
|
 
  |}
 
  |}
  
Line 1,401: Line 1,652:
 
  |rowspan="1"| 0x60
 
  |rowspan="1"| 0x60
 
  |rowspan="1"| Client
 
  |rowspan="1"| Client
 +
| Entity Type Id
 +
| int
 +
|
 
  |}
 
  |}
  
Line 1,451: Line 1,705:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x64
+
  |rowspan="2"| 0x64
  |rowspan="1"| Client
+
  |rowspan="2"| Client
 +
| Form Id
 +
| uint
 +
|
 +
|-
 +
| Form Data
 +
| String
 +
|
 
  |}
 
  |}
  
==== Model Form Response ====
+
==== Model Form Response ====
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 1,464: Line 1,725:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x65
+
  |rowspan="2"| 0x65
  |rowspan="1"| Client
+
  |rowspan="2"| Client
 +
| Form Id
 +
| uint
 +
|
 +
|-
 +
| Form Data
 +
| String
 +
|
 
  |}
 
  |}
  
Line 1,477: Line 1,745:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x66
+
  |rowspan="0"| 0x66
  |rowspan="1"| Client
+
  |rowspan="0"| Client
 
  |}
 
  |}
  
Line 1,490: Line 1,758:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x67
+
  |rowspan="2"| 0x67
  |rowspan="1"| Client
+
  |rowspan="2"| Client
 +
| Form Id
 +
| uint
 +
|
 +
|-
 +
| Form Data
 +
| String
 +
|
 
  |}
 
  |}
  
Line 1,505: Line 1,780:
 
  |rowspan="1"| 0x68
 
  |rowspan="1"| 0x68
 
  |rowspan="1"| Client
 
  |rowspan="1"| Client
 +
| Xuid
 +
| String
 +
|
 
  |}
 
  |}
  
Line 1,534: Line 1,812:
 
  |rowspan="1"| 0x6A
 
  |rowspan="1"| 0x6A
 
  |rowspan="1"| Client
 
  |rowspan="1"| Client
 +
| Objective Id
 +
| String
 +
|
 
  |}
 
  |}
  
Line 1,545: Line 1,826:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x6B
+
  |rowspan="5"| 0x6B
  |rowspan="1"| Client
+
  |rowspan="5"| Client
 +
| Display Slot
 +
| String
 +
|
 +
|-
 +
| Objective Id
 +
| String
 +
|
 +
|-
 +
| Display Name
 +
| String
 +
|
 +
|-
 +
| Criteria
 +
| String
 +
|
 +
|-
 +
| Sort Order
 +
| int
 +
|
 
  |}
 
  |}
  
Line 1,571: Line 1,871:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x6D
+
  |rowspan="5"| 0x6D
  |rowspan="1"| Client
+
  |rowspan="5"| Client
 +
| Unknown Byte 0
 +
| byte
 +
|
 +
|-
 +
| Block Entity Position X
 +
| int
 +
|
 +
|-
 +
| Block Entity Position Y
 +
| int
 +
|
 +
|-
 +
| Block Entity Position Z
 +
| int
 +
|
 +
|-
 +
| Reaction Type
 +
| byte
 +
|
 
  |}
 
  |}
  
Line 1,625: Line 1,944:
 
  |rowspan="1"| 0x71
 
  |rowspan="1"| 0x71
 
  |rowspan="1"| Client
 
  |rowspan="1"| Client
 +
| Runtime Entity Id
 +
| ulong
 +
|
 
  |}
 
  |}
  
Line 1,649: Line 1,971:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x73
+
  |rowspan="2"| 0x73
  |rowspan="1"| Client
+
  |rowspan="2"| Client
 +
| Timestamp
 +
| long (little endian)
 +
|
 +
|-
 +
| Send Back
 +
| boolean
 +
|
 
  |}
 
  |}
  
Line 1,662: Line 1,991:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x75
+
  |rowspan="2"| 0x75
  |rowspan="1"| Client
+
  |rowspan="2"| Client
 +
| Event Name
 +
| String
 +
|
 +
|-
 +
| Data
 +
| String
 +
|
 
  |}
 
  |}
  
Line 1,675: Line 2,011:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x76
+
  |rowspan="6"| 0x76
  |rowspan="1"| Client
+
  |rowspan="6"| Client
 +
| Dimension Id
 +
| byte
 +
|
 +
|-
 +
| Unique Entity Id
 +
| long
 +
|
 +
|-
 +
| Position X
 +
| float
 +
|
 +
|-
 +
| Position Y
 +
| float
 +
|
 +
|-
 +
| Position Z
 +
| float
 +
|
 +
|-
 +
| Identifier
 +
| String
 +
|
 
  |}
 
  |}
  
Line 1,714: Line 2,073:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x79
+
  |rowspan="4"| 0x79
  |rowspan="1"| Client
+
  |rowspan="4"| Client
 +
| Position X
 +
| int
 +
|
 +
|-
 +
| Position Y
 +
| int
 +
|
 +
|-
 +
| Position Z
 +
| int
 +
|
 +
|-
 +
| Radius
 +
| uint
 +
|
 
  |}
 
  |}
  
Line 1,766: Line 2,140:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x7D
+
  |rowspan="4"| 0x7D
  |rowspan="1"| Client
+
  |rowspan="4"| Client
  |}
+
| Page
 +
| byte
 +
|
 +
|-
 +
| Total Pages
 +
| byte
 +
|
 +
|-
 +
| Block Position
 +
| Position
 +
|
 +
|-
 +
| Dropping Book
 +
| boolean
 +
|
 +
  |}
  
 
==== Video Stream Connect ====
 
==== Video Stream Connect ====
Line 1,794: Line 2,183:
 
  |rowspan="1"| 0x81
 
  |rowspan="1"| 0x81
 
  |rowspan="1"| Client
 
  |rowspan="1"| Client
 +
| Supported
 +
| boolean
 +
|
 
  |}
 
  |}
  
Line 1,818: Line 2,210:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x83
+
  |rowspan="2"| 0x83
  |rowspan="1"| Client
+
  |rowspan="2"| Client
 +
| Original Map Id
 +
| long
 +
|
 +
|-
 +
| New Map Id
 +
| long
 +
|
 
  |}
 
  |}
  
Line 1,861: Line 2,260:
 
  |}
 
  |}
  
==== Client Cache Blob Status====
+
==== Client Cache Blob Status ====
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 1,896: Line 2,295:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x89
+
  |rowspan="2"| 0x89
  |rowspan="1"| Client
+
  |rowspan="2"| Client
 +
| Settings
 +
| String
 +
|
 +
|-
 +
| Unknown 0
 +
| boolean
 +
|
 
  |}
 
  |}
  
Line 1,909: Line 2,315:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x8A
+
  |rowspan="3"| 0x8A
  |rowspan="1"| Client
+
  |rowspan="3"| Client
 +
| Runtime Entity Id
 +
| ulong
 +
|
 +
|-
 +
| Emote Id
 +
| String
 +
|
 +
|-
 +
| Flags
 +
| byte
 +
|
 
  |}
 
  |}
  
Line 1,922: Line 2,339:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x8B
+
  |rowspan="0"| 0x8B
  |rowspan="1"| Client
+
  |rowspan="0"| Client
 
  |}
 
  |}
  
Line 1,935: Line 2,352:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x8C
+
  |rowspan="2"| 0x8C
  |rowspan="1"| Client
+
  |rowspan="2"| Client
 +
| Command
 +
| String
 +
|
 +
|-
 +
| Suppressing Output
 +
| boolean
 +
|
 
  |}
 
  |}
  
Line 1,948: Line 2,372:
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  |rowspan="1"| 0x8D
+
  |rowspan="2"| 0x8D
  |rowspan="1"| Client
+
  |rowspan="2"| Client
 +
| Damage
 +
| byte
 +
|
 +
|-
 +
| Position
 +
| Position
 +
|
 
  |}
 
  |}
  

Revision as of 16:45, 7 May 2020

Remember that this page is a WIP, it is not even added to the Main Page. Come back later to see a more complete page.

Heads up!

This article is about the protocol for the latest stable release of Minecraft Bedrock Edition (1.14.30, protocol 389). See Protocol for the Java Edition Protocol.

This is the Bedrock Edition Protocol Documentation. The Bedrock Edition Protocol uses UDP instead of TCP what is used for the Java Edition.
The Bedrock Edition Client uses RakNet as its protocol library.

The default Bedrock Edition port is 19132

Contents

Data types

Size (bytes) Range Notes
byte 1 0 to 255
boolean 1 0 or 1 A byte treated as boolean, 0 is false but anything greater then that is true
short 2 -32768 to 32767
ushort 2 0 to 65535
int 4 -2147483648 to 2147483647 Signed 32-bit integer
uint 4 0 to 4294967295 Unsigned 32-bit integer
long 8 -2^63 to 2^63-1 Signed 64-bit integer
ulong 8 2^64-1 Unsigned 64-bit integer
float 4 A single-precision 32-bit IEEE 754 floating point number
double 8 A double-precision 64-bit IEEE 754 floating point number
VarInt ≥ 1
≤ 5
-2147483648 and 2147483647
VarLong ≥ 1
≤ 10
-2^63 and 2^63-1
UUID 16 A UUID Encoded as two unsigned 64-bit integers: the most significant 64 bits and the least significant 64 bits


Packet Format

Login process

Packets

Please note that some packet ids are missing, so they don't line up. The following packet ids are missing: 0x10, 0x74, 0x7F, 0x80 (16, 116, 127, 128)

Login

Packet ID Bound To Field Name Field Type Notes
0x01 Client Protocol version int
Chain data JWT String Contains the display name, UUID and XUID
Skin data JWT String

Play Status

Packet ID Bound To Field Name Field Type Notes
0x02 Client

Server To Client Handshake

Packet ID Bound To Field Name Field Type Notes
0x03 Client JWT data JWT String


Client To Server Handshake

Packet ID Bound To Field Name Field Type Notes
0x04 Server

Disconnect

Packet ID Bound To Field Name Field Type Notes
0x05 Client Disconnect screen visibility boolean
Kick message String

Resource Packs info

Packet ID Bound To Field Name Field Type Notes
0x06 Client Forced To Accept boolean
Scripting Enabled boolean

Resource Pack Stack

Packet ID Bound To Field Name Field Type Notes
0x07 Client


Resource Pack Response

Packet ID Bound To Field Name Field Type Notes
0x08 Server

Text

Packet ID Bound To Field Name Field Type Notes
0x09 Client

Set Time

Packet ID Bound To Field Name Field Type Notes
0x0A Client Time int

Start Game

Packet ID Bound To Field Name Field Type Notes
0x0B Client

Add Player

Packet ID Bound To Field Name Field Type Notes
0x0C Client

Add Entity

Packet ID Bound To Field Name Field Type Notes
0x0D Client

Remove Entity

Packet ID Bound To Field Name Field Type Notes
0x0E Client Unique Entity Id long

Add Item Entity

Packet ID Bound To Field Name Field Type Notes
0x0F Client

Take Item Entity

Packet ID Bound To Field Name Field Type Notes
0x11 Client Item Runtime Entity Id ulong
Runtime Entity Id ulong

Move Entity Absolute

Packet ID Bound To Field Name Field Type Notes
0x12 Client

Move Player

Packet ID Bound To Field Name Field Type Notes
0x13 Client

Rider Jump

Packet ID Bound To Field Name Field Type Notes
0x14 Client Jump Strength int

Update Block

Packet ID Bound To Field Name Field Type Notes
0x15 Client

Add Painting

Packet ID Bound To Field Name Field Type Notes
0x16 Client Unique Entity Id long
Runtime Entity Id ulong
Position X float
Position Y float
Position Z float
Direction int
Name String

Tick Sync

Packet ID Bound To Field Name Field Type Notes
0x17 Client Request Timestamp long (little endian)
Response Timestamp long (little endian)

Level Sound Event (1)

Packet ID Bound To Field Name Field Type Notes
0x18 Client

Level Event

Packet ID Bound To Field Name Field Type Notes
0x19 Client

Block Event

Packet ID Bound To Field Name Field Type Notes
0x1A Client Block Position Position
Event Type int
Event Data int

Entity Event

Packet ID Bound To Field Name Field Type Notes
0x1B Client

Mob Effect

Packet ID Bound To Field Name Field Type Notes
0x1C Client

Update Attributes

Packet ID Bound To Field Name Field Type Notes
0x1D Client

Inventory Transaction

Packet ID Bound To Field Name Field Type Notes
0x1E Client

Mob Equipment

Packet ID Bound To Field Name Field Type Notes
0x1F Client

Mob Armor Equipment

Packet ID Bound To Field Name Field Type Notes
0x20 Client

Interact

Packet ID Bound To Field Name Field Type Notes
0x21 Client

Block Pick Request

Packet ID Bound To Field Name Field Type Notes
0x22 Client Block Position X int
Block Position Y int
Block Position Z int
Add User Data boolean
Hotbar Slot byte

Entity Pick Request

Packet ID Bound To Field Name Field Type Notes
0x23 Client Runtime Entity Id long (little endian)
Hotbar Slot byte

Player Action

Packet ID Bound To Field Name Field Type Notes
0x24 Client

Entity Fall

Packet ID Bound To Field Name Field Type Notes
0x25 Client Runtime Entity Id ulong
Fall Distance float
In Void boolean

Hurt Armor

Packet ID Bound To Field Name Field Type Notes
0x26 Client Health int

Set Entity Data

Packet ID Bound To Field Name Field Type Notes
0x27 Client

Set Entity Motion

Packet ID Bound To Field Name Field Type Notes
0x28 Client Runtime Entity Id ulong
Motion X float
Motion Y float
Motion Z float

Set Entity Link

Packet ID Bound To Field Name Field Type Notes
0x29 Client

Set Health

Packet ID Bound To Field Name Field Type Notes
0x2A Client Health int

Set Spawn Position

Packet ID Bound To Field Name Field Type Notes
0x2B Client

Animate

Packet ID Bound To Field Name Field Type Notes
0x2C Client

Respawn

Packet ID Bound To Field Name Field Type Notes
0x2D Client Position X float
Position Y float
Position Z float
Runtime Entity Id ulong

Container Open

Packet ID Bound To Field Name Field Type Notes
0x2E Client Window Id byte
Type byte
Block Position Position
Unique Entity Id long

Container Close

Packet ID Bound To Field Name Field Type Notes
0x2F Client Window Id byte

Player Hotbar

Packet ID Bound To Field Name Field Type Notes
0x30 Client Selected Hotbar Slot uint
Container Id byte
Select Hotbar Slot boolean

Inventory Content

Packet ID Bound To Field Name Field Type Notes
0x31 Client

Inventory Slot

Packet ID Bound To Field Name Field Type Notes
0x32 Client

Container Set Data

Packet ID Bound To Field Name Field Type Notes
0x33 Client Window Id byte
Property int
Value int

Crafting Data

Packet ID Bound To Field Name Field Type Notes
0x34 Client

Crafting Event

Packet ID Bound To Field Name Field Type Notes
0x35 Client

Gui Data Pick Item

Packet ID Bound To Field Name Field Type Notes
0x36 Client

Adventure Settings

Packet ID Bound To Field Name Field Type Notes
0x37 Client

Block Entity Data

Packet ID Bound To Field Name Field Type Notes
0x38 Client

Player Input

Packet ID Bound To Field Name Field Type Notes
0x39 Client

Level Chunk

Packet ID Bound To Field Name Field Type Notes
0x3A Client

Set Commands Enabled

Packet ID Bound To Field Name Field Type Notes
0x3B Client Commands enabled boolean

Set Difficulty

Packet ID Bound To Field Name Field Type Notes
0x3C Client Difficulty int

Change Dimension

Packet ID Bound To Field Name Field Type Notes
0x3D Client Dimension int
Position X float
Position Y float
Position Z float
Respawn boolean

Set Player Game Type

Packet ID Bound To Field Name Field Type Notes
0x3E Client Game mode int

Player List

Packet ID Bound To Field Name Field Type Notes
0x3F Client

Simple Event

Packet ID Bound To Field Name Field Type Notes
0x40 Client

Event

Packet ID Bound To Field Name Field Type Notes
0x41 Client

Spawn Experience Orb

Packet ID Bound To Field Name Field Type Notes
0x42 Client Position X float
Position Y float
Position Z float
Amount int

Map Item Data

Packet ID Bound To Field Name Field Type Notes
0x43 Client

Map Info Request

Packet ID Bound To Field Name Field Type Notes
0x44 Client Unique Map Id long

Request Chunk Radius

Packet ID Bound To Field Name Field Type Notes
0x45 Client Chunk radius int

Chunk Radius Updated

Packet ID Bound To Field Name Field Type Notes
0x46 Client Chunk radius int

ItemFrame Drop Item

Packet ID Bound To Field Name Field Type Notes
0x47 Client Block Position X int
Block Position Y int
Block Position Z int

Game Rules Changed

Packet ID Bound To Field Name Field Type Notes
0x48 Client

Camera

Packet ID Bound To Field Name Field Type Notes
0x49 Client Camera Unique Entity Id long
Player Unique Entity Id long

Boss Event

Packet ID Bound To Field Name Field Type Notes
0x4A Client

Show Credits

Packet ID Bound To Field Name Field Type Notes
0x4B Client

Available Commands

Packet ID Bound To Field Name Field Type Notes
0x4C Client

Command Request

Packet ID Bound To Field Name Field Type Notes
0x4D Client

CommandBlock Update

Packet ID Bound To Field Name Field Type Notes
0x4E Client

Command Output

Packet ID Bound To Field Name Field Type Notes
0x4F Client

Update Trade

Packet ID Bound To Field Name Field Type Notes
0x50 Client

Update Equip

Packet ID Bound To Field Name Field Type Notes
0x51 Client

Resource Pack Data Info

Packet ID Bound To Field Name Field Type Notes
0x52 Client

Resource Pack Chunk Data

Packet ID Bound To Field Name Field Type Notes
0x53 Client

Resource Pack Chunk Request

Packet ID Bound To Field Name Field Type Notes
0x54 Client

Transfer

Packet ID Bound To Field Name Field Type Notes
0x55 Client Address String
Port int

Play Sound

Packet ID Bound To Field Name Field Type Notes
0x56 Client Sound name String
Sound position Position
Volume float
Pitch float

Stop Sound

Packet ID Bound To Field Name Field Type Notes
0x57 Client Sound Name String
Stopping All Sound boolean

Set Title

Packet ID Bound To Field Name Field Type Notes
0x58 Client

Add Behavior Tree

Packet ID Bound To Field Name Field Type Notes
0x59 Client Behavior Tree Json String

Structure Block Update

Packet ID Bound To Field Name Field Type Notes
0x5A Client

Show Store Offer

Packet ID Bound To Field Name Field Type Notes
0x5B Client Offer Id String
Shown To All boolean

Purchase Receipt

Packet ID Bound To Field Name Field Type Notes
0x5C Client

Player Skin

Packet ID Bound To Field Name Field Type Notes
0x5D Client

Sub Client Login

Packet ID Bound To Field Name Field Type Notes
0x5E Client

Automation Client Connect

Packet ID Bound To Field Name Field Type Notes
0x5F Client Address String

Set Last Hurt By

Packet ID Bound To Field Name Field Type Notes
0x60 Client Entity Type Id int

Book Edit

Packet ID Bound To Field Name Field Type Notes
0x61 Client

Npc Request

Packet ID Bound To Field Name Field Type Notes
0x62 Client

Photo Transfer

Packet ID Bound To Field Name Field Type Notes
0x63 Client

Model Form Request

Packet ID Bound To Field Name Field Type Notes
0x64 Client Form Id uint
Form Data String

Model Form Response

Packet ID Bound To Field Name Field Type Notes
0x65 Client Form Id uint
Form Data String

Server Settings Request

Packet ID Bound To Field Name Field Type Notes
0x66 Client

Server Settings Response

Packet ID Bound To Field Name Field Type Notes
0x67 Client Form Id uint
Form Data String

Show Profile

Packet ID Bound To Field Name Field Type Notes
0x68 Client Xuid String

Set Default Game Type

Packet ID Bound To Field Name Field Type Notes
0x69 Client Game mode int

Remove Objective

Packet ID Bound To Field Name Field Type Notes
0x6A Client Objective Id String

Set Display Objective

Packet ID Bound To Field Name Field Type Notes
0x6B Client Display Slot String
Objective Id String
Display Name String
Criteria String
Sort Order int

Set Score

Packet ID Bound To Field Name Field Type Notes
0x6C Client

Lab Table

Packet ID Bound To Field Name Field Type Notes
0x6D Client Unknown Byte 0 byte
Block Entity Position X int
Block Entity Position Y int
Block Entity Position Z int
Reaction Type byte

Update Block Synced

Packet ID Bound To Field Name Field Type Notes
0x6E Client

Move Entity Delta

Packet ID Bound To Field Name Field Type Notes
0x6F Client

Set Scoreboard Identity

Packet ID Bound To Field Name Field Type Notes
0x70 Client

Set Local Player As Initialized

Packet ID Bound To Field Name Field Type Notes
0x71 Client Runtime Entity Id ulong

Update Soft Enum

Packet ID Bound To Field Name Field Type Notes
0x72 Client

Network Stack Latency

Packet ID Bound To Field Name Field Type Notes
0x73 Client Timestamp long (little endian)
Send Back boolean

Script Custom Event

Packet ID Bound To Field Name Field Type Notes
0x75 Client Event Name String
Data String

Spawn Particle Effect

Packet ID Bound To Field Name Field Type Notes
0x76 Client Dimension Id byte
Unique Entity Id long
Position X float
Position Y float
Position Z float
Identifier String

Available Entity Identifiers

Packet ID Bound To Field Name Field Type Notes
0x77 Client

Level Sound Event (2)

Packet ID Bound To Field Name Field Type Notes
0x78 Client

Network Chunk Publisher Update

Packet ID Bound To Field Name Field Type Notes
0x79 Client Position X int
Position Y int
Position Z int
Radius uint

Biome Definition List

Packet ID Bound To Field Name Field Type Notes
0x7A Client

Level Sound Event (3)

Packet ID Bound To Field Name Field Type Notes
0x7B Client

Level Event Generic

Packet ID Bound To Field Name Field Type Notes
0x7C Client

Lectern Update

Packet ID Bound To Field Name Field Type Notes
0x7D Client Page byte
Total Pages byte
Block Position Position
Dropping Book boolean

Video Stream Connect

Packet ID Bound To Field Name Field Type Notes
0x7E Client

Client Cache Status

Packet ID Bound To Field Name Field Type Notes
0x81 Client Supported boolean

On Screen Texture Animation

Packet ID Bound To Field Name Field Type Notes
0x82 Client

Map Create Locked Copy

Packet ID Bound To Field Name Field Type Notes
0x83 Client Original Map Id long
New Map Id long

Structure Template Data Export Request

Packet ID Bound To Field Name Field Type Notes
0x84 Client

Structure Template Data Export Response

Packet ID Bound To Field Name Field Type Notes
0x85 Client

Update Block Properties

Packet ID Bound To Field Name Field Type Notes
0x86 Client

Client Cache Blob Status

Packet ID Bound To Field Name Field Type Notes
0x87 Client

Client Cache Miss Response

Packet ID Bound To Field Name Field Type Notes
0x88 Client

Education Settings

Packet ID Bound To Field Name Field Type Notes
0x89 Client Settings String
Unknown 0 boolean

Emote

Packet ID Bound To Field Name Field Type Notes
0x8A Client Runtime Entity Id ulong
Emote Id String
Flags byte

Multiplayer Settings

Packet ID Bound To Field Name Field Type Notes
0x8B Client

Settings Command

Packet ID Bound To Field Name Field Type Notes
0x8C Client Command String
Suppressing Output boolean

Anvil Damage

Packet ID Bound To Field Name Field Type Notes
0x8D Client Damage byte
Position Position

Completed Using Item

Packet ID Bound To Field Name Field Type Notes
0x8E Client

Network Settings

Packet ID Bound To Field Name Field Type Notes
0x8F Client

Player Auth Input

Packet ID Bound To Field Name Field Type Notes
0x90 Client