Difference between revisions of "Object Data"

From wiki.vg
Jump to navigation Jump to search
m (This should've been updated to spawn entity a while ago.)
(Updated this severely outdated page to the latest version)
Line 3: Line 3:
 
In some cases, the data field has no meaning, but is only used to indicate presence of velocity.  In others, it (and velocity) is always ignored.
 
In some cases, the data field has no meaning, but is only used to indicate presence of velocity.  In others, it (and velocity) is always ignored.
  
== Item (id 2) ==
+
== Item Frame ==
 
 
The int value is ignored, but should be set to <code>1</code> to indicate that velocity is present.
 
 
 
== Minecarts (id 10) ==
 
 
 
The int value itself specifies the minecart's functionality:
 
 
 
{| class="wikitable"
 
|-
 
! Value
 
! Minecart functionality
 
|-
 
| 0
 
| Empty (ride-able) minecart
 
|-
 
| 1
 
| Chest minecart
 
|-
 
| 2
 
| Furnace (powered) minecart
 
|-
 
| 3
 
| TNT minecart
 
|-
 
| 4
 
| Spawner minecart
 
|-
 
| 5
 
| Hopper minecart
 
|-
 
| 6
 
| Command Block minecart
 
|}
 
 
 
== Item Frame (id 71) ==
 
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 67: Line 32:
 
Velocity in the packet is always ignored.
 
Velocity in the packet is always ignored.
  
== Falling Block (id 70) ==
+
== Falling Block ==
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 73: Line 38:
 
  ! Field name
 
  ! Field name
 
  ! Field type
 
  ! Field type
! Example
 
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  | Block type
+
  | Block state ID
 
  | Int
 
  | Int
  | <code>12</code>
+
  | ID of the block state that the falling block will represent.
| <code><nowiki>BlockID | (Metadata << 12)</nowiki></code>
 
 
  |}
 
  |}
  
 
Velocity in the packet is always ignored.
 
Velocity in the packet is always ignored.
  
== Fishing Float (id 90) ==
+
== Fishing Float ==
  
 
{| class="wikitable"
 
{| class="wikitable"
 
  ! Field name
 
  ! Field name
 
  ! Field type
 
  ! Field type
! Example
 
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
 
  | Owner
 
  | Owner
 
  | Int
 
  | Int
|
 
 
  | The entity ID of the owner
 
  | The entity ID of the owner
 
  |}
 
  |}
Line 102: Line 63:
 
{{Need Info|What's the exact algorithm for determining this?}}
 
{{Need Info|What's the exact algorithm for determining this?}}
  
== Arrow (id 60) and Spectral Arrow (id 91) ==
+
== Projectile ==
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 108: Line 69:
 
  ! Field name
 
  ! Field name
 
  ! Field type
 
  ! Field type
! Example
 
 
  ! Notes
 
  ! Notes
 
  |-
 
  |-
  | Entity ID
+
  | Owner ID
 
  | Int
 
  | Int
| <code>64</code>
+
  | The entity ID of the owner
  | The entity ID of the shooter + 1 (Subtract 1 to get the actual entity ID)
 
 
  |}
 
  |}
 
== Llama spit (id 68) ==
 
 
Velocity is always used even though the data field is always 0.
 
 
== Fireball (id 63), small fireball (id 64), dragon fireball (id 93), and wither skull (id 66) ==
 
 
The data field stores the ID of the shooting entity, or 0 if there was no shooting entity.  Velocity is used even if data is set to 0.
 
 
== Shulker bullet (id 67) ==
 
 
Velocity is always used even though the data field is always 0.
 
 
== Potion (id 73) ==
 
 
Velocity in the packet is always ignored.
 
 
== EXP bottle (id 75) ==
 
 
Velocity in the packet is always ignored.
 
  
 
[[Category:Protocol Details]]
 
[[Category:Protocol Details]]
 
[[Category:Minecraft Modern]]
 
[[Category:Minecraft Modern]]

Revision as of 11:01, 13 November 2021

This article documents the Data field in the Spawn Entity packet. The field is of type Int, and the meaning of its contents depend on the type of object being spawned, as defined in the Type field of the same packet, and is documented below.

In some cases, the data field has no meaning, but is only used to indicate presence of velocity. In others, it (and velocity) is always ignored.

Item Frame

Value Orientation
0 Down
1 Up
2 North
3 South
4 West
5 East

You have to set both Orientation and Yaw/Pitch accordingly, otherwise it will not work.

Velocity in the packet is always ignored.

Falling Block

Field name Field type Notes
Block state ID Int ID of the block state that the falling block will represent.

Velocity in the packet is always ignored.

Fishing Float

Field name Field type Notes
Owner Int The entity ID of the owner

Velocity in the packet is ignored, and instead should be inferred from the shooter's position.

Huh.png The following information needs to be added to this page:
What's the exact algorithm for determining this?

Projectile

Field name Field type Notes
Owner ID Int The entity ID of the owner