.mcstructure Editor — Bedrock Structure Files

Supports Minecraft Bedrock Edition and Java Edition — and every server core for both, popular or obscure: Vanilla, Paper, Spigot, Purpur, Folia, Fabric, Forge, NeoForge, Mohist, Sponge, Bedrock Dedicated Server, PocketMine-MP, Nukkit, PowerNukkitX, Cloudburst, Dragonfly, Endstone, LeviLamina and the rest. Full list.

A .mcstructure file is uncompressed little-endian NBT written by a Bedrock structure block. Drop one below to read its size, block palette, block indices and block entity data, edit any of it, and download the file back in the same encoding — which is what add-on and map makers need when a structure has to be patched without reopening the world.

Structure blocksBedrock add-onsBehavior packsLittle-endian NBT

Drop a .mcstructure file here

level.dat · .nbt · .mcstructure · .schem · .schematic · .dat · chunk dumps

What is inside a .mcstructure

TagTypeWhat it holds
format_versionIntStructure format revision, 1 in current files
sizeList of IntX, Y, Z dimensions of the captured volume
structure_world_originList of IntWhere the structure was captured in the world
structureCompoundEverything below lives here
structure.block_indicesList of Int[]Two layers of palette indices — normally blocks and waterlogging; -1 means "leave whatever is there"
structure.entitiesList of CompoundEntities captured with the structure
structure.palette.default.block_paletteList of CompoundEvery distinct block state: name, states, version
structure.palette.default.block_position_dataCompoundBlock entity NBT keyed by the flat index of the position

Indices in block_indices run X, then Z, then Y — a flat index of (x * sizeZ + z) * sizeY + y into the palette list. That mapping is what lets you fix a single mis-set block without regenerating the structure.

What people change here

  • Swap a block type everywhere by editing one entry in block_palette — every position pointing at that index changes with it.
  • Fix a block state such as a wrong facing or an accidental waterlogged in the states compound.
  • Strip entities that were caught by accident, by removing entries from the entities list.
  • Repair block entity data — chest contents, sign text, spawner settings — inside block_position_data.
  • Check the version stamp on palette entries when a structure imports with the wrong blocks after a game update.

Where the files are

Structure blocks save into the world's structures/ folder inside the world directory, in files named <namespace>_<name>.mcstructure. Behaviour packs ship them under structures/ in the pack, where the game loads them by namespace. Both are the same format and both open here.

Java Edition's equivalent is the gzip big-endian .nbt structure file — a different encoding with a different tag layout. The Java editor page covers those, and this editor opens them too.

Frequently Asked Questions

Can I convert a .mcstructure to a Java .nbt structure?

The editor can re-encode the bytes to big-endian gzip, but the tag layout differs — Java structures use palette/blocks with different keys and block names. A re-encoded file is readable, not a valid Java structure.

Why is my .mcstructure not compressed?

Bedrock writes structure files as raw little-endian NBT with no gzip wrapper. That is normal; the editor detects it as Bedrock raw.

What does an index of -1 mean in block_indices?

It marks a position the structure does not touch, so the existing block in the world is kept when the structure is placed.

Can I resize a structure by editing size?

Not on its own — block_indices has one entry per position, so the array length has to match the new volume exactly. Changing size alone produces a file the game refuses.

Related tools