Method 1: Join a Local PC World over Wi-Fi (Fastest)
If you develop on a Windows PC, you do not need to copy your add-on files to the phone at all. Minecraft Bedrock's built-in LAN multiplayer sends both the resource pack and the client-side data of the behavior pack to any device that joins the host's world, while executing the server-side logic on the PC.
Keep your add-on inside the PC's com.mojang/development_behavior_packs and development_resource_packs folders. Load a test world on the PC with your packs applied, make sure Multiplayer is enabled in the world settings, and connect your phone to the same Wi-Fi network. Open Minecraft on your phone, go to the Friends tab, and join the LAN world.
When you change a script or a JSON file on your PC, you do not need to re-import anything on the phone. For Script API changes, simply run the /reload command in the chat. The PC reloads the script from its local development folder, and the phone immediately sees the updated behavior. For block, item, or entity JSON changes, save and quit the world on the PC, re-enter it, and rejoin from the phone.
| What you changed on PC | How to update the phone | Why it works this way |
|---|---|---|
| Script API files (.js) or functions (.mcfunction) | Run /reload in game chat | Scripts and functions run on the PC host; /reload reads directly from the PC's development_behavior_packs folder. |
| Entity, block, item, or loot table JSON | Save and exit the world on PC, then reopen and rejoin | Definitions are cached when the world starts and must be re-read from disk. |
| Textures, models, UI JSON, or sounds | Save and exit on PC, clear the phone's pack cache if needed, and rejoin | Clients download and cache resource packs upon joining a multiplayer session. |
Forcing Resource Pack Updates on the Joining Phone
Before joining the PC world, go to your PC's World Settings, open the Resource Packs tab, and check the box for 'Require players to accept resource packs to join'. This forces your phone to download the resource pack from the PC over your local network.
There is a catch: phones aggressively cache downloaded multiplayer resource packs based on the pack's UUID and version array in manifest.json. If you edit a texture or a UI file on your PC and restart the world, your phone may continue displaying the old cached version if the manifest version has not changed. During active resource pack work, either bump the patch number in your RP/manifest.json before reopening the world, or delete the cached pack under Settings > Storage > Cached Data on the phone.
{
"format_version": 2,
"header": {
"name": "Mobile UI Test Pack",
"description": "Bump the version array below if the phone caches old textures over LAN.",
"uuid": "a18b2c4e-5d6f-4a7b-8c9d-0e1f2a3b4c5d",
"version": [1, 0, 2],
"min_engine_version": [1, 20, 0]
},
"modules": [
{
"type": "resources",
"uuid": "f9e8d7c6-b5a4-4321-8765-4321fedcba98",
"version": [1, 0, 2]
}
]
}Method 2: Pushing Directly to Android via USB and ADB
Sometimes you need the phone itself to be the host—for example, when you are profiling how a low-end mobile processor handles fifty custom entities, or when you do not have the Windows version of Minecraft. On Android, you can bypass .mcaddon files by pushing your unfolded pack folders straight into the game's development directories over a USB cable using Android Debug Bridge (ADB).
First, open Minecraft on your Android phone, go to Settings > Profile, and switch File Storage Location from 'Application' to 'External'. Without this setting, the com.mojang folder is locked inside protected root storage that you cannot reach without a rooted device. Create a world once so Minecraft generates the folder structure.
On Android 10 and newer, scoped storage places the external game directory at /sdcard/Android/data/com.mojang.minecraftpe/files/games/com.mojang/. Enable USB Debugging in your Android Developer Options, plug the phone into your computer, and use the adb push command to copy only the changed files straight into development_behavior_packs and development_resource_packs.
| Platform | External Storage Path to com.mojang | Direct Access Notes |
|---|---|---|
| Android 10+ | /sdcard/Android/data/com.mojang.minecraftpe/files/games/com.mojang/ | Blocked in most built-in phone file apps; accessible from a PC via USB using ADB or MTP file transfer. |
| iOS / iPadOS | On My iPhone > Minecraft > games > com.mojang | Accessible via the built-in iOS Files app, iCloud Drive, or Finder/iTunes file sharing over USB. |
Method 3: Syncing Folders on iOS and iPadOS
iOS does not have ADB, but its com.mojang folder is exposed directly to the user in the built-in Files app as long as File Storage Location is set to 'External' in Minecraft's Profile settings. You can find it by opening the Files app and navigating to On My iPhone (or On My iPad) > Minecraft > games > com.mojang.
Instead of packaging and importing an .mcaddon file, place your unfolded pack folders inside development_behavior_packs and development_resource_packs in that directory. If you use a Mac, connect the iPhone with a cable, open Finder, select your phone, and use the Files tab to drag and drop updated folders straight into the Minecraft folder. You can also use a local folder-sync utility to mirror your computer's workspace folder to the phone over Wi-Fi. Once the files finish syncing, run /reload in your iOS world or exit to the main menu and re-enter the world.
How to Keep World Saves from Overwriting Your Edits
The biggest trap when syncing directly to a phone's folders is putting your add-on in the wrong directory. If you import an .mcaddon file, Minecraft puts it into the standard behavior_packs and resource_packs folders. When you add a pack from those standard folders to a world, Minecraft copies the entire pack into the world's own db/ and world_behavior_packs folders. Any changes you make to the main pack folder afterward will be ignored by that world.
Always sync your work into development_behavior_packs and development_resource_packs instead. When a world uses a pack from the development folders, Minecraft references it in place rather than copying its contents into the world save. If you previously imported your add-on as an .mcaddon on the phone, delete the old version from Settings > Storage before you start using the development folders, or Minecraft will complain about duplicate UUIDs and load the stale copy.
Checking Content Logs on a Phone Screen
When you edit files live without rebuilding, a single missing comma in a JSON file or a typo in a script will cause part of your pack to silently disappear on reload. On a phone, you cannot keep a separate console window open next to the game unless you connect the Scripting debugger, so you need the in-game Content Log GUI.
Before loading your world on the phone, go to Settings > Creator and turn on both 'Enable Content Log File' and 'Enable Content Log GUI'. When you are in the world and run /reload, any syntax errors or missing component warnings will flash in the top corner of your phone screen. You can also open the chat window and run /script profiler or check the Content Log History screen in the pause menu under Creator settings to read the full stack trace.
{
"format_version": "1.20.50",
"minecraft:item": {
"description": {
"identifier": "wiki:test_wand",
"menu_category": {
"category": "equipment"
}
},
"components": {
"minecraft:max_stack_size": 1,
"minecraft:hand_equipped": true,
"minecraft:display_name": {
"value": "Reload Test Wand"
}
}
}
}Which versions this applies to
Applies to all modern Bedrock versions (1.16.100 and newer). No experimental toggles are required for folder syncing, LAN pack sharing, or the /reload command, though Script API usage requires its own module dependencies in manifest.json.
When it does not work
| What you see | Why | The fix |
|---|---|---|
| You edit a file in development_behavior_packs on the phone, reload the world, and none of your changes appear. | You previously imported the same pack via an .mcaddon file. Minecraft copied that older version into the world save folder (or behavior_packs) and is giving it priority over the development folder because both share the same UUID. | Remove the pack from the world, go to Settings > Storage on the phone, and delete the pack from Behavior Packs, Resource Packs, and Cached Data. Re-apply the pack from the development folder. |
| On Android, the /sdcard/Android/data/com.mojang.minecraftpe/ folder is completely empty or missing. | Minecraft defaults to 'Application' storage on fresh installs, which hides all game files inside an inaccessible internal directory. Alternatively, Android's built-in Files app is hiding the data folder due to Android 11+ Scoped Storage restrictions. | In Minecraft, go to Settings > Profile and change File Storage Location to 'External', then create a world. Access the folder from a PC over a USB cable using ADB or standard MTP file transfer rather than using the phone's built-in file manager. |
| The phone joins the PC world, behavior changes work, but custom item textures show up as pink-and-black checkerboards or outdated images. | Either the PC world does not force clients to download resource packs, or the phone is using an older cached copy of the resource pack from an earlier session. | Enable 'Require players to accept resource packs to join' in the PC world's Resource Packs settings. If textures still do not update, increment the version array in RP/manifest.json on the PC and restart the world. |
Reference, straight from the game files
Read out of the game itself, so the ids match the version you are building for.
