---
title: Explode
description: "Play 0x24, server → client."
---

`play` · `0x24` · **clientbound** (server → client)

Tells the client that an explosion happened at `center` with the given `radius`, optional knockback for the player, an explosion particle, and a sound. Since 1.21.2 the server sends the block changes separately, so `blockCount` is usually zero. The client plays the particle and sound and applies the knockback to itself.

Sent by the server, read by the client. Listen for it with `client.on("Explode", (data) => …)` on the receiving side.

## Fields

| Field | Type | Notes |
|---|---|---|
| `center` | vec3f64 |  |
| `radius` | Float |  |
| `blockCount` | Int |  |
| `playerKnockback` | Optional |  |
| `explosionParticle` | [Particle](/docs/particles) |  |
| `sound` | ItemSoundHolder |  |
| `blockParticles` | Array |  |

## Send it

```ts
await client.sendPacket("Explode", {
  center: /* vec3f64 */,
  radius: /* Float */,
  blockCount: /* Int */,
  playerKnockback: /* Optional */,
  explosionParticle: /* Particle */,
  sound: /* ItemSoundHolder */,
  blockParticles: /* Array */,
});
```

Field aliases listed under Notes are accepted as alternative keys when writing.

Source: [`src/Core/Versions/776/Packets/play/clientbound/Explode.ts`](https://github.com/GDLev/mc-protocol/blob/master/src/Core/Versions/776/Packets/play/clientbound/Explode.ts)
