一个拖放区支持五种编码
支持 Java 大端序、基岩版小端序、基岩版 varint 网络 NBT、Java 1.20.2+ 的无名称根网络 NBT,以及带文件头的基岩版 level.dat。格式通过检测确定,而不是猜测。
支持 Minecraft 基岩版和 Java 版,也支持两者所有常见或少见的服务端核心:Vanilla、Paper、Spigot、Purpur、Folia、Fabric、Forge、NeoForge、Mohist、Sponge、Bedrock Dedicated Server、PocketMine-MP、Nukkit、PowerNukkitX、Cloudburst、Dragonfly、Endstone、LeviLamina 等。完整列表。
支持 Minecraft 基岩版及其所有服务端核心,也支持 Java 版及其全部服务端核心,包括较少见的实现。将 level.dat、playerdata、.nbt、.mcstructure、.schem 或 .schematic 文件拖入下方区域,即可修改树中的任意标签,并以完全相同的二进制格式下载。字节序、文件头和压缩方式会自动识别。全部操作都在浏览器中完成,无需上传、注册或安装。
将任意 NBT 文件拖放到这里
level.dat · .nbt · .mcstructure · .schem · .schematic · .dat · 区块转储数据NBT(Named Binary Tag,命名二进制标签)是一种具有多种编码方式的格式;不同的 Minecraft 版本、启动器和服务端核心会使用不同组合。本编辑器实现了这些编码,并直接根据文件字节选择正确格式,因此打开前无需判断文件属于哪一种。
| 文件 | 来源 | 编码 | 压缩 |
|---|---|---|---|
level.dat | Java 世界——Vanilla、Paper、Spigot、Fabric、Forge | 大端序,有名称的根标签 | gzip |
level.dat | 基岩版世界——BDS、PocketMine-MP、Nukkit、MCPE | 小端序 + 8 字节文件头 | 无 |
<uuid>.dat | Java playerdata/ | 大端序 | gzip |
servers.dat, hotbar.nbt | Java 客户端 | 大端序 | 无 |
idcounts.dat, raids.dat, map_*.dat | Java 世界 data/ | 大端序 | gzip |
.nbt | 结构方块、数据包结构 | 大端序 | gzip |
.schem, .schematic | WorldEdit、Sponge、MCEdit | 大端序 | gzip |
.mcstructure | 基岩版结构方块 | 小端序 | 无 |
| 区块负载 | 从区域 .mca 提取的数据、LevelDB 值 | 任一字节序 | zlib 或无压缩 |
| 数据包转储 | 基岩版协议、Java 1.20.2+ 协议 | Varint LE / nameless BE | 无 |
world/,基岩版服务器保存在 worlds/YourWorld/,Android 则位于 games/com.mojang/minecraftWorlds/<id>/。复制前先停止服务器,避免复制期间文件仍被写入。支持 Java 大端序、基岩版小端序、基岩版 varint 网络 NBT、Java 1.20.2+ 的无名称根网络 NBT,以及带文件头的基岩版 level.dat。格式通过检测确定,而不是猜测。
解压与重新压缩使用原生 Compression Streams API,因此 Java level.dat 经编辑后仍会生成游戏可正常接受的文件。
TAG_Long 值以 BigInt 保存。世界种子和 UUID 的两半在编辑后不会因浮点数舍入而损坏,这是许多浏览器 NBT 工具容易出错的地方。
Java 使用修改版 UTF-8(CESU-8),基岩版使用标准 UTF-8。编辑器会按版本编码,因此表情符号和非拉丁字符的世界名称可以保持完整。
数组存放在类型化数组中,树按需渲染,每次显示 200 项。打开数 MB 的区块 NBT 时不会导致标签页卡死。
可按名称或值查找文件中的任意标签,并在展开对应路径后直接跳转。
将整棵树导出为 SNBT,即 /data 和数据包使用的文本形式,便于比较、分享或粘贴到命令中。
读取基岩版文件后写为 Java 大端序 gzip,或反向转换。适用于协议开发、测试和工具处理。
文件由 FileReader 读取,在 JavaScript 中解析,再以内存 blob 形式返回。本站不存在上传端点。
NBT 由游戏格式定义,而不是由服务端实现定义。因此,任何保存 Minecraft 世界的核心都会使用本编辑器支持的某种编码。下列列表是技术兼容范围,不是宣传列表:只要核心写入世界,就必须采用客户端可读取的 Vanilla 数据结构。
level.dat 文件头Bedrock Dedicated Server (BDS)、PocketMine-MP(PM3、PM4、PM5)、Nukkit、Nukkit-MOT、PowerNukkitX、Cloudburst Server、Dragonfly、Endstone、LeviLamina 和 BDSX、Allay、JukeboxMC、GoMint、Sculk、ElementZero、LiteLoaderBDS,以及 Android、iOS、Windows、主机和 Switch 上的 MCPE 与 MCBE 客户端。它们使用相同的 worlds/<World>/level.dat、文件头和标签;请参阅服务端操作流程。
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,以及其他分支、模组包服务器和旧版本。只要写入 world/level.dat,本编辑器就能打开;请查看详细说明。
Geyser、WaterdogPE、Waterfall、Velocity 和 BungeeCord 不保存世界,而是通过网络传输 NBT。从这些连接捕获的数据属于网络 NBT:基岩版侧为 varint 小端序,Java 1.20.2+ 侧为无名称根的大端序;两者都能直接在此打开。
自定义分支、私有核心、教学项目或自行编写的服务器,只要文件是 NBT,编辑器就会检测其所属的五种编码之一并打开。这里的处理逻辑不依赖核心名称。
页面通过 window.NBT 暴露其引擎,因此可以在浏览器控制台中调用驱动界面所用的同一解析器,也可以在用户脚本中复用:
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 });
标签是普通对象:{ type, name, value, listType };数组为 Int8Array、Int32Array 和 BigInt64Array,long 为 BigInt。完整的NBT 格式参考说明了每种标签类型及各种编码之间的差异。
是的,并且以 MIT 许可证开源。没有付费等级、注册要求或上传配额,因为它根本没有服务器组件;整个编辑器仅由一个静态页面和两个资源文件组成。
两者都支持。Java 版文件使用大端序,通常由 gzip 压缩;基岩版文件使用小端序,level.dat 还包含额外的 8 字节文件头。编辑器会检测收到的格式,并在保存时写回同一格式。
不会。文件通过 FileReader API 在本地读取,下载文件由内存中的 blob 生成。页面加载完成后,即使断开网络也仍可使用。
可以。界面采用移动端优先设计,点击目标为 44 px,并带有固定操作栏。在 Android 上可直接从文件管理器选择世界文件;由于沙盒限制,在 iOS 上必须先将文件放入“文件”App。
NBT 是 Minecraft 在磁盘上存储数据的二进制编码。SNBT 是其文本形式,也是输入 /data merge 等命令时使用的语法。本编辑器可读取二进制 NBT 并导出 SNBT,便于比较两个文件或将结构粘贴到命令中。
它可替代 NBTExplorer 等桌面 NBT 编辑器,以及只支持单一版本的各种网页工具。有关可迁移和不可迁移的功能,请参阅NBTExplorer 在线版对比。