Create Your First Minecraft Bedrock Addon (2026)

Want to add custom items, blocks, or entities to Minecraft Bedrock? This beginner-friendly guide walks you through creating your first addon from scratch: setting up Behavior Packs and Resource Packs, writing manifest.json, adding a custom item with textures, testing in-game, and packaging for distribution.

What Is an Addon?

An addon in Minecraft Bedrock Edition is a set of files that modify or add content to the game. Addons are built from two types of packs that work together:

  • Behavior Packs (BP) — Define how things work: custom items, entities, loot tables, recipes, and game logic. They use JSON files.
  • Resource Packs (RP) — Define how things look: textures, sounds, models, and animations. They reference assets like PNG images.
Quick Note Most addons use both a Behavior Pack and a Resource Pack. The BP tells the game what the item does; the RP tells it how it looks. For a custom item, you need both.

Tools You Need

Before you start, gather these tools:

  • Text editor — VS Code is recommended for JSON editing with syntax highlighting and validation. Notepad++ or any plain-text editor also works.
  • Blockbench — Free 3D modeling tool for creating custom entity and item models. Optional for simple items; required for custom 3D models.
  • UUID generator — You need unique IDs for your pack. Use an online UUID generator or run uuidgen in a terminal.

File Structure

Each pack (BP and RP) has a similar structure:

Behavior Pack (my_addon_BP)
my_addon_BP/
  manifest.json
  pack_icon.png
  items/
  entities/
  ...
Resource Pack (my_addon_RP)
my_addon_RP/
  manifest.json
  pack_icon.png
  textures/
  items/
  item_texture.json
  ...

manifest.json tells Minecraft about your pack. pack_icon.png is a 256x256 or 128x128 image shown in the pack list.

Step 1: Create Folders

1

Create the Pack Folders

Create two folders: my_addon_BP (Behavior Pack) and my_addon_RP (Resource Pack). You can name them anything, but keep the _BP and _RP suffixes clear.

2

Add Subfolders

Inside my_addon_BP, create an items folder. Inside my_addon_RP, create textures and textures/items folders.

Step 2: Write manifest.json

Each pack needs a manifest.json file in its root. Use unique UUIDs for uuid and pack_uid (generate new ones for your addon).

manifest.json (Behavior Pack)
{
  "format_version": 2,
  "header": {
    "name": "My Addon",
    "description": "My first custom addon",
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "version": [1, 0, 0],
    "min_engine_version": [1, 20, 0]
  },
  "modules": [
    {
      "type": "data",
      "uuid": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
      "version": [1, 0, 0]
    }
  ],
  "dependencies": []
}
manifest.json (Resource Pack)
{
  "format_version": 2,
  "header": {
    "name": "My Addon",
    "description": "My first custom addon",
    "uuid": "c3d4e5f6-a7b8-9012-cdef-123456789012",
    "version": [1, 0, 0],
    "min_engine_version": [1, 20, 0]
  },
  "modules": [
    {
      "type": "resources",
      "uuid": "d4e5f6a7-b8c9-0123-def0-234567890123",
      "version": [1, 0, 0]
    }
  ],
  "dependencies": [
    {
      "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "version": [1, 0, 0]
    }
  ]
}
Important The Resource Pack dependencies must reference the Behavior Pack UUID so they load together. Replace all UUIDs with your own generated values.

Step 3: Create a Simple Custom Item

Create a file at my_addon_BP/items/example_item.json:

items/example_item.json
{
  "format_version": "1.20.0",
  "minecraft:item": {
    "description": {
      "identifier": "my_addon:example_item",
      "is_experimental": false
    },
    "components": {
      "minecraft:icon": {
        "textures": {
          "default": "my_addon:example_item"
        }
      },
      "minecraft:max_stack_size": 64
    }
  }
}

The identifier must match what you define in the Resource Pack. The texture name my_addon:example_item maps to a texture file.

Step 4: Add Textures

Create item_texture.json in the Resource Pack root and add your texture file.

item_texture.json
{
  "resource_pack_name": "my_addon",
  "texture_name": "atlas.items",
  "texture_data": {
    "example_item": {
      "textures": "textures/items/example_item"
    }
  }
}

Place a 16x16 PNG image at my_addon_RP/textures/items/example_item.png. You can use any simple PNG; Minecraft will use it as the item icon.

Pro Tip Use a 16x16 or 256x256 PNG. Higher resolution textures need to be multiples of 16. The path in textures omits the .png extension.

Step 5: Test In-Game

To test your addon, copy both pack folders into Minecraft's development folders:

1

Open the com.mojang Folder

On Windows, press Win+R, type the path below, and press Enter:

Windows Path
%AppData%\Minecraft Bedrock\Users\Shared\games\com.mojang
2

Copy Packs

Create development_behavior_packs and development_resource_packs if they do not exist. Copy my_addon_BP into development_behavior_packs and my_addon_RP into development_resource_packs.

3

Activate in World

Launch Minecraft, create or edit a world, go to Behavior Packs and Resource Packs, and activate both packs. Use /give @s my_addon:example_item to get your item.

Step 6: Package as .mcaddon for Distribution

To share your addon, package both packs into a single .mcaddon file:

1

Create a Zip

Select both my_addon_BP and my_addon_RP folders. Right-click and create a compressed (zipped) folder. Do not zip a parent folder; the zip must contain the two pack folders at the root level.

2

Rename to .mcaddon

Rename the .zip file to my_addon.mcaddon. Users can double-click it to import the addon into Minecraft.

Troubleshooting

  • Pack not showing — Ensure manifest.json is valid JSON (no trailing commas, correct quotes). Add pack_icon.png (256x256 or 128x128) to the pack root.
  • Item is invisible or missing — Check that the identifier in the BP item JSON matches the texture name in item_texture.json. Ensure both packs are activated.
  • Texture not loading — Verify the path in item_texture.json points to textures/items/example_item and the PNG file exists.
  • Dependency errors — The RP dependencies must reference the BP header UUID exactly. Regenerate UUIDs if you copied from another addon.

Frequently Asked Questions

Behavior Packs define how things work: items, entities, loot tables, and game logic. Resource Packs define how things look: textures, sounds, and models. Most addons use both together.
Basic JSON editing is enough for simple addons. A text editor like VS Code and understanding JSON structure will get you started. Blockbench helps for 3D models.
On Windows, copy your pack folders into development_behavior_packs and development_resource_packs inside %AppData%\Minecraft Bedrock\Users\Shared\games\com.mojang. Create these folders if they do not exist.
Check that both Behavior Pack and Resource Pack are activated in world settings. Ensure the item identifier in both packs matches exactly. Verify manifest.json has no syntax errors and pack_icon.png exists.
Zip both the Behavior Pack and Resource Pack folders into a single .zip file, then rename the extension to .mcaddon. Users can double-click to import it into Minecraft.