Bedrock NBT Editor — and Java Edition Too

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.

Bedrock Edition is supported, with every Bedrock server core — and so is Java Edition, with every Java server core, down to the obscure ones. Drop a level.dat, playerdata, .nbt, .mcstructure, .schem or .schematic file into the box below, edit any tag in the tree, and download it back in exactly the same binary format. Byte order, header and compression are detected automatically. Everything runs in your browser — no upload, no account, no install.

Bedrock EditionJava EditionVanillaPaperSpigotPurpurPufferfishFoliaLeavesFabricQuiltForgeNeoForgeMohistArclightSpongeBedrock Dedicated ServerPocketMine-MPNukkitPowerNukkitXNukkit-MOTCloudburstDragonflyEndstoneLeviLaminaAllayJukeboxMCGoMintGeyserWaterdogPE

Drop any NBT file here

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

Every NBT file Minecraft writes

NBT (Named Binary Tag) is one format with several encodings, and every Minecraft edition, launcher and server core uses a different combination of them. This editor implements all of them and picks the right one from the bytes themselves, so you never have to know which variant a file is before you open it.

FileComes fromEncodingCompression
level.datJava world — Vanilla, Paper, Spigot, Fabric, ForgeBig-endian, named rootgzip
level.datBedrock world — BDS, PocketMine-MP, Nukkit, MCPELittle-endian + 8-byte headerNone
<uuid>.datJava playerdata/Big-endiangzip
servers.dat, hotbar.nbtJava clientBig-endianNone
idcounts.dat, raids.dat, map_*.datJava world data/Big-endiangzip
.nbtStructure blocks, datapack structuresBig-endiangzip
.schem, .schematicWorldEdit, Sponge, MCEditBig-endiangzip
.mcstructureBedrock structure blocksLittle-endianNone
Chunk payloadRegion .mca extract, LevelDB valueEither byte orderzlib or none
Packet dumpBedrock protocol, Java 1.20.2+ protocolVarint LE / nameless BENone

How to edit an NBT file

  1. Get the file off the server or device. Java servers keep it in world/, Bedrock servers in worlds/YourWorld/, Android in games/com.mojang/minecraftWorlds/<id>/. Stop the server first so the file is not being written while you copy it.
  2. Drop it into the editor. The badge above the tree tells you what was detected — edition, encoding, compression and, for Bedrock, the storage version from the header.
  3. Edit. Tap a value to change it in place. Use search to jump to a tag by name or value, + to add tags to any compound or list, × to remove them.
  4. Save & Download. The output format and compression selectors default to whatever the file arrived as, so a plain edit is a byte-faithful round trip.
  5. Put it back and restart. Keep the original as a backup until the world has loaded once and looks right.

What makes this editor different

Five encodings, one drop zone

Java big-endian, Bedrock little-endian, Bedrock varint network NBT, nameless-root network NBT from Java 1.20.2+, and Bedrock's headered level.dat. Detected, not guessed.

gzip and zlib in the browser

Decompression and recompression use the native Compression Streams API, so a Java level.dat round-trips into a file the game accepts unchanged.

Real 64-bit longs

TAG_Long values are held as BigInt. World seeds and UUID halves survive editing instead of being mangled by floating-point rounding, which is where most browser NBT tools break.

Correct string encoding

Java writes modified UTF-8 (CESU-8), Bedrock writes standard UTF-8. The editor encodes per edition, so emoji and non-Latin world names come out intact.

Built for big files

Arrays live in typed arrays and the tree renders lazily, 200 entries at a time. A megabyte of chunk NBT opens without freezing the tab.

Search across the tree

Find any tag by name or value anywhere in the file and jump straight to it with the path expanded.

SNBT export

Dump the whole tree as SNBT — the text form used by /data and datapacks — for diffing, sharing or pasting into a command.

Format conversion

Read a Bedrock file, write Java big-endian gzip, or the reverse. Useful for protocol work, tests and tooling.

Nothing leaves your device

The file is read with FileReader, parsed in JavaScript, and handed back as an in-memory blob. No upload endpoint exists.

Supported server software — all of it

NBT is written by the game, not by the server implementation, so any core that stores a Minecraft world stores it in one of the encodings this editor reads. That is the whole list below, and it is not a marketing list: a core that writes a world writes it in Vanilla's shape, because the client on the other end has to read it.

Bedrock Edition — little-endian NBT, 8-byte level.dat header

Bedrock Dedicated Server (BDS), PocketMine-MP (PM3, PM4, PM5), Nukkit, Nukkit-MOT, PowerNukkitX, Cloudburst Server, Dragonfly, Endstone, LeviLamina and BDSX, Allay, JukeboxMC, GoMint, Sculk, ElementZero, LiteLoaderBDS, plus the MCPE and MCBE clients themselves on Android, iOS, Windows, console and Switch. Same worlds/<World>/level.dat, same header, same tags — see the server-side workflow.

Java Edition — big-endian NBT, gzip

Vanilla, CraftBukkit, Spigot, Paper, Purpur, Pufferfish, Folia, Leaves, Gale, Petal, Airplane, Sponge (SpongeVanilla, SpongeForge), Fabric, Quilt, Forge, NeoForge, Mohist, Arclight, Magma, Ketting, Banner, Cardboard, Glowstone, Thermos, Uberbukkit and every other fork, modpack server or ancient legacy build. If it writes world/level.dat, this editor opens it — details here.

Proxies and bridges

Geyser, WaterdogPE, Waterfall, Velocity and BungeeCord do not own worlds; they move NBT over the wire. Captures from those sockets are network NBT — varint little-endian on the Bedrock side, nameless-root big-endian on Java 1.20.2+ — and both open here directly.

Anything not on this list

Custom forks, private cores, teaching projects, a server you wrote yourself: if the file is NBT, the editor detects which of the five encodings it is and opens it. Nothing here is keyed to a core's name.

Use the parser from your own code

The page exposes its engine on window.NBT, so the same parser that powers the UI can be driven from the browser console or reused in a userscript:

const bytes = new Uint8Array(await file.arrayBuffer());
const { root, format, compression, headerVersion } = await NBT.read(bytes);

root.value.find(t => t.name === "LevelName").value = "New World";

const out = await NBT.write(root, format, { compression, headerVersion });

Tags are plain objects — { type, name, value, listType } — arrays are Int8Array, Int32Array and BigInt64Array, and longs are BigInt. The full NBT format reference documents every tag type and how each encoding differs.

Frequently Asked Questions

Is this NBT editor free?

Yes, and open source under the MIT licence. There is no paid tier, no sign-up and no upload quota, because there is no server component at all — the whole editor is one static page plus two asset files.

Does it work with Java Edition and Bedrock Edition?

Both. Java Edition files are big-endian and usually gzip-compressed; Bedrock files are little-endian, and level.dat carries an extra 8-byte header. The editor detects which one it received and writes the same variant back on save.

Is my world file uploaded anywhere?

No. The file is read locally with the FileReader API and the download is produced from an in-memory blob. Once the page has loaded you can disconnect from the network and it still works.

Can I use it on Android or iOS?

Yes. The layout is mobile-first with 44 px tap targets and a fixed action bar. On Android you can pick a world file straight out of a file manager; on iOS the file has to be in the Files app first because of sandboxing.

What is the difference between NBT and SNBT?

NBT is the binary encoding Minecraft stores on disk. SNBT is its text form, the syntax you type into commands like /data merge. This editor reads binary NBT and can export SNBT, which makes it easy to diff two files or paste a structure into a command.

Which tools does this replace?

Desktop NBT editors such as NBTExplorer, plus the various single-purpose web tools that only handle one edition. See the NBTExplorer online comparison for what carries over and what does not.

Related tools