How to Add Resource Packs and Behavior Packs to Your Minecraft Server

Minecraft Server Management · 2 views · Updated 10 hours ago

Resource Packs vs Behavior Packs

Before we start, here's the difference:

  • Resource Packs (RP) — Change how the game looks: textures, sounds, models, fonts, and UI. Available in both Java and Bedrock editions
  • Behavior Packs (BP) — Change how the game works: mob AI, loot tables, crafting recipes, and game rules. Bedrock Edition only (Java uses Data Packs for similar functionality)
  • Data Packs — Java Edition's equivalent of behavior packs: custom recipes, loot tables, world generation, advancements, and functions

Do I need to separate resource packs and behavior packs? Yes. Many addon downloads come as a single .mcaddon or zip that contains both an RP and a BP inside. You must separate them — the resource pack goes into the resource_packs folder and the behavior pack goes into the behavior_packs folder. They cannot be in the same folder.

Bedrock Edition

Important — uploading pack files into the folders is NOT enough. After uploading, you must also register each pack in a JSON file inside your world folder. Without this step, the server will ignore the packs entirely. This is the most common reason packs don't work.

Step 1: Prepare Your Pack Files

  1. If your download is a .mcaddon file, rename it to .zip and extract it. Inside you'll typically find two folders — one is the resource pack (RP) and the other is the behavior pack (BP). You can tell which is which by opening the manifest.json in each folder and checking the type field: it will say "resources" or "data"
  2. If your download is a single .mcpack, rename it to .zip and extract it. It should contain a manifest.json at its root
  3. If you have separate RP and BP .mcpack files, rename each to .zip and extract them separately

Step 2: Upload to the Correct Folders

In the game panel, go to the Files tab:

  • Upload your resource pack folder into resource_packs/ (create this folder if it doesn't exist)
  • Upload your behavior pack folder into behavior_packs/ (create this folder if it doesn't exist)

Your file structure should look like this:

resource_packs/
  MyAddonRP/
    manifest.json    ← this must be here, not one level deeper
    textures/
    ...

behavior_packs/
  MyAddonBP/
    manifest.json    ← this must be here, not one level deeper
    entities/
    ...

Common mistake: Uploading the zip file itself or having a double-nested folder like resource_packs/MyAddon/MyAddon/manifest.json. The manifest.json must be exactly one level inside the folder.

Step 3: Register Packs in Your World (Required!)

This is the step most people miss. Just putting files in the folders does nothing — you have to tell the server to actually use them.

  1. Open each pack's manifest.json and find the header section. Note the uuid and version values:
    {
      "header": {
        "name": "My Addon RP",
        "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "version": [1, 0, 0]
      }
    }
  2. For resource packs: Navigate to your world folder (e.g., worlds/Bedrock level/ or just world/) and open or create a file called world_resource_packs.json. Add:
    [
      {
        "pack_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "version": [1, 0, 0]
      }
    ]
    Replace the UUID and version with the actual values from your resource pack's manifest.json.
  3. For behavior packs: In the same world folder, open or create world_behavior_packs.json. Add:
    [
      {
        "pack_id": "x9y8z7w6-v5u4-3210-fedc-ba0987654321",
        "version": [1, 0, 0]
      }
    ]
    Replace the UUID and version with the actual values from your behavior pack's manifest.json.

If you have multiple packs, add them as separate objects in the same array, separated by commas:

[
  { "pack_id": "first-pack-uuid", "version": [1, 0, 0] },
  { "pack_id": "second-pack-uuid", "version": [1, 0, 0] }
]

Step 4: Restart the Server

Go to the Console tab and restart the server. Watch the console output — you should see messages about loading the packs. If you see errors, check the Troubleshooting section below.

Java Edition

Adding a Server Resource Pack (Java)

Java Edition servers can suggest a resource pack that players automatically download when joining. The pack must be hosted as a direct download URL.

  1. Upload your resource pack .zip file to a public file host (e.g., Dropbox, Google Drive, or your own web server). You need a direct download link
  2. In the game panel, go to Files and open server.properties
  3. Set these values:
    • resource-pack=https://your-direct-download-url.com/pack.zip
    • resource-pack-sha1= (the SHA-1 hash of your .zip file — this verifies the download)
    • require-resource-pack=true (optional — forces players to accept or be disconnected)
  4. Save and restart the server

Tip: To get the SHA-1 hash, use an online SHA-1 calculator or run sha1sum pack.zip in a terminal. If you skip this, players may re-download the pack every time they join.

Important: Dropbox links must end in ?dl=1 (not ?dl=0). Google Drive links need to be converted to a direct download format.

Adding Data Packs (Java)

Data packs are Java's way of modifying game behavior without mods.

  1. Download or create your data pack (it will be a .zip file containing a pack.mcmeta and a data folder)
  2. In the game panel, navigate to Files → your world folder (usually world) → datapacks
  3. Upload the .zip file into the datapacks folder
  4. Either restart the server, or run /reload in the console
  5. Verify with /datapack list — your pack should appear as enabled

Popular data pack sources:

Troubleshooting

  • "I uploaded the packs but nothing changed" — Did you create the world_resource_packs.json and/or world_behavior_packs.json files? Uploading to the folders alone is not enough — you must register each pack in these JSON files
  • Wrong folder structure (Bedrock) — The manifest.json must be directly inside the pack folder: resource_packs/MyPack/manifest.json. If it's nested deeper like resource_packs/MyPack/MyPack/manifest.json, move the contents up one level
  • "Invalid pack" or JSON errors — The world_resource_packs.json or manifest.json might have a typo. Copy the UUID carefully. Validate JSON at jsonlint.com
  • Packs not applying after restart — Check the console for error messages. Common cause: duplicate UUIDs across packs, or the world folder name doesn't match where you placed the JSON files
  • Pack not showing up (Java) — Make sure the URL is a direct download link. Test it by pasting it in your browser — it should immediately start downloading a .zip file
  • Resource pack too large (Java) — Java servers have a default limit. Very large packs (100MB+) may fail to download for players with slow connections

Note: Custom pack installation falls under our unmanaged server policy. We're happy to help with basic setup, but for pack-specific issues, refer to the pack creator's documentation.

Still need help?

Create a Support Ticket

Related Articles