Minecraft NBT Editor & Viewer (In-Browser)
Open, inspect, edit, and convert Minecraft Named Binary Tag (NBT) files online. Supports Java & Bedrock format, level.dat, playerdata, .nbt, .schematic, and .mcstructure with automatic Gzip decompression.
Minecraft NBT Binary Specification & Tag Architecture
Named Binary Tag (NBT) is Minecraft's proprietary hierarchical binary serialization format designed by Markus Persson. Every NBT payload consists of structured tags following strict type identifiers:
TAG_End (0). Forms the root of all world, player, and entity files.
Byte (1B), Short (2B), Int (4B), Long (8B), Float (4B IEEE 754), Double (8B IEEE 754).
5 Critical NBT Serialization Traps & Pitfalls
1. The Endianness Mismatch (Java Big-Endian vs Bedrock Little-Endian)
Minecraft Java Edition serializes all multi-byte numbers in Network Big-Endian format (most significant byte first). Minecraft Bedrock Edition serializes NBT in Little-Endian format (least significant byte first). Opening a Bedrock .mcstructure in a Java-only editor reads 4-byte string lengths backwards, resulting in multi-gigabyte memory allocation crashes.
2. Bedrock level.dat 8-Byte Uncompressed Header Offset
Unlike Java level.dat (which starts with standard Gzip magic bytes 0x1F 0x8B), Bedrock level.dat begins with an uncompressed 8-byte header: a 4-byte Little-Endian version int (e.g. 10) followed by a 4-byte payload size. Attempting to parse the file from byte 0 fails immediately because the root compound is offset by 8 bytes.
3. Gzip vs Zlib vs Raw Stream Confusion
World files use three distinct compression formats. level.dat uses Gzip (magic 0x1F 0x8B), Anvil region files (.mca) use raw Zlib deflate (magic 0x78 0x9C), and Bedrock structure files (.mcstructure) use uncompressed raw Little-Endian NBT. Passing a Zlib chunk into a Gzip decompressor triggers header CRC checksum failure.
4. Type Mutation in Numeric Flags (Byte vs Int)
NBT tags are strongly typed in the game engine. Mutating boolean flags like NoGravity: 1b (TAG_Byte) into NoGravity: 1 (TAG_Int) causes the internal entity deserializer to reject the tag, resetting mob physics, despawning armor stands, or erasing custom mob behaviors.
5. Array Tag vs List Tag Structural Confusion
TAG_Byte_Array (7) and TAG_Int_Array (11) store flat contiguous buffers of raw numbers. In contrast, TAG_List (9) stores sequences of generic NBT tags (such as item compounds in inventories). Confusing a list of compounds with an array tag results in total player inventory erasure upon world loading.