NBT 到底是什么

NBTNamed Binary Tag(命名二进制标签)的缩写,是 Minecraft 自己设计的一种二进制数据格式。它的核心思路是:每一份数据都带上「名字 + 数据类型 + 值」三件套,再嵌套组织成树状结构。常见的类型有整数、浮点数、字符串、列表,以及可以继续往里套的「复合标签(Compound)」。

世界里很多关键数据都用 NBT 存:

  • level.dat —— 世界元数据:名称、游戏模式、种子、出生点、游戏规则、版本等,本身就是一份 NBT(通常还经过 gzip 压缩)。
  • 实体与方块实体 —— 生物、箱子里的物品、告示牌文字这类数据,也以 NBT 形式记录。
  • 玩家数据 —— 背包、位置、状态等同样是 NBT。

想专门了解 level.dat 装了什么、丢了会怎样,可看 世界的 level.dat 是什么

为什么记事本打开是乱码

因为 NBT 是二进制而非纯文本——它把类型标记和数值直接压成字节,level.dat 还常被 gzip 压缩,所以用记事本、文本编辑器直接打开只会看到乱码。要看清里面的内容,需要专门的 NBT 编辑器,或者干脆让游戏本身去读取。

这也解释了一个常见误会:世界「打不开」往往不是 NBT 内容坏了,而是打包结构不对——比如 level.dat 没放在压缩包根目录、外面多套了一层文件夹。这类结构问题和 NBT 本身无关,参见 Java 的 region/.mca 文件是什么 了解 Java 端的世界文件是怎么组织的。

TopoBlocks 怎么对待这些 NBT

打开或诊断一个 .mcworld / .zip / Java 世界时,TopoBlocks 会读取 level.dat 等 NBT 结构,用来判断文件类型、版本、结构是否完整、有没有缺失文件。关于这些存档文件平时放在哪、长什么样,可看 Minecraft 世界存档在哪里

有几点要说清楚:

  • 默认免费、在本机进行。 诊断读取 NBT 只是为了定位问题,不需要把世界传到云端;涉及云端备份等功能才需要你显式授权。
  • 绝不覆盖源文件。 即便要修复,也是生成一个新的文件、保留原始文件与哈希可追溯——不会在你的原 NBT 上直接改写。
  • 诚实的边界。 结构修复解决的是文件 / 打包 / 结构问题;如果 NBT 数据本身严重损坏,简单修复未必能救,复杂损坏会走高级修复(¥9/次),付费前先展示问题、成功概率与风险,失败自动退款,价格以 App 内为准。

简单说:NBT 是 Minecraft 存世界数据的「内部语言」,理解它能帮你看懂为什么有些世界打不开、以及修复时到底在动哪一层。