An MCADDON is just a .zip file renamed to .mcaddon. It contains two sub-packs:
Create this folder structure on your desktop:
MyConvertedAddon/
├── BP/
│ ├── manifest.json
│ ├── pack_icon.png
│ └── blocks/
│ └── my_ore.json
├── RP/
│ ├── manifest.json
│ ├── pack_icon.png
│ ├── textures/
│ │ └── blocks/
│ │ └── my_ore.png
│ └── texts/
│ └── en_US.lang
Before we begin, let’s clarify the technical barrier.
| Feature | Java Edition (.jar) | Bedrock Edition (.mcaddon) | | :--- | :--- | :--- | | Language | Java | C++ (via JSON & JavaScript/GoDot) | | Rendering | OpenGL (Lightweight Java Game Library) | RenderDragon (Proprietary) | | Modding API | Forge, Fabric, Quilt (Full code injection) | Gametest Framework, Addons (Sandboxed) | | Capabilities | Modify game engine, render distances, JVM arguments | Add entities, blocks, items, simple scripts |
A .jar mod can rewrite the game's memory. An .mcaddon can only tell the game what already exists to do. You cannot "convert" a complex tech mod like Create or Thaumcraft to Bedrock. You can only reimagine it.
Let’s build a working MCADDON based on a simple JAR mod. We will use the example of converting "More Ores Mod (JAR)" into "More Ores Addon (MCADDON)."
| Feature | Java Edition | Bedrock Edition |
|---------|--------------|----------------|
| Mod format | .jar (Java archive) | .mcaddon (ZIP of behavior + resource packs) |
| Language | Java | C++ (with JSON & scripting) |
| APIs | Forge, Fabric, NeoForge | Official add‑on system, Gametest Framework |
| Assets | Java-style models, PNGs, sounds | Geckolib models, PNGs, sounds |
Why you can’t just convert:
A .jar contains compiled Java bytecode. Bedrock cannot execute Java. An .mcaddon is simply a renamed .zip containing two folders: a behavior pack (logic) and a resource pack (visuals). There is no automated converter for code logic.
Converting a .jar (Java Edition mod) to a .mcaddon (Bedrock Edition add-on) is not a simple file rename. It is a platform translation—moving logic from Java (PC, complex, flexible) to JavaScript/JSON (cross-platform, sandboxed, restricted). This report outlines why one would attempt this, the technical anatomy of the conversion, and the creative workarounds required.
Java uses recipes/ folder with JSON. Bedrock uses Crafting Table JSON in the Behavior Pack.
Java Recipe (from JAR):
"type": "minecraft:crafting_shaped",
"pattern": ["###", "#X#", "###"],
"key": "#": "item": "minecraft:stick", "X": "item": "moreores:ruby",
"result": "item": "moreores:ruby_pickaxe"
Bedrock Recipe (in BP/recipes/ruby_pickaxe.json):
"format_version": "1.20.0",
"minecraft:recipe_shaped":
"description":
"identifier": "moreores:ruby_pickaxe"
,
"tags": ["crafting_table"],
"pattern": ["###", " X ", " X "],
"key":
"#": "moreores:ruby",
"X": "minecraft:stick"
,
"result": "moreores:ruby_pickaxe"
Note: Bedrock uses a different pattern orientation for tools.
An MCADDON is just a .zip file renamed to .mcaddon. It contains two sub-packs:
Create this folder structure on your desktop:
MyConvertedAddon/
├── BP/
│ ├── manifest.json
│ ├── pack_icon.png
│ └── blocks/
│ └── my_ore.json
├── RP/
│ ├── manifest.json
│ ├── pack_icon.png
│ ├── textures/
│ │ └── blocks/
│ │ └── my_ore.png
│ └── texts/
│ └── en_US.lang
Before we begin, let’s clarify the technical barrier.
| Feature | Java Edition (.jar) | Bedrock Edition (.mcaddon) | | :--- | :--- | :--- | | Language | Java | C++ (via JSON & JavaScript/GoDot) | | Rendering | OpenGL (Lightweight Java Game Library) | RenderDragon (Proprietary) | | Modding API | Forge, Fabric, Quilt (Full code injection) | Gametest Framework, Addons (Sandboxed) | | Capabilities | Modify game engine, render distances, JVM arguments | Add entities, blocks, items, simple scripts |
A .jar mod can rewrite the game's memory. An .mcaddon can only tell the game what already exists to do. You cannot "convert" a complex tech mod like Create or Thaumcraft to Bedrock. You can only reimagine it.
Let’s build a working MCADDON based on a simple JAR mod. We will use the example of converting "More Ores Mod (JAR)" into "More Ores Addon (MCADDON)."
| Feature | Java Edition | Bedrock Edition |
|---------|--------------|----------------|
| Mod format | .jar (Java archive) | .mcaddon (ZIP of behavior + resource packs) |
| Language | Java | C++ (with JSON & scripting) |
| APIs | Forge, Fabric, NeoForge | Official add‑on system, Gametest Framework |
| Assets | Java-style models, PNGs, sounds | Geckolib models, PNGs, sounds |
Why you can’t just convert:
A .jar contains compiled Java bytecode. Bedrock cannot execute Java. An .mcaddon is simply a renamed .zip containing two folders: a behavior pack (logic) and a resource pack (visuals). There is no automated converter for code logic.
Converting a .jar (Java Edition mod) to a .mcaddon (Bedrock Edition add-on) is not a simple file rename. It is a platform translation—moving logic from Java (PC, complex, flexible) to JavaScript/JSON (cross-platform, sandboxed, restricted). This report outlines why one would attempt this, the technical anatomy of the conversion, and the creative workarounds required.
Java uses recipes/ folder with JSON. Bedrock uses Crafting Table JSON in the Behavior Pack.
Java Recipe (from JAR):
"type": "minecraft:crafting_shaped",
"pattern": ["###", "#X#", "###"],
"key": "#": "item": "minecraft:stick", "X": "item": "moreores:ruby",
"result": "item": "moreores:ruby_pickaxe"
Bedrock Recipe (in BP/recipes/ruby_pickaxe.json):
"format_version": "1.20.0",
"minecraft:recipe_shaped":
"description":
"identifier": "moreores:ruby_pickaxe"
,
"tags": ["crafting_table"],
"pattern": ["###", " X ", " X "],
"key":
"#": "moreores:ruby",
"X": "minecraft:stick"
,
"result": "moreores:ruby_pickaxe"
Note: Bedrock uses a different pattern orientation for tools.