Checking the Folder Location
Minecraft Bedrock only scans specific folders on your device when populating the pack lists. If you drop a behavior pack into the resource pack folder, or if you place your files inside the old legacy storage location on Android, the game will silently ignore them.
During active development, your folders should live inside the development directories rather than the standard installed pack folders. The game reloads packs in the development folders every time you exit and re-enter a world, whereas the standard folders are meant for imported archives and cached marketplace content. On Windows, the base directory sits inside the AppData Local Packages folder for Microsoft.MinecraftUWP, specifically inside LocalState/games/com.mojang.
| Pack Type | Folder inside com.mojang | When to use it |
|---|---|---|
| Behavior Pack (in progress) | development_behavior_packs | Use while writing and testing your own add-on. |
| Resource Pack (in progress) | development_resource_packs | Use while building textures, models, sounds, and UI. |
| Behavior Pack (imported) | behavior_packs | Created automatically when you double-click a .mcpack or .mcaddon file. |
| Resource Pack (imported) | resource_packs | Created automatically when you import a finished resource pack. |
Extra Folder Nesting
Once your pack is in the right com.mojang subfolder, check how deep your manifest.json sits. Minecraft looks exactly one folder deep inside development_behavior_packs and development_resource_packs. It expects to find a folder named after your project, and immediately inside that folder, it expects to find manifest.json.
A very common mistake happens when extracting a .zip archive or cloning a repository. Archiving tools often create a wrapper folder with the same name as the zip file, leaving you with a path like development_behavior_packs/MyPack_v1/MyPack/manifest.json. Because manifest.json is two folders deep instead of one, the game stops scanning and never registers the pack. Move the inner folder up one level so that manifest.json sits directly inside the first subfolder.
Validating manifest.json Syntax
If the folder path is right, the problem is almost always inside manifest.json. Unlike entity or block files inside your pack, which allow single-line and multi-line comments in modern Bedrock versions, the manifest parser is much stricter during the initial directory scan. A single trailing comma, a missing quotation mark, or a syntax typo will cause the game to discard the entire pack without showing an error on the main menu.
You must also ensure the file is actually named manifest.json in all lowercase letters. On Windows, if you have file extensions hidden in File Explorer, creating a new text document and renaming it to manifest.json actually names the file manifest.json.txt. Turn on file name extensions in your operating system's file manager to verify the real extension, and validate the file against a clean template.
{
"format_version": 2,
"header": {
"name": "My Custom Behavior Pack",
"description": "Adds custom mechanics to the world.",
"uuid": "55253978-6933-463f-8730-1e4260e7a251",
"version": [1, 0, 0],
"min_engine_version": [1, 20, 80]
},
"modules": [
{
"type": "data",
"uuid": "a8579210-12a4-4f88-9e1c-74928194a012",
"version": [1, 0, 0]
}
]
}Module Types and Minimum Engine Version
Even when your JSON syntax is valid, putting the wrong values in the header or modules array will hide your pack from the menu you are looking at. The module type field tells Minecraft which list the pack belongs to. If you set the module type to resources inside a pack sitting in development_behavior_packs, it will not show up in the behavior pack list.
Check your min_engine_version array inside the header block as well. This three-number array tells Minecraft the oldest version of the game your pack supports. If you accidentally type [1, 210, 0] instead of [1, 21, 0], the game sees that your pack requires a future version of Minecraft that does not exist yet, and hides or locks the pack so the player cannot activate it.
| Manifest Value | Where it belongs | What happens if it is wrong |
|---|---|---|
| "type": "data" | Behavior pack modules array | Pack will not appear in the Behavior Packs tab if omitted or set to resources. |
| "type": "resources" | Resource pack modules array | Pack will not appear in the Resource Packs tab if set to data or script. |
| "type": "script" | Behavior pack modules array | Used alongside or instead of data for Script API packs; requires an entry point file. |
| "min_engine_version" | Header object in both packs | Required in format_version 2. If higher than the running game version, the pack cannot be used. |
Duplicate UUID Collisions
Every pack header and every module inside that pack requires its own Universally Unique Identifier (UUID), formatted as a 36-character string of hexadecimal digits and hyphens. When you start a new project by copying and pasting an old pack's manifest.json, you must generate brand new Version 4 UUIDs for both the header and the modules.
If two folders inside development_behavior_packs share the same header UUID and the same version array, Minecraft treats them as the exact same pack and only displays one of them in the menu. The same collision happens if you import a .mcpack version of your add-on into behavior_packs while still keeping the unpacked source folder in development_behavior_packs. You also cannot reuse the header UUID inside the modules array of the same manifest; the header and each module must be completely distinct.
Turning on the Content Log to Read Parse Errors
Instead of guessing why a manifest is failing, you should let the game tell you directly. Minecraft Bedrock includes a built-in diagnostic console called the Content Log. From the main menu, open Settings, scroll down to the Creator tab, and turn on both Enable Content Log File and Enable Content Log GUI.
Once enabled, leave the settings screen so the game rescans your development folders. If a manifest has a syntax error, a missing required field, or a duplicate UUID, a notification will print on the top of your screen, or you can view the full message history by pressing the Content Log history shortcut in-game or opening the log file inside your com.mojang/logs folder. Fixing the exact line number reported in the log will bring your pack back into the list immediately upon reloading the world menu.
Which versions this applies to
Applies to all modern Minecraft Bedrock Edition versions using manifest format_version 2 (1.13.0 through 1.21+). No experimental toggles are needed to make a pack appear in the pack list.
When it does not work
| What you see | Why | The fix |
|---|---|---|
| You copied an existing pack folder to start a new add-on, changed the name in manifest.json, and now the old pack disappeared or the new one refuses to show up. | Both packs still have the exact same header UUID and version [1, 0, 0]. Minecraft considers them duplicates and only loads one folder. | Generate two fresh UUIDv4 strings and replace both the header.uuid and the modules[0].uuid in your new pack's manifest.json. |
| The Content Log prints an error stating "Failed to parse manifest" or "Json parse error" pointing to your pack's folder. | Your manifest.json contains invalid JSON syntax, most commonly a trailing comma after the last item in an object or array, or unescaped quotation marks in the description. | Open manifest.json in a code editor that highlights JSON errors, remove any trailing commas after the last property in each block, and save the file with UTF-8 encoding. |
| Your folder is in development_behavior_packs and your JSON is valid, but the Content Log shows nothing at all about your pack. | Either the file is secretly named manifest.json.txt due to hidden file extensions, or the manifest sits inside an extra subfolder (for example, development_behavior_packs/MyAddOn/BP/manifest.json). | Turn on file extensions in your file manager to confirm the name is strictly manifest.json, and move the pack contents so manifest.json is only one folder inside development_behavior_packs. |
| You imported your pack via a .mcpack file and got a toast notification saying "Failed to import: Duplicate pack detected". | A copy of that pack with the same UUID and version is already sitting in your behavior_packs, resource_packs, or development pack folders. | Delete the old pack from Settings > Storage, or remove the duplicate folder from your com.mojang directory before importing again. |
Reference, straight from the game files
Read out of the game itself, so the ids match the version you are building for.
