Tutorials/Creating a resource pack

From Minecraft Wiki
Jump to: navigation, search
This article is about creating resource packs for Java Edition. For Bedrock Edition add-ons, see Tutorials/Creating resource pack add-ons.
Information icon.svg
This feature is exclusive to Java Edition.
Cleanup.svg
This article may need cleanup to comply with the style guide. [discuss]
Please help the Minecraft Wiki clean up this page if you can.
The talk page may contain suggestions.

Getting started[edit]

Note: This tutorial should take around 1 hour to 1 hour and 30 minutes to complete.

Resource packs can modify textures, models, animations, music, sounds, user interfaces, and languages.

What not to do[edit]

There are some things that you should not do before creating a resource pack. Here is a list of "don'ts":

  • Anything that violates Mojang Studios' terms of use for Minecraft.
  • Release versions or modifications that allow players to play without having bought Minecraft from Mojang.
  • Release the decompiled source code of Minecraft in any way.

Creating a resource pack[edit]

.

The first thing we need to do is create a pack.mcmeta file. This lets Minecraft know that the folder is a resource pack and it also allows you to customize the description that appears when you're selecting which resource pack to use in the game.

Creating an MCMETA file[edit]

To create an MCMETA file, right click the Tutorial_Resource_Pack folder and create a new text document. Name this file pack.mcmeta.

Note: Make sure the file extension is .mcmeta and not .txt when you rename it. You may be warned that changing a file name extension could make the file unusable. This is okay! You can still open this file in a text editor; on Windows: select it by left

pack.mcmeta[edit]

Open pack.mcmeta in a text editor of your choice and type or copy the following:

{
  "pack": {
    "pack_format": 6,
    "description": "Tutorial Resource Pack"
  }
}
"pack_format"[edit]

If you are using an older version, you'll need to replace the 6 after "pack_format" depending on your Minecraft version.

Note that this tutorial assumes that you are creating your resource pack in the latest version of Minecraft, meaning that your resource pack might not work in an older version.

"pack_format" requires:

(In pack format 3 and higher (1.11 and higher) all of the file names in the resource pack should have lowercase letters only)

"description"[edit]

You can leave the description or you can change it to something more exciting. If you decide you need something with fancy characters, you can look up the code for it here. Say you want to use the letter thorn: Þ. You'd put that in as \u00DE. Just make sure you use a backslash and not a forward slash. (Only the characters 0000-FFFF (BMP) are supported in Minecraft.)

Note: This file is written in JSON! Be very careful not to forget quotation marks, colons, and curly brackets "{ }" or brackets "[ ]". Missing one of these can lead to your resource pack not working correctly!

Testing your Pack[edit]

Now we are ready to test it out in game! Launch Minecraft and open the options, then click on Resource Packs. Your game should look something like this if you used the above code:

TestingJavaPack.png

Troubleshooting[edit]

If you don't see your pack in the list, make sure your pack.mcmeta file is correct and saved. Look for any missing curly brackets {}, commas ,, colons :, quotation marks "", or square brackets []. Remember that for each open brace, quotation, or square bracket, you must have a closing bracket, quotation, or square brackets.

Pack icon[edit]

If an icon is not specified, a cobblestone icon will show up next to the pack. Any PNG image can be used here, as long as it is called pack.png and placed directly in your resource pack folder. The file should be 128×128 pixels for your custom image to render properly, but will work with any square resolution.

Adding content[edit]

Requirements[edit]

File archiver[edit]

To get the default textures Minecraft uses, you'll need to extract the client.jar file of your game version. To do this, you'll need a file archiver. Recommended archivers would include 7-Zip or WinRAR.

Image editor[edit]

Before you can edit textures, you'll need an image editor. Any editor should work, but recommended is an editor which supports transparency (e.g. paint.net). With these editors you can add invisible pixels to your texture.

Modifying an Entity's texture[edit]

Now that you have your resource pack set up, let's modify the creeper's texture!

However, before we can do some painting, we need to set up the folder structure that Minecraft expects resource packs to be in.

First of all, you'll need the vanilla resource pack to get the textures you want to edit. To find it, navigate to .minecraft/versions/your Minecraft version and extract the JAR file with a file archiver. In the new folder locate assets/minecraft/textures/entity/creeper/creeper.png.

Now you'll have to set up the folder structure of your resource pack.

  1. Create a folder named assets in your Tutorial_Resource_Pack folder.
  2. Inside assets, create a folder called minecraft.
  3. Inside minecraft, create a folder called textures.
  4. Inside textures, create a folder called entity.
  5. Inside entity, create a folder called creeper.
  6. Copy the creeper texture from the vanilla resource pack into your newly created creeper folder.

Now that we have the normal creeper texture, open it up in the image editor of your choice. It should look something like this:

CreeperTexture1.png

You might notice your texture looking small, make sure to zoom in on the texture. In paint.net you can control magnification in the bottom right hand corner of the window with the slider.

CreeperTexture2.png
A quick note on textures

If you've never seen a texture before, the above image might surprise you. The best way to think about it is like wrapping a gift with wrapping paper, but instead of wrapping paper is a texture and the gift is the creeper. Here is how the creeper's texture is laid out:

TextureLayoutMap.png
Image Key
Top Top of cube
Bot Bottom of cube
Left Left side
Frnt Front side
Rt Right side
Bck Back side

Areas with matching colors face the same direction (e.g. Red areas are always the front of a cube).

How this looks in game:

Howthislooksingame.jpg

Now it's time to be creative! Edit the creeper however you want. We're just going to add a headband for sake of simplicity.

Creeperheadband.png

Once you are happy with your texture, save out the file as a .png and make sure that the file name is creeper. The game will only look for files with the correct name.

Modeling Blocks/Items[edit]

Main article: Model

Sometimes you may want to change one of the Minecraft models. Here is a quick and easy way on how to do it.

Requirements[edit]

  • A 3D Modeling Editor like Blockbench. You can use other modeling editors but it is recommended to use this because it is easier to use and can export to .json format.
  • A ZIP viewer like 7-Zip for Windows. Other ZIP viewers can be used but this can view JAR files as well.

Replacing a Block[edit]

Because the default ladder in Minecraft isn't 3D, you can replace it with your own model. First, get all the ladder's files into this resource pack:

  1. Open the Minecraft JAR file using a ZIP viewer of your choice.
  • Navigate into the assets/minecraft/blockstates folder, then extract ladder.json to Tutorial_Resource_Pack/assets/minecraft/blockstates
  • Navigate into the assets/minecraft/models/block folder, then extract ladder.json to Tutorial_Resource_Pack/assets/minecraft/models/block
  • Navigate into the assets/minecraft/models/item folder, then extract ladder.json to Tutorial_Resource_Pack/assets/minecraft/models/item
  • Lastly, navigate into the assets/minecraft/textures/block folder, then extract ladder.png to Tutorial_Resource_Pack/assets/minecraft/textures/block.

Now you can either edit the ladder.png using your preferred image editor, or you can edit it in your preferred modeling editor.

Modeling the Ladder[edit]

In modeling the ladder, we will use the recommended Blockbench. To open it, simply double-click it. After it has opened, press Ctrl+O to open the ladder model. After the open dialog has appeared, go to the location where you saved minecraft/models/block/ladder.json and double click.

You then should be facing a ladder which is on the south side of the box.

  • On the menu bar, go to "Edit -> Add Cube" to create a new block.
  • Resize the model to a full sized cube. Then, under Textured on the left panel right click ladder.png, then click Apply to Untextured Faces.
  • In the top left, there will be an image of the ladder, with a 1×1 highlighted region. Move this to change the texture to what you want it to be. Repeat until all sides of the block are as wanted.
  • Go to "File -> Save Model" and save in resourcepacks/Tutorial_Resource_Pack/assets/minecraft/models/block/ladder.json (Replace "block" with "blocks" for 1.12 and below).

Now we have created a new model for the ladder block.

Finishing off[edit]

When you have completed the 3D model of the ladder and saved it, launch Minecraft, and test it out. Place a ladder on a wall, and you should see its replaced model.

Custom music and sounds[edit]

This section is missing information about Changing subtitles of sounds, adding subtitles to existing sounds without them.
Please expand the section to include this information. Further details may exist on the talk page.

You can change or add new music using a resource pack.

Changing music[edit]

In this example, you will learn how to change the boss music in the ender dragon fight.

Finding a sound's path[edit]

If you want to change sounds, you'll first need to know the path of the sound you want to change.

  1. Inside your .minecraft folder, navigate to assets/indexes.
  2. Find the .json file corresponding to your Minecraft version (e.g. 1.16.json), and open it with a text editor.
  3. In this file you can find all the sounds found in Minecraft. Press CTRL + F to search for your sound.
    • For a list of filenames for music, you can check Music#List
  4. Your sound path will look something like this: minecraft/sounds/music/game/end/boss.ogg
Modifying the sound[edit]
  1. Inside your resource pack folder, navigate to assets/minecraft.
  2. Create a new folder named sounds.
  3. Now inside your sounds folder, you need to create new folders depending on your sound's path. For example, if your path is minecraft/sounds/music/game/end/boss.ogg, you need to create the folders sounds/music/game/end.
  4. In the last folder (in this example, it's end) you can put in your new sound file. Make sure you named the file to the file that you're replacing, or in this example, boss.ogg.
    • Note that this file must be a .ogg file. To convert your sound file to a .ogg file, you can use the free website Online-Convert.com
Testing your sound[edit]

If everything went according to plan, you have now replaced a sound in Minecraft. To test it:

  1. Make sure you have enabled your resource pack.
    • If you already had Minecraft open with your resource pack enabled, you can press F3 + T to reload all resource packs.
  2. Use the /playsound command to play your sound. In our example, type: /playsound minecraft:music.dragon master @s

Adding new sounds or music[edit]

Iron Pickaxe JE3 BE2.png
This section is a work in progress.
Please help in the creation of this article by expanding or improving it.
The talk page may contain suggestions.

In this example, a new player hurt sound can be added without replacing any of the current player hurt sounds.

Finding the location of the sounds[edit]

In order to add a sound, you'll need to know where it should actually go by determining its path. Unlike replacing sounds, you will go straight to your resource pack folder and search in there.

  1. Inside your .minecraft folder, navigate to assets/indexes.
  2. Find the .json file corresponding to your Minecraft version (e.g. 1.16.json), and open it.
  3. Press CTRL + F to search for your sound path.
    • In this case, the location for the player hurt sounds will look like this: minecraft/sounds/damage/.
Adding the folders and sound in your resource pack[edit]
  1. Inside your resource pack folder, navigate to assets/minecraft.
  2. Create a new folder named sounds.
  3. Create another sub-folder. Its name will depend on the path's name that you found. So in this case, in your sounds folder, create a folder named damage.
  4. Add your sound here.
    • Note that the sound must be a .ogg file. Like in the previous section, you may use the free website Online-Convert.com.
    • Also note the already existing files seen in your .json file from above. In this case, five other hurt sounds exist within the minecraft/sounds/damage/ folder, two for falling at different heights (fallbig.ogg and fallsmall.ogg) and the other three are when the player actually gets hurt (hit1.ogg, hit2.ogg, and hit3.ogg) Since we want to add a fourth sound to the existing three hurt sounds, we cannot reuse those file names. For simplicity, name your sound hit4.ogg.
Creating the sounds.json file[edit]

Because we are adding a sound, we must define where it will be used in sounds.json.

  1. Go back to assets/minecraft in your resource pack folder.
  2. Create a text file named sounds.json. Do make sure that the file format is indeed .json and nothing else.
  3. At your choice, paste the following template into sounds.json:
{
  "entity.player.hurt": {
    "sounds": [
      {
        "name": "damage/hit1"
      },
      {
        "name": "damage/hit2"
      },
      {
        "name": "damage/hit3"
      },
      {
        "name": "damage/hit4"
      }
    ],
    "subtitle": "Hurt"
  }
}
    • The above code only applies to this example. Replace/rename anything necessary to allow it to apply to your chosen sound.
    • You can find out the id used by Minecraft for each sound folder. By using /playsound in-game, you can determine this id. In this case, using /playsound minecraft:entity.player.hurt master @s will confirm that the player's hurt sound is indeed classified as entity.player.hurt.
    • Make sure the name fields are in lowercase characters only. The names of your files should be in lowercase as well. Otherwise, the resource pack may fail to use your new sounds.
  1. Correct .json formatting is required! Any missing bracket, comma, etc. will result in the resource pack failing to work properly.
Testing your sound[edit]

If there is an error anywhere in your sounds.json file, none of the sounds described in it will appear in-game. If this happens, you should check the spelling and file paths.

If everything went according to plan, you have now added a sound to Minecraft. To test it:

  1. Make sure you have enabled your resource pack.
    • If you already had Minecraft open with your resource pack enabled, you can press F3 + T to reload all resource packs.
  2. Use the /playsound command once again to play your sound. In our example, type: /playsound minecraft:entity.player.hurt master @s. For this example, it will likely require multiple tries, as hurt sounds are chosen randomly.

Adding Languages[edit]

You can add new languages to Minecraft using a resource pack. Assume your language code is 'LANG'[1] and country/region code is 'COUNTRY',[2] pack.mcmeta will look like:

pack.mcmeta
{
  "pack": {
    "pack_format": 6,
    "description": "Tutorial Resource Pack"
  },
  "language": {
    "LANG_COUNTRY": {
      "name": "Tutorial Language",
      "region": "COUNTRY/REGION NAME",
      "bidirectional": false
    }
  }
}

If you want your language to be right-to-left, set "bidirectional" to true.

Then, put LANG_COUNTRY.json in assets/minecraft/lang inside your resource pack. When you launch the game, choose your resource pack, open the Language selection screen, and your new language will be there.

Notes

The pack.mcmeta goes in the root folder of your resource pack, not in the assets/minecraft/lang folder. Also note that the above pack.mcmeta is the same file as the pack.mcmeta file that you have created a while ago. As of 1.7-pre, you can choose multiple resource packs at once. If you want to use your new language and resource pack for before 1.7, you need to combine them manually because multiple resource packs could not be selected before the version.

Animation Properties[edit]

An example of an animation file is this:

stone.png.mcmeta
{
  "animation": {
    "interpolate": true,
    "width": 1,
    "height": 7,
    "frametime": 1,
    "frames": [
      {
        "index": 0,
        "time": 0
      },
      1, 2, 3, 4, 5, 6, 4, 2
    ]
  }
}
Note

All you really need to make a texture animated is the following code. By default, it will make each frame last only one tick:

stone.png.mcmeta
{
  "animation": {}
}

Save the file as the same name as the texture you want animated with an .mcmeta in the same folder as your texture.

Texture Properties[edit]

An example of a texture property is this:

shadow.png.mcmeta
{
  "texture": {
    "blur": false,
    "clamp": true
  }
}

Fonts[edit]

Character sizes in fonts are determined by the last line of pixels that contains pixels which contain a non-zero alpha. This allows additional padding to be added around characters by adding a color with an alpha level of 1, which Minecraft will consider as part of the character.

Testing your Resource Pack[edit]

  • Launch the game
  • Click on Options
  • Click on Resource Packs
  • Find "Tutorial_Resource_Pack" in the list on the left and click the arrow next to it
  • Click Done

If you decide you want to make some changes to your resource pack, just close the game, edit your resource pack, relaunch the game, and follow the steps above to test your resource pack again. Alternatively, saving the texture to the resource pack and pressing F3 + T will reload the pack without the need to close the game.

Packaging Resource Packs with Worlds[edit]

For using in singleplayer worlds, you can package your resource pack as a ZIP file named resources.zip inside the world directory. This will then be automatically used when playing the singleplayer world.

Server Resource Packs[edit]

If you are the owner of a server, you may set it as the resource pack of your server.

  1. Make sure your pack format is a .zip-folder.
  2. Upload the pack on a filehosting website, e.g. Dropbox.
  3. Copy the download link of your pack. IMPORTANT: It has to be a direct download link. For example, in Dropbox the URL will end with "dl=0", so if you're using Dropbox, all you have to do is to change it to "dl=1".
  4. Open the server.properties with a text editor.
  5. Search for the line "resource-pack=".
  6. Paste the download link after the equal sign.
  7. Save your changes to the server-properties and restart your server.
  8. Enjoy!

Servers can have an icon that will show up in the Multiplayer list.

  1. Create a PNG image with a size of 64 by 64 pixels, transparency is supported.
  2. Save (or rename) it to server-icon.png.
  3. Move it to the server's directory.
  4. Restart the server.
  5. Server icons will display next to the server name.

References[edit]