# How to Add a Resource Pack to Your Minecraft Bedrock Server (/docs/minecraft-bedrock/add-resource-pack)



import { Step, Steps } from 'fumadocs-ui/components/steps';
import { Files, Folder, File } from 'fumadocs-ui/components/files';

Resource packs change the visual appearance of Minecraft — textures, sounds, models, UI elements, and particle effects. On a dedicated server, you can install a resource pack and optionally force all players to download it when they connect.

> **Marketplace packs won't work.** Paid Minecraft Marketplace resource packs are encrypted and tied to individual accounts. Only free, downloadable resource packs can be installed on a dedicated server.

Where to Find Resource Packs [#where-to-find-resource-packs]

* [MCPEDL](https://mcpedl.com) — largest Bedrock addon/resource pack repository
* [CurseForge Bedrock](https://www.curseforge.com/minecraft-bedrock) — curated packs
* [mcpedl.org](https://mcpedl.org) — mirror/alternative

Resource packs come as `.mcpack` files or `.zip` archives.

Server File Structure [#server-file-structure]

<Files>
  <Folder name="(server root)" defaultOpen>
    <Folder name="resource_packs" defaultOpen>
      <Folder name="my_texture_pack" defaultOpen>
        <File name="manifest.json" />

        <File name="pack_icon.png" />

        <Folder name="textures" />

        <Folder name="sounds" />

        <Folder name="models" />
      </Folder>
    </Folder>

    <Folder name="worlds" defaultOpen>
      <Folder name="Bedrock level" defaultOpen>
        <File name="world_resource_packs.json" />
      </Folder>
    </Folder>
  </Folder>
</Files>

Install a Resource Pack [#install-a-resource-pack]

<Steps>
  <Step>
    Prepare the pack files [#prepare-the-pack-files]

    Download your resource pack. If it's a `.mcpack` file, rename the extension to `.zip` and extract it. You should get a folder with `manifest.json` at the root.

    Open `manifest.json` and note the `header.uuid` and `header.version`:

    ```json
    {
      "format_version": 2,
      "header": {
        "name": "Custom Textures",
        "uuid": "f1e2d3c4-b5a6-7890-cdef-1234567890ab",
        "version": [1, 0, 0]
      },
      "modules": [
        {
          "type": "resources",
          "uuid": "different-uuid",
          "version": [1, 0, 0]
        }
      ]
    }
    ```

    The `modules.type` should be `"resources"` for a resource pack.
  </Step>

  <Step>
    Upload to the server [#upload-to-the-server]

    In the [XGamingServer Panel](https://panel.xgamingserver.com), click **Files** in the sidebar. Navigate to the `resource_packs/` directory in the server root and upload the extracted pack folder.

    {/* Screenshot needed: File Manager showing resource_packs/ directory */}
  </Step>

  <Step>
    Activate the pack in your world [#activate-the-pack-in-your-world]

    Navigate to `worlds/<your-world-name>/` and open (or create) `world_resource_packs.json`. Add your pack:

    ```json
    [
      {
        "pack_id": "f1e2d3c4-b5a6-7890-cdef-1234567890ab",
        "version": [1, 0, 0]
      }
    ]
    ```

    Use the **header UUID** from manifest.json as the `pack_id`.
  </Step>

  <Step>
    Force players to download (optional) [#force-players-to-download-optional]

    Open `server.properties` and set:

    ```properties
    texturepack-required=true
    ```

    With this enabled, players see a download prompt when connecting. If they decline, they're disconnected.
  </Step>

  <Step>
    Restart the server [#restart-the-server]

    Restart from **Console**. Players will see the resource pack applied when they connect.
  </Step>
</Steps>

Multiple Resource Packs [#multiple-resource-packs]

You can stack multiple resource packs. Add them all to `world_resource_packs.json`:

```json
[
  {
    "pack_id": "pack-1-uuid",
    "version": [1, 0, 0]
  },
  {
    "pack_id": "pack-2-uuid",
    "version": [2, 0, 0]
  }
]
```

**Order matters** — the last pack in the list takes priority when multiple packs modify the same texture or model.

How Players Experience It [#how-players-experience-it]

| `texturepack-required` | Player Experience                                                  |
| ---------------------- | ------------------------------------------------------------------ |
| `true`                 | "This server requires a resource pack" prompt. Must accept to join |
| `false` (default)      | "This server has a resource pack" prompt. Can accept or decline    |

Either way, the pack downloads automatically — players don't need to install anything manually.

Troubleshooting [#troubleshooting]

| Problem                               | Fix                                                                                                 |
| ------------------------------------- | --------------------------------------------------------------------------------------------------- |
| Pack not showing for players          | Verify `world_resource_packs.json` has the correct UUID and the pack folder is in `resource_packs/` |
| Textures look default                 | The pack may target a different Bedrock version. Check `min_engine_version` in manifest.json        |
| "Unable to connect" after adding pack | The pack is corrupted or manifest.json is malformed. Validate the JSON syntax                       |
| Pack downloads every time             | Normal — Bedrock re-downloads server packs each session (they're cached but verified)               |

Related Guides [#related-guides]

* [Install Behavior Packs](/docs/minecraft-bedrock/addon-setup)
* [Server Properties Reference](/docs/minecraft-bedrock/server-properties)
