0x0E S0EPacketSpawnObject
Spawns a non-living entity: item drop, boat, minecart, arrow, fireball, ender pearl, armor stand, etc.
Fields
| Field | Type | Description |
|---|---|---|
| entityId | VarInt | Entity ID |
| type | unsigned byte | Entity type ID from EntityList (63=fireball, 64=smallFireball, 2=itemDrop, 1=boat) |
| x/y/z | fixed-point int | Position × 32 |
| pitch/yaw/headPitch | byte | Rotations × 256/360 |
| velocityX/Y/Z | short | Velocity × 8000 |
| metadata | DataWatcher | Entity metadata |
Wire Encoding
| Field | Type | Notes |
|---|---|---|
| Entity ID | VarInt | |
| Type | Unsigned Byte | EntityList ID |
| X | Int | x * 32 |
| Y | Int | y * 32 |
| Z | Int | z * 32 |
| Yaw | byte | yaw * 256/360 |
| Pitch | byte | pitch * 256/360 |
| Head Pitch | byte | |
| Velocity X | short | |
| Velocity Y | short | |
| Velocity Z | short | |
| Metadata | DataWatcher |
MCP References
NetHandlerPlayClient.handleSpawnObject()Handler Interface
INetHandlerPlayClientNotes
implementation Implementation Cases
Track spawned objects (arrows, fireballs, falling blocks, armor stands, etc.) for ESP, projectile simulation, and bot detection. AntiFireball attacks fireball entities.
// AntiFireball — attack fireballs
if (event.getPacket() instanceof S0EPacketSpawnObject) {
S0EPacketSpawnObject s0e = (S0EPacketSpawnObject) event.getPacket();
if (s0e.func_148993_l() == 63) // fireball type
mc.thePlayer.sendQueue.addToSendQueue(new C02PacketUseEntity(entity, Action.ATTACK));
}
// AntiBot — filter fake entities
if (s0e.func_148993_l() == 73) { // armor stand
if (isBot(s0e)) return; // filter
}Track spawned objects (arrows, fireballs, falling blocks, armor stands, etc.) for ESP, projectile simulation, and bot detection. AntiFireball attacks fireball entities.
// AntiFireball — attack fireballs
if (event.getPacket() instanceof S0EPacketSpawnObject) {
S0EPacketSpawnObject s0e = (S0EPacketSpawnObject) event.getPacket();
if (s0e.func_148993_l() == 63) // fireball type
mc.thePlayer.sendQueue.addToSendQueue(new C02PacketUseEntity(entity, Action.ATTACK));
}
// AntiBot — filter fake entities
if (s0e.func_148993_l() == 73) { // armor stand
if (isBot(s0e)) return; // filter
}Track spawned objects (arrows, fireballs, falling blocks, armor stands, etc.) for ESP, projectile simulation, and bot detection. AntiFireball attacks fireball entities.
// AntiFireball — attack fireballs
if (event.getPacket() instanceof S0EPacketSpawnObject) {
S0EPacketSpawnObject s0e = (S0EPacketSpawnObject) event.getPacket();
if (s0e.func_148993_l() == 63) // fireball type
mc.thePlayer.sendQueue.addToSendQueue(new C02PacketUseEntity(entity, Action.ATTACK));
}
// AntiBot — filter fake entities
if (s0e.func_148993_l() == 73) { // armor stand
if (isBot(s0e)) return; // filter
}Track spawned objects (arrows, fireballs, falling blocks, armor stands, etc.) for ESP, projectile simulation, and bot detection. AntiFireball attacks fireball entities.
// AntiFireball — attack fireballs
if (event.getPacket() instanceof S0EPacketSpawnObject) {
S0EPacketSpawnObject s0e = (S0EPacketSpawnObject) event.getPacket();
if (s0e.func_148993_l() == 63) // fireball type
mc.thePlayer.sendQueue.addToSendQueue(new C02PacketUseEntity(entity, Action.ATTACK));
}
// AntiBot — filter fake entities
if (s0e.func_148993_l() == 73) { // armor stand
if (isBot(s0e)) return; // filter
}Track spawned objects (arrows, fireballs, falling blocks, armor stands, etc.) for ESP, projectile simulation, and bot detection. AntiFireball attacks fireball entities.
// AntiFireball — attack fireballs
if (event.getPacket() instanceof S0EPacketSpawnObject) {
S0EPacketSpawnObject s0e = (S0EPacketSpawnObject) event.getPacket();
if (s0e.func_148993_l() == 63) // fireball type
mc.thePlayer.sendQueue.addToSendQueue(new C02PacketUseEntity(entity, Action.ATTACK));
}
// AntiBot — filter fake entities
if (s0e.func_148993_l() == 73) { // armor stand
if (isBot(s0e)) return; // filter
}