MC Toolkit

Guides / Building & Resources

Sponge and structure blocks are not the same file

A .schem, a .litematic and a Bedrock .mcstructure look interchangeable until you convert one and every chest, entity and block state is gone.

A .schem and a .litematic both hold a build, and converting between them is where most players discover the two formats never agreed on what a build is. One stores a region of blocks. The other stores a placement history. Move a town between them and the houses survive while the contents do not.

What each format actually carries

FormatWhere it runsBlock statesBlock entitiesEntities
.schemJava, WorldEdit/Spongeyesyesyes
.litematicJava, Litematicayesyesyes
.nbt structureJava, structure blocksyesyesyes
.mcstructureBedrockyesyesyes

The columns look identical, which is the trap. The difference is palette handling and coordinate space, not the feature list.

The palette is the fragile part

Every one of these formats stores blocks as an index into a palette — a list of unique block types the file uses, with each position holding a number pointing into that list. A build using a few hundred distinct block types carries a palette of that size, and the positions are just integers.

That means the file is only readable if the reader can resolve every palette entry. A block added in a newer Java release has no Bedrock equivalent at all, so a Java-to-Bedrock conversion has to substitute or drop it. Air is the usual substitute, and a wall with mysteriously missing blocks is almost always this, not corruption.

Java and Bedrock name the same block differently

This is where Java and Bedrock genuinely diverge. Bedrock writes block states as block_type plus a set of key-value states; Java writes a namespaced ID plus a state map. The same physical block can be minecraft:oak_stairs[facing=east,half=bottom] on one side and a differently ordered state set on the other.

Stairs, slabs, fences, walls, doors and redstone components are the ones that flip. A staircase that renders upside down after conversion is a state-order mismatch, not a bad file.

Structure blocks do not store what you think

A structure block saving to .nbt writes a bounding box, and that box has a hard size limit per axis. Builds larger than the box are not saved as one file — the game splits or refuses. If a converted build is missing its far end, check the original box before suspecting the converter.

Entities are stored separately from blocks in every one of these formats. Item frames, armour stands, paintings and mobs are not blocks, and a converter that only walks the block palette will silently drop them.

Preview before you trust it

The material list is the fastest sanity check: if the converted file's block counts do not match the original's, something was substituted. The layer preview shows that immediately, one horizontal slice at a time, without loading the build into a world.

Convert between .litematic, .schem, Java structure .nbt and Bedrock .mcstructure, with a layer preview and material list, in the Schematic Converter.

Schematic Converter →

More guides

Browse all →

Looking for more Minecraft tools?

A suite of client-side generators, viewers and converters — all free, all in your browser.