Skip to content

Export to Minecraft Bedrock

The Minecraft Bedrock engine bundles a block-textures pack as a Bedrock resource pack ZIP. Pack-scope only (Pro). Mostly the same shape as the Minecraft Java export, but Bedrock uses a different manifest format and a flatter texture path layout.

A .zip named after your pack slug, containing:

  • manifest.json - the Bedrock pack manifest with format_version and module entries
  • pack_icon.png - a 256×256 cover image
  • textures/blocks/<asset-slug>.png - one PNG per asset
  • textures/terrain_texture.json - the terrain texture registration file mapping each texture name to its file

Drop the ZIP into the Resource Packs import option in Minecraft Bedrock (mobile, console, or Windows 10/11 Edition) and it appears in the resource-pack manager.

The dialog has a dropdown for the target Bedrock engine version:

  • 1.20.0 (broad compat)
  • 1.21.0 (recommended)
  • 1.21.50 (mid-2024)
  • 1.21.90 (latest)

The selected version goes into manifest.json’s min_engine_version field. Versions that are too new for the player’s game install are rejected at import time.

JavaBedrock
Manifestpack.mcmetamanifest.json
Manifest formatpack_format integerUUIDs + engine version triple
Cover imagepack.png (64×64)pack_icon.png (256×256)
Block texture pathassets/minecraft/textures/block/textures/blocks/
Texture registrationimplicit (filename = block name)explicit (terrain_texture.json)

The differences are handled inside the engine - both export paths produce a ZIP that drops cleanly into the right install for the right game.

{
"format_version": 2,
"header": {
"description": "Generated with Hexcalibur",
"name": "<pack name>",
"uuid": "<auto-generated>",
"version": [1, 0, 0],
"min_engine_version": [1, 21, 0]
},
"modules": [{
"type": "resources",
"uuid": "<auto-generated>",
"version": [1, 0, 0]
}]
}

UUIDs are generated fresh for each export. Re-exporting the same pack produces a new UUID - Bedrock treats it as a new pack on import. To “update” an installed pack rather than installing a new one, manually keep the UUIDs stable across exports.