Bedrock Behavior Packs: Creating Your First Pack
Learn how to create a behavior pack for Bedrock Edition from scratch, including manifest setup, entity modifications, and custom recipes.
What You Will Build
This guide walks you through creating a simple behavior pack that modifies zombie behavior and adds a custom crafting recipe. By the end, you will understand the folder structure, manifest format, and JSON syntax used in Bedrock behavior packs.
Setting Up the Folder Structure
Navigate to the behavior packs folder on your platform. On Windows, this is:
%localappdata%\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojang\development_behavior_packs\
Create a new folder for your behavior pack. The name can be anything, but use underscores instead of spaces:
my_first_pack/
manifest.json
pack_icon.png
The Manifest File
Every behavior pack needs a manifest.json that identifies it to the game. Create this file with the following structure:
{
"format_version": 2,
"header": {
"name": "My First Behavior Pack",
"description": "Modifies zombie behavior and adds recipes",
"uuid": "YOUR-UNIQUE-UUID-HERE",
"version": [1, 0, 0],
"min_engine_version": [1, 20, 0]
},
"modules": [
{
"type": "data",
"uuid": "ANOTHER-UNIQUE-UUID-HERE",
"version": [1, 0, 0]
}
]
}
Replace the UUID placeholders with actual UUIDs. You can generate them using an online UUID generator. Each UUID must be unique across all your packs.
Modifying Entity Behavior
To modify a mob, you need to override its behavior definition. Create an entities folder and add a zombie.json file:
my_first_pack/
manifest.json
pack_icon.png
entities/
zombie.json
The entity file uses JSON to define components that control the mob's behavior. Here is an example that makes zombies faster and gives them more health:
{
"format_version": "1.20.0",
"minecraft:entity": {
"description": {
"identifier": "minecraft:zombie",
"is_spawnable": true,
"is_summonable": true,
"is_experimental": false
},
"component_groups": {
"minecraft:zombie_adult": {
"minecraft:movement": {
"value": 0.35
},
"minecraft:health": {
"value": 40,
"max": 40
}
}
}
}
}
This example only shows a fragment. A complete entity file includes all component groups, components, and events from the vanilla definition plus your modifications. The best practice is to copy the vanilla entity file and modify it rather than writing from scratch.
Adding Custom Recipes
Create a recipes folder and add a JSON file for your recipe:
my_first_pack/
manifest.json
pack_icon.png
entities/
zombie.json
recipes/
gravel_from_flint.json
Example recipe that lets you craft gravel from 4 flint:
{
"format_version": "1.20.0",
"minecraft:recipe_shaped": {
"description": {
"identifier": "mypack:gravel_from_flint"
},
"tags": ["crafting_table"],
"pattern": [
"FF",
"FF"
],
"key": {
"F": {
"item": "minecraft:flint"
}
},
"result": {
"item": "minecraft:gravel",
"count": 1
}
}
}
Modifying Loot Tables
Loot tables control what drops when entities die or chests generate. Create a loot_tables folder:
my_first_pack/
loot_tables/
entities/
zombie.json
Example loot table that makes zombies drop diamonds rarely:
{
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "item",
"name": "minecraft:rotten_flesh",
"weight": 1,
"functions": [
{
"function": "set_count",
"count": { "min": 0, "max": 2 }
}
]
}
]
},
{
"rolls": 1,
"conditions": [
{
"condition": "random_chance",
"chance": 0.05
}
],
"entries": [
{
"type": "item",
"name": "minecraft:diamond",
"weight": 1
}
]
}
]
}
Testing Your Pack
- Make sure your pack folder is in the development_behavior_packs directory.
- Open Minecraft and create a new world (or edit an existing one).
- In world settings, scroll to Behavior Packs.
- Your pack should appear in the Available list. Activate it.
- Enter the world and test your changes.
Enable the Content Log in Settings to see any errors in your JSON files. This is invaluable for debugging.
Common Mistakes
- Invalid JSON syntax (missing commas, extra commas, mismatched braces). Use a JSON validator.
- Duplicate UUIDs. Every pack and module needs a unique UUID.
- Wrong folder structure. Files must be in the correct subdirectories.
- Mismatched format_version. Use a version that matches your target Minecraft version.
- Overriding only part of an entity. If you override an entity, you typically need to include the complete definition or use component groups carefully.
Next Steps
- Study the vanilla behavior pack (extractable from the game files) to understand all available components.
- Learn the scripting API for more complex behaviors that cannot be done with JSON alone.
- Create a matching resource pack to add custom textures and models for your modified entities.
- Join Bedrock add-on development communities for help and feedback.
Related Astroworld Resources
Related Guides
Introduction to the Bedrock Edition add-on system, including behavior packs, resource packs, and the scripting API.
7 min readStep-by-step instructions for installing add-ons, behavior packs, and resource packs on every Bedrock platform.
7 min readA curated list of high-quality Bedrock Edition add-ons across categories including gameplay, visual enhancements, and quality of life improvements.
8 min read