Minecraft Bedrock Dedicated Server Resource Pack / RTX Guide

Minecraft Bedrock with Resource Pack / RTX
Minecraft Bedrock Dedicated Server with RTX Enabled Resource Pack

On December 8th NVIDIA officially released RTX support on Minecraft Bedrock Edition for Windows 10. To use this feature you need to have a resource pack installed.

Fortunately the dedicated server not only supports resource packs, but in this guide I will show you how to set it up so that resource packs are automatically downloaded to your player’s device and activated!

The featured image for this article is not single player. It is running on my Minecraft Bedrock dedicated server

Prerequisites

If you don’t have a Minecraft Bedrock Edition dedicated server already view my automatic setup script and guide first to get one up and running.

You will also need to have a resource pack / packs in mind. For this guide I will use the RTX enabled 512×512 feature pack. This resource pack is available on GitHub for free.

All of these versions support cross-platform play with each other (but not with the Java edition).

Minecraft Bedrock Digital Code
Minecraft Bedrock PC

This is the PC Minecraft for Windows 10 (Bedrock) edition of Minecraft. It is able to play cross-platform with other players on Android / iOS / Playstation / Xbox / Switch. Available as a code that is instantly activated to give you permanent access to the game!

Links: Amazon.com*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.it*

Minecraft Bedrock Playstation
Minecraft Bedrock Playstation

The Sony PlayStation version of Minecraft: Bedrock edition.

Links: Amazon.com*, Amazon.ca*, Amazon.com.au*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.it*, Amazon.nl*, Amazon.se*, Amazon.sg*

Minecraft Bedrock Nintendo Switch
Minecraft Bedrock Nintendo Switch

This is the Nintendo Switch version of Minecraft: Bedrock edition.

Links: Amazon.com*, Amazon.ca*, Amazon.com.au*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.se*, Amazon.sg*

Minecraft Bedrock Xbox One
Minecraft Bedrock Xbox One

This is the Microsoft Xbox version of Minecraft: Bedrock edition.

Links: Amazon.com*, Amazon.ca*, Amazon.com.au*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.it*, Amazon.nl*, Amazon.sg*

Preparing the Resource Pack

Resource packs can be bundled a couple of different ways. The first way is the way that the example we are using in this guide is packaged. It looks like this:

Resource pack folder structure
Resource Pack Example

We have the main folder (Tokomiki_Resource_Pack) that will contain a manifest (manifest.json). If your resource pack looks like this you’re good to go. You can skip to the next step.

The second way that resource packs are often distributed is as one solid .mcpack file. An example of this is NVIDIA’s RTX texture example pack (scroll down to “NVIDIA and Partner Resource Packs” section, they have a few different ones you can play with, the one in this example is the PBR textures).

If your resource pack looks like this and is a .mcpack it is not good to go and we’re going to have to extract the files we want out of it. Fortunately this is very easy. All you have to do is rename it from a .mcpack file to a .zip file. I’m not joking, go ahead and try it:

Resource Pack .mcpack Example
Resource Pack – .mcpack renamed to zip

Perfect, that looks exactly like what we want and our previous example! Go ahead and extract the zip archive into a new folder. It actually doesn’t matter what you name the folder because the pack will be located by UUID so just pick something short and descriptive.

Examine the Manifest

Every resource pack contains a UUID, or a “universally unique identifier”. This is what the server uses to identify which resource pack is which. Your resource pack’s UUID is located in the manifest.json file. Let’s take a look at our 512×512 example pack’s manifest.json:

{
    "format_version": 2,
    "header": {
        "name": "Tokomiki Test Textures 512k",
        "description": "Reducing RTX textures size",
        "uuid": "75a26ecc-8351-11ea-bc55-0242ac130003",
        "version": [ 1, 0, 1 ],
        "min_engine_version": [ 1, 15, 0 ]
    },
    "modules": [
        {
            "type": "resources",
            "uuid": "75a27110-8351-11ea-bc55-0242ac130003",
            "version": [ 1, 0, 1 ]
        }
    ],
    "capabilities" : [
            "raytraced"
    ]
}

There it is. This particular resource pack’s UUID is 75a26ecc-8351-11ea-bc55-0242ac130003. The version is [ 1, 0, 1 ]. Perfect, we’re now ready to configure the dedicated server!

Configuring Dedicated Server for Resource Packs

First we need to copy/upload your resource pack to the server’s “resource_packs” folder:

Resource packs main folder structure
Minecraft Bedrock Edition Server Structure

Your folder’s structure may vary slightly depending on version and whether you are running on Windows or Linux. Either way, you should have this folder. We are going to place the folder of our resource pack here. Usually there will already be a “vanilla” folder and a “chemistry” folder in there that are included with the server. We’re going to add a third folder by coping in our new resource pack like this:

Resource pack individual folder structure
Minecraft Bedrock Dedicated Server – resource_packs Folder Structure

Excellent, there’s just one last step now to enable the resource pack.

Create world_resource_packs.json

First you need to locate the folder on the server that your “world” is stored in. The base folder is just “worlds” but inside there will be another directory inside of it. If you left your server.properties as the default it will likely be “Bedrock level”. If you set a custom “level-name” variable in your server.properties file it should be that. This is your world’s folder.

The final step to enabling our resource pack is to create the world_resource_packs.json file inside our world’s folder you just located. This file is actually created and used on the client side as well when you modify your resource packs (it’s at C:\Users\XyouruserX\AppData\Local\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojang\minecraftWorlds\XyourworldX\world_resource_packs.json).

You can actually use that exact file if you’ve applied the same feature pack you’re trying to install on the server. The format of it is pretty simple though, so it’s a lot easier to just create it yourself.

Go ahead and create a new file called world_resource_packs.txt (if on Linux you can just create it as world_resource_packs.json) and type/paste the following matching the pack_id to your resource pack’s UUID and version from the earlier steps:

[
         {
                 "pack_id" : "75a26ecc-8351-11ea-bc55-0242ac130003",
                 "version" : [ 1, 0, 1 ]
         }
 ]

Now save the file and rename it from world_resource_packs.txt to world_resource_packs.json.

That’s it, now restart the server! Upon connecting new players will now automatically download and apply your feature pack. They do not have to download or install it themselves. It will look like this when they join:

Minecraft Resource Pack Download
Minecraft Resource Pack Download

This download works on all platforms. For example, for this guide I tested connecting with my Android phone to try without using Windows and see if it would still work. When you log on with a platform that doesn’t support RTX they will still see the new textures. They just won’t have the fancy RTX lighting and raytracing but it still looks great compared to vanilla!

Adding Multiple Resource Packs

You can add as many resource packs as you want. Copy the additional resource pack folder to your resource_packs folder by before.

Updating the world_resource_packs.json file is similar to what we did earlier but the JSON syntax can get a little tricky. Here is how you want to format adding multiple entries to world_resource_packs.json:

[
        {
                "pack_id" : "75a26ecc-8351-11ea-bc55-0242ac130003",
                "version" : [ 1, 0, 1 ]
        },
        {
                "pack_id" : "a1673412-cb04-4604-8000-04b6396afe80",
                "version" : [ 0, 9, 0 ]
        }
]

Notice the comma after the closing brace of the first entry. It’s super common to miss it and it is invalid JSON without it. The last entry will NOT have a comma, but if you add a second, third, fourth it will like this:

[
        {
                "pack_id" : "75a26ecc-8351-11ea-bc55-0242ac130003",
                "version" : [ 1, 0, 1 ]
        },
        {
                "pack_id" : "a1673412-cb04-4604-8000-04b6396afe80",
                "version" : [ 0, 9, 0 ]
        },
        {
                "pack_id" : "fake example 1",
                "version" : [ 0, 5, 1 ]
        },
        {
                "pack_id" : "fake example 2",
                "version" : [ 0, 2, 4 ]
        }
]

That’s it! After restarting your server newly connecting players that haven’t downloaded the resource pack yet will see 2 (or more) resource packs queued like this:

Minecraft Resource Pack Download - 2 Entries
Minecraft Resource Pack Download – 2 Entries

Force Resource Pack Using server.properties

The default settings for Minecraft is that connecting players will automatically download and apply the resource packs they need so usually this isn’t necessary. In some cases though you may want to actually force them to use the resource pack. Otherwise they can unload it or load different ones.

There is an option in server.properties that will absolutely force them to use them if you desire. Open your server.properties file and look for these lines:

texturepack-required=false
# Force clients to use texture packs in the current world
# Allowed values: "true" or "false"

Change to true to force texture packs to be used!

Bedrock Server Automatic Deployment Script

Here’s my one-liner to deploy a new Minecraft server on Linux:

curl https://raw.githubusercontent.com/TheRemote/MinecraftBedrockServer/master/SetupMinecraft.sh | bash

See Minecraft Bedrock Edition – Linux Dedicated Server automatic installation/updating/backup script for full breakdown!

More Resources

Minecraft Bedrock Edition Dedicated Server on Raspberry Pi*

guest

37 Comments
Inline Feedbacks
View all comments

Ed Schaller
Ed Schaller
30 days ago

Worth noting that the UUID needs to be the one from the header and not the one from the modules. In your example it is the same UUID in the header section as it is in the modules section. I missed that and the resource pack I was installing has a different UUID in the modules section than the headers.

Nate
Nate
3 months ago

Hello,
After following these directions, I was able to add the resource pack to the server. After the reboot now I get prompted to download the pack on my system as expected. I click to download the 24/MB pack from the server then it just sits there for years at 0.00/MB of 0.00/MB not sure why it never downloads…..

Matt
Matt
9 months ago

Some of the resource packs I’ve downloaded, in the manifest.json file there are “resource” entries.

Here’s an example of one I’m trying to apply:

{
"format_version": 2,
"header": {
"description": "Version: Preview 1.1",
"min_engine_version": [
1,
16,
20
],
"name": "SimonKraft 128",
"uuid": "f9bfc223-59e5-40a6-92af-5c177533504a",
"version": [
0,
0,
1
]
},
"modules": [
{
"description": "Version: Preview 1.1",
"type": "resources",
"uuid": "a96ba1b3-fbc3-4acb-8715-c3cb1a8b4b60",
"version": [
0,
0,
1
]
}
]
}

How would I go about adding this, so that all of the resources are applied?

Matt
Matt
9 months ago

I think I got it figured out. I just included the UUID and Version like in your guide and nothing else and the resource pack loaded up.

Thank you very much for your guides. They were most helpful and very well written. Easy to follow too!

paul isinger
paul isinger
10 months ago

I would like to apply the hardcore pack to a server. After following your instructions, the resource packs seems to work and it loads into each persons computer who signs on. However, it is paired with behavior pack – does that just need to be added by each person individually?

paul isinger
paul isinger
10 months ago
Reply to  paul isinger

FYI – I added the behavior pack to the world as well as its corresponding json file in the worlds folder following the process described in this guide for resource packs but it did not have the same effect.

paul isinger
paul isinger
10 months ago

Thanks for the reply James – really appreciate the effort! I got it working by applying your guide for resources packs to the behavior pack as well. Placed the download in the relevant folder, updated the manifest and placed that in the world folder and rebooted. For those interested I was using this world and now the kids and I can try hardcore mode. Sadly, my one son died in his sweet berry patch.

Stephanie
Stephanie
1 year ago

Hi James,

Thanks for this article! It was exactly what I needed to add the resource pack to our server.

I started a server for my kids and their friends to play in a survival world with the Star Wars resource pack that came from the marketplace. Both my son and daughter own this pack, so it loads automatically for them when they join the server. I never purchased the pack, so when I join I have a choice to download the pack or simply join. If I download the pack, as soon as it’s downloaded and ready to load the world, my Minecraft app crashes. I found that I have to go into the app settings, delete the cache, restart Minecraft and then click “join” without downloading the pack. Then I can play in a vanilla world just fine.

I am wondering how can I enable the “download and join” option to work on the server? I realize the server doesn’t own any items from the marketplace, so it can’t share them with those who join. But if my son or daughter had started the world from their device, I would be able to use the resource pack under their ownership. So it’s frustrating.

I was thinking if I could give the server the ownership credentials of one of my kids then it would share the resource pack. But I don’t know how to do that. Can you help?

Thanks!

bobby
bobby
1 year ago

Hi James and thanks for the script, it really helps a lot. I followed your instructions to add RTX textures which work fine. When I loaded into the game the textures were pulled without issue. However, once the game actually loads, all the textures are black. Do you have any thought on what might cause this? Thx again

Oli
Oli
1 year ago

Thank you for once again, your guide are great! I’ve been trying this with the “Epic Adventures” resource pack, but not having any luck. It came as a .mcpack file, which I’ve unzipped. I’ve copied the folder across to my world, within the resource_packs folder, which now looks like this:

resource_packs
— chemistry
— epic_adventures
— vanilla

The manifest.json file is sitting directly within the epic_adventures folder.

I’ve created world_resource_packs.json directly within the world folder and double checked the entry versus the manifest. My file looks like this:

[
{
"pack_id" : "5a87873c-3522-4f41-be22-841e10b99227",
"version" : [ 1000, 1, 0 ]
}
]

which checks out, per the manifest:

{
"format_version" : 1,
"header" : {
"description" : "By toby109tt",
"name" : "§lEpic Adventures Bedrock Edition",
"uuid" : "5a87873c-3522-4f41-be22-841e10b99227",
"version" : [ 1000, 1, 0 ]
},

I restart the server. I noticed that “valid_known_packs.json” automatically gets updated, which sounds like good news:

{
"file_system" : "RawPath",
"from_disk" : true,
"hashes" : [ "4l4zWbmtlMNCuQcvi1w0a63eMJuJGGX0tQc4ue3OT/8=" ],
"path" : "resource_packs/epic_adventures",
"uuid" : "5a87873c-3522-4f41-be22-841e10b99227",
"version" : "1000.1.0"
},

All looks good to me. However, I restart the client, connect to the world, and no indication that the resource pack is being used – nothing about downloading, and if I go into “Settings > Resource Packs” the only Active pack is “Global Resources”.

Sorry for the HUUUGGEE comment – any thoughts on this one?

Oli
Oli
1 year ago
Reply to  Oli

Soooo, I didn’t read the instructions properly and put the world_resource_packs.json file in the wrong place. DUUHHH!!! Works now – amazing, thank you! 🙂