Categories
How to Add Resource Packs and Behavior Packs to Your Minecraft Server
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
- If your download is a
.mcaddonfile, rename it to.zipand 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 themanifest.jsonin each folder and checking thetypefield: it will say"resources"or"data" - If your download is a single
.mcpack, rename it to.zipand extract it. It should contain amanifest.jsonat its root - If you have separate RP and BP
.mcpackfiles, rename each to.zipand 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.
- Open each pack's
manifest.jsonand find theheadersection. Copy theuuidandversionvalues from there:{ "header": { "name": "My Addon RP", "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", ← use THIS uuid "version": [1, 0, 0] }, "modules": [ { "uuid": "00000000-1111-2222-3333-444444444444", ← NOT this one "version": [1, 0, 0], "type": "resources" } ] }Critical: A manifest has two UUIDs — one in
headerand one inmodules. The world JSON only acceptsheader.uuid. Usingmodules.uuidis the #1 reason packs silently fail to load. - For resource packs: Navigate to your world folder (e.g.,
worlds/Bedrock level/or justworld/) and open or create a file called world_resource_packs.json. Add:
Replace the UUID and version with the actual values from your resource pack's[ { "pack_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "version": [1, 0, 0] } ]manifest.json. - For behavior packs: In the same world folder, open or create world_behavior_packs.json. Add:
Replace the UUID and version with the actual values from your behavior pack's[ { "pack_id": "x9y8z7w6-v5u4-3210-fedc-ba0987654321", "version": [1, 0, 0] } ]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.
What success looks like: When a player joins the server, they should see a "Downloading Resource Pack" screen before they reach the world. If they join straight into the world with no download prompt, the pack is not registered correctly — go back to Step 3 and verify the JSON file.
Optional: Force Players to Download the Pack
By default, Bedrock players can choose to skip the pack download. If you want to require it, open server.properties in the Files tab and set:
texturepack-required=true
true— players who cannot or refuse to download the pack will be unable to connectfalse(default) — the pack is offered but optional; players can join either way
Restart the server after changing this value.
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.
- Upload your resource pack
.zipfile to a public file host (e.g., Dropbox, Google Drive, or your own web server). You need a direct download link - In the game panel, go to Files and open server.properties
- Set these values:
resource-pack=https://your-direct-download-url.com/pack.zipresource-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)
- 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.
- Download or create your data pack (it will be a
.zipfile containing apack.mcmetaand adatafolder) - In the game panel, navigate to Files → your world folder (usually
world) → datapacks - Upload the
.zipfile into thedatapacksfolder - Either restart the server, or run
/reloadin the console - Verify with
/datapack list— your pack should appear as enabled
Popular data pack sources:
- Vanilla Tweaks — curated quality-of-life datapacks
- Modrinth — community data packs
- Planet Minecraft — user-submitted data packs
Troubleshooting
- "I uploaded the packs but nothing changed" — Did you create the
world_resource_packs.jsonand/orworld_behavior_packs.jsonfiles? Uploading to the folders alone is not enough — you must register each pack in these JSON files - Wrong folder structure (Bedrock) — The
manifest.jsonmust be directly inside the pack folder:resource_packs/MyPack/manifest.json. If it's nested deeper likeresource_packs/MyPack/MyPack/manifest.json, move the contents up one level - "Invalid pack" or JSON errors — The
world_resource_packs.jsonormanifest.jsonmight have a typo. Copy the UUID carefully. Validate JSON at jsonlint.com - Used the wrong UUID — If you copied the UUID from the
modulesarray instead ofheader, the server will silently skip the pack. Re-check Step 3 and make sure you usedheader.uuid - "I renamed the pack folder but it still doesn't work" — The folder name is just for your own organization. The server identifies the pack by
header.uuidinsidemanifest.json. Renaming the folder changes nothing — you have to register the UUID inworld_resource_packs.jsonorworld_behavior_packs.json - JSON file is missing the array brackets — The world JSON file must be a JSON array, even with only one pack. The whole content has to be wrapped in
[ ... ], not just{ ... } - File saved in the wrong place —
world_resource_packs.jsonandworld_behavior_packs.jsonmust be inside the world folder (e.g.worlds/Bedrock level/), not at the server root. The filename is also case-sensitive — lowercase, with underscores, ending in.json - 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
.zipfile - 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