Skip to content

12. World Translations

Bram Stout edited this page Mar 10, 2026 · 1 revision

MiEx support Minecraft Java Edition worlds, Minecraft Bedrock Edition worlds, and Hytale worlds. But these all store their data in different ways, and some change their format over time. Internally, MiEx represents all worlds in a single format, so when worlds get loaded in it will convert everything into its own format. This can sometimes require some data to be translated in order for everything to work nicely together. For example, Minecraft Bedrock Edition names some blocks and block properties differently from Minecraft Java Edition, so MiEx comes with translation files to map the Bedrock Edition blocks to Java Edition blocks. Same with Bedrock Edition biomes. Minecraft Java Edition pre-1.13 stores its blocks as block ids rather than block names, so MiEx also comes with a translation file to map the block ids to block names. These translation files are located in translation/minecraft/java, translation/minecraft/bedrock, and translation/minecraft/hytale in any kind of resource pack. MiEx comes with some built-in translation files.

miex_blocks.json

This file is available for java, bedrock, and hytale and lets you map block names and block properties to different block names and block properties. The file contains a json array of json objects. Each json object can contain a minDataVersion and maxDataVersion to indicate for what world data versions this applies (only really used for Minecraft Java Edition worlds. Minecraft Bedrock Edition and Hytale worlds always have a data version of 0). Next to that, it has a translations value which is a json object that contains the actual translations.

The name of each item in the translations json object is the block name which you want to map into something else. If no namespace is specified, then it defaults to minecraft:. The value of each item is a json array containing json objects. Each json object contains a block definition that the block can be mapped into.

Each block definition json object contains a name which is the new block name. It may contain a condition item which is a json object of block properties that the block must have in order for this block definition to be picked. It may also contain an optionalCondition item which is a json object of block properties that if the block contains those properties, the must match, but if the block does not contain those properties, it's still fine. It may also contain a constants item which is a json object of new block properties to add to the block.

When translating a block, it will pick one block definition that the block fully matches against. If it cannot find a block definition that it matches, then it won't translate that block.

miex_block_connections.json

This file is available for java, bedrock, and hytale and lets you change block names and block properties based on neighbouring blocks. The file contains a json array of json objects. Each json object can contain a minDataVersion and maxDataVersion to indicate for what world data versions this applies (only really used for Minecraft Java Edition worlds. Minecraft Bedrock Edition and Hytale worlds always have a data version of 0). Next to that, it has a mappings value which is a json object that contains the actual mappings.

The name of each items in the mappings json object is a list of blocks for which to apply this mapping. Tags may also be used in the form of #<name>. If no namespace is specified, then the default namespace of minecraft: is used. The value of each item is a json array containing json objects. Each json object contains a connection mapping that can be applied to the block.

Each connection mapping json object may contain a condition item whose value is a string containing a block property condition using the same format as found variants in Minecraft Java Edition block state files. It then contains a connections item which is a json object. The name of each item of the json object contains the connection condition, where it checks neighbouring blocks. The value is another json object that may contain an item name which would be the name block name to set it to and it may contain blockState which is a json object of new block properties to apply to the block.

miex_biomes.json

This file is available for java, bedrock, and hytale and lets you map biome names to different biome names. This file is a json object where the name of each item is the biome name which you want to map into something else and the value is the biome name that you want to map it into. If no namespace is specified for either side, then it defaults to the minecraft: namespace.

miex_file_path_mapping.json

This file is only available for bedrock and lets you map resource identifiers into file paths. This is mainly used to map Minecraft Java Edition texture resource identifiers into the correct file paths for the equivalent textures in Minecraft Bedrock Edition resource packs. This file is a json object where the name of each item is the resource identifier and the value is the file path without extension. A file in a Minecraft Java Edition resource pack located at the path assets/<namespace>/<type>/<name> has the resource identifier of <type>;<namespace>:<name>. Normally <type> is specified whenever a resource identifier is used in the source code of MiEx and so wouldn't be necessary to define, but can be explicitly specified if needed.

bedrock_biomes.json

This file is only available for bedrock and maps Minecraft Bedrock Edition biome ids into biome names. The file is a json array of json objects, where each json object has an id value specifying the biome id and a name value specifying the biome name to map it into. If the name does not specify a namespace, the default minecraft: namespace is used.

biome_ids.json

This file is only available for java and maps Minecraft Java Edition biome ids into biome names. The file contains a json array of json objects. Each json object can contain a minDataVersion and maxDataVersion to indicate for what world data versions this applies. Next to that, it has a mappings value which is a json array that contains the actual mappings.

The mappings json array contains json objects where each json object has an id value specifying the biome id and a name value specifying the biome name to map it into. If the name does not specify a namespace, the default minecraft: namespace is used.

block_ids.json

This file is only available for java and maps Minecraft Java Edition block ids into block names. The file contains a json array of json objects. Each json object can contain a minDataVersion and maxDataVersion to indicate for what world data versions this applies. Next to that, it has a mappings value which is a json array that contains the actual mappings.

The mappings json array contains json objects where each json object has an id value specifying the block id and a name value specifying the block name to map it into. If the name does not specify a namespace, the default minecraft: namespace is used. A blockState item may also be specified which is a json object of block properties to apply to the block. Next to that, a variants item can be specified which lets you specify different blocks based on the data value for the block. It is a json array of json objects that basically has the same format (name and blockState) but instead it has dataValue instead of id to specify the data value that the block must have for it to pick this item.

Clone this wiki locally