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.