---
title: Resource Pack Push
description: "Play 0x51, server → client."
---

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

Asks the client to download and apply a resource pack identified by UUID, URL and hash. The server can mark it as required and add a prompt message. The client replies with `ResourcePack` status packets (accepted, downloaded, applied, failed, declined); if the pack is required and declined, the client is disconnected.

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

## Fields

| Field | Type | Notes |
|---|---|---|
| `uuid` | UUID |  |
| `url` | String |  |
| `hash` | String |  |
| `forced` | Boolean |  |
| `promptMessage` | Optional |  |

## Send it

```ts
await client.sendPacket("ResourcePackPush", {
  uuid: /* UUID */,
  url: /* String */,
  hash: /* String */,
  forced: /* Boolean */,
  promptMessage: /* Optional */,
});
```

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

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