Wiki 9Minecraft Wiki 9Minecraft

Where Minecraft Keeps Your Packs on Each Device

File paths for com.mojang, development folders, and world pack directories across all Bedrock platforms.

6Sections
2Code examples
4Known errors

When building a Bedrock add-on, you need direct access to the game's internal storage folder, historically named com.mojang, so you can edit JSON and scripts in place without re-importing an archive on every save. Each operating system sandboxes this directory differently, and recent OS updates on Windows and Android have changed the exact root path. This page maps out the exact folder locations across platforms and explains how Minecraft separates global packs, development packs, and world-embedded packs.

The com.mojang folder structure

Regardless of which device you use, once you locate the root com.mojang directory, the internal folder tree is identical. Understanding which subfolder to use determines how Minecraft caches your files and whether your changes show up when you reload a world.

During active creation, you should always place your unzipped work inside the development folders rather than the standard pack folders. Packs placed in the standard folders are cached more aggressively and copied into world folders when applied, whereas development packs are referenced in place so you can leave your code editor open and test changes by simply exiting and re-entering the world.

When you apply a non-development pack to a world, or when you export and re-import a world template, Minecraft copies or links those packs inside the specific world folder under minecraftWorlds. Each world has its own gibberish folder name (a base64-like string); inside it, you can verify which packs are actually bound to that save by checking the world manifest registries.

SubfolderWhat goes hereWhen to use it
development_behavior_packsUnzipped behavior pack folders under active editingEveryday add-on development; reloads cleanly on world exit and re-entry
development_resource_packsUnzipped resource pack folders under active editingEveryday texture, model, UI, and sound work; reloads with /reload or world re-entry
development_skin_packsUnzipped skin pack foldersTesting custom skin geometry and manifests before packaging
behavior_packsInstalled behavior packs imported via .mcpack or .mcaddonManaged automatically by the game when importing finished packs
resource_packsInstalled resource packs imported via .mcpack or .mcaddonManaged automatically by the game; used for Global Resources
minecraftWorlds/<world_id>/behavior_packsBehavior packs copied directly into a specific world saveChecking which version of a pack is embedded in a world or server upload
minecraftWorlds/<world_id>/resource_packsResource packs copied directly into a specific world saveInspecting or removing a pack stuck inside an exported world

Windows 10 and Windows 11 paths (GDK and legacy UWP)

Windows is the primary platform for add-on authoring, and it currently has two possible locations for com.mojang depending on your game version. Historically, Minecraft for Windows ran as a Universal Windows Platform (UWP) app, which stored all user data deep inside the hidden AppData\Local\Packages folder. Starting in late 2024 and rolling out through 2025, Minecraft on Windows migrated to the Microsoft Game Development Kit (GDK), which moved the user data directory into AppData\Roaming.

When the game updates from a UWP build to a GDK build, it automatically migrates your worlds and packs to the new Roaming directory, but it often leaves the old UWP folder behind on your disk. A very common pitfall is editing files in a pinned Quick Access shortcut that still points to the old UWP directory while the game is actually reading from the new GDK directory. Always check both locations if your edits suddenly stop appearing in-game.

You can open either location quickly by pressing Win + R to open the Run dialog, pasting the environment-variable path from the table below, and pressing Enter. If you also test against Minecraft Preview, note that Preview maintains a completely separate installation folder alongside the main game.

Windows EditionExact Run / Explorer PathNotes
Retail (New GDK build)%APPDATA%\Minecraft Bedrock\Users\Shared\games\com.mojangDefault location for updated Windows installations. Sometimes sits under a numeric Xbox user ID folder alongside Shared.
Preview (New GDK build)%APPDATA%\Minecraft Bedrock Preview\Users\Shared\games\com.mojangUsed by Minecraft Preview on GDK builds.
Retail (Legacy UWP build)%LOCALAPPDATA%\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojangOlder installations prior to the GDK transition. Check here if Roaming does not exist.
Preview (Legacy UWP build)%LOCALAPPDATA%\Packages\Microsoft.MinecraftWindowsBeta_8wekyb3d8bbwe\LocalState\games\com.mojangOlder Preview builds prior to the GDK transition.

Android and iOS / iPadOS paths

On mobile devices, the first thing you must check inside Minecraft is Settings > Storage > File Storage Location. If this dropdown is set to Application, the game stores all worlds and packs inside an internal root-only sandbox that you cannot reach without a rooted or jailbroken device. To access com.mojang with a file manager or USB cable, you must switch File Storage Location to External.

On Android 11 and newer, Google introduced Scoped Storage, which moved the External folder out of the old top-level /games/com.mojang path and into the app-specific Android/data directory. Built-in Android file apps usually block access to Android/data. To edit files directly on modern Android, either connect the phone to a PC via USB in File Transfer mode, or use a third-party file manager that supports Android's Storage Access Framework or Shizuku.

On iOS and iPadOS, setting storage to External exposes the game directory inside the built-in Apple Files app. Open the Files app, navigate to On My iPhone (or On My iPad), open the Minecraft folder, and follow games > com.mojang. You can drag and drop unzipped folders into development_behavior_packs and development_resource_packs directly through the Files app or via Finder / iTunes File Sharing when plugged into a computer.

Mobile PlatformExternal Storage PathAccess Method
Android 10 and newer/storage/emulated/0/Android/data/com.mojang.minecraftpe/files/games/com.mojangUSB cable to PC, or a file manager capable of reading Android/data.
Android 9 and older/storage/emulated/0/games/com.mojangAny standard Android file manager.
iOS / iPadOSOn My iPhone (or iPad) / Minecraft / games / com.mojangBuilt-in Apple Files app, or Finder / iTunes File Sharing over USB.

Bedrock Dedicated Server (BDS) and Consoles

If you are testing an add-on on the official Bedrock Dedicated Server (BDS) for Windows or Linux, there is no com.mojang folder. Instead, the server executable reads directly from the folder where you extracted the server zip. You will find behavior_packs, resource_packs, and development_behavior_packs sitting right next to bedrock_server.exe (or bedrock_server on Linux), and your world saves sit inside the worlds/ directory.

Consoles (Xbox, PlayStation, and Nintendo Switch) lock down their file systems and do not provide user access to a com.mojang directory for manual file editing. Even file explorer workarounds on consoles have been restricted by platform updates. To test an unreleased add-on on a console, place the pack in your development folders on a Windows PC or mobile device, host a world with the pack enabled, and join that world over LAN or Xbox Live from the console. Alternatively, upload the world with the pack applied to a Realm from PC or mobile, then download or join the Realm on the console.

How worlds link to installed and development packs

Simply dropping a folder into development_behavior_packs makes the pack appear in the Create New World or Edit World menu, but a world will not actually load the pack until it is registered in that world's configuration files. Inside minecraftWorlds/<world_id>/, Minecraft maintains two JSON files at the root of the world save: world_behavior_packs.json and world_resource_packs.json.

When you activate a pack in the world settings UI, Minecraft writes the pack's header UUID and version array into the corresponding JSON file. If the pack came from development_behavior_packs, the game leaves the files inside development_behavior_packs and resolves them by UUID every time the world starts. If the pack was imported as a normal .mcpack into behavior_packs, the game often copies the entire pack folder into minecraftWorlds/<world_id>/behavior_packs/ so the world remains self-contained.

Knowing this structure is essential both for Bedrock Dedicated Server setup (where you have no UI and must write world_behavior_packs.json by hand) and for debugging when a world refuses to load the latest version of your manifest. Below is a valid manifest and the matching world_behavior_packs.json entry that links it to a world.

BP/manifest.json
{
  "format_version": 2,
  "header": {
    "name": "Example Dev Behavior Pack",
    "description": "Placed in development_behavior_packs for live editing",
    "uuid": "d8f1a4c0-5b2e-4f9a-8c1d-3e7b6a2f1c90",
    "version": [1, 0, 0],
    "min_engine_version": [1, 21, 0]
  },
  "modules": [
    {
      "type": "data",
      "uuid": "a3c9e1b2-7d4f-4a8e-9b2c-1f5d8e3a7b41",
      "version": [1, 0, 0]
    }
  ]
}

Registering the pack inside the world folder

When the behavior pack above is active on a world, the world folder's world_behavior_packs.json file contains an array of objects pairing each pack_id (which must match header.uuid in BP/manifest.json, never the module UUID) with its exact version array. If you bump the version in your development manifest from [1, 0, 0] to [1, 0, 1] without updating or re-applying the pack in the world, the world will either complain that the pack is missing or silently load an older cached copy.

minecraftWorlds/example_world/world_behavior_packs.json
[
  {
    "pack_id": "d8f1a4c0-5b2e-4f9a-8c1d-3e7b6a2f1c90",
    "version": [1, 0, 0]
  }
]

Which versions this applies to

Folder layout inside com.mojang applies to all Bedrock Edition versions (1.16 through 1.21+). The Windows GDK path under %APPDATA%\Minecraft Bedrock applies to Windows builds migrated from late 2024 onward. No experimental toggles are needed.

When it does not work

What you seeWhyThe fix
You place a pack in development_behavior_packs on Windows, or edit an existing file, and the pack does not show up in the game at all.Your Windows installation has migrated from the legacy UWP build to the GDK build, so the game is now reading from %APPDATA%\Minecraft Bedrock\Users\Shared\games\com.mojang while you are still editing files in the leftover %LOCALAPPDATA%\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe folder.Open %APPDATA%\Minecraft Bedrock\Users\Shared\games\com.mojang in File Explorer, move your development packs there, and update any editor workspaces or Quick Access shortcuts.
The pack is inside development_behavior_packs in the correct com.mojang directory, but it does not appear in the Available Behavior Packs list.Either you zipped the folder or created an extra wrapper folder so the path is development_behavior_packs/my_pack/my_pack/manifest.json, or manifest.json contains a JSON syntax error such as a trailing comma.Ensure manifest.json sits directly inside your pack folder (development_behavior_packs/my_pack/manifest.json) and enable Content Log File or Content Log GUI in Settings > Creator to read the exact manifest parse error.
You edit a file inside development_behavior_packs, reload the world, and the world still runs the old version of your pack.You previously imported the same pack (with the same UUID) via a .mcpack file, which placed a copy inside the main behavior_packs folder or directly inside minecraftWorlds/<world_id>/behavior_packs. Minecraft gives precedence to the world-embedded or installed copy over the development folder.Delete the duplicate copy from com.mojang/behavior_packs and from minecraftWorlds/<world_id>/behavior_packs so only the copy in development_behavior_packs remains.
On Android or iOS, the com.mojang folder is completely empty or missing when browsing from a file manager.Inside Minecraft Settings > Storage, the File Storage Location option is still set to Application, which hides all game data inside the private app sandbox.Change File Storage Location to External in Settings > Storage, then create a dummy world or restart the game so Minecraft initializes the external directory tree.

Reference, straight from the game files

Read out of the game itself, so the ids match the version you are building for.