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.
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
uuidgenin a terminal.
File Structure
Each pack (BP and RP) has a similar structure:
my_addon_BP/
manifest.json
pack_icon.png
items/
entities/
...
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
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.
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).
{
"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": []
}
{
"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]
}
]
}
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:
{
"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.
{
"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.
textures omits the .png extension.
Step 5: Test In-Game
To test your addon, copy both pack folders into Minecraft's development folders:
Open the com.mojang Folder
On Windows, press Win+R, type the path below, and press Enter:
%AppData%\Minecraft Bedrock\Users\Shared\games\com.mojang
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.
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:
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.
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.jsonis valid JSON (no trailing commas, correct quotes). Addpack_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.jsonpoints totextures/items/example_itemand the PNG file exists. - Dependency errors — The RP
dependenciesmust reference the BP header UUID exactly. Regenerate UUIDs if you copied from another addon.
Frequently Asked Questions
development_behavior_packs and development_resource_packs inside %AppData%\Minecraft Bedrock\Users\Shared\games\com.mojang. Create these folders if they do not exist.
Build the next addon feature
With the pack foundation working, continue with one focused system instead of expanding everything at once: