MC Toolkit

指南 / 故障排除

解读 level.dat:极限模式状态、出生点,以及你真正能修复的东西

极限模式下的死亡不过是 level.dat 里的一个布尔值。本文介绍这个文件里都存了什么、存档损坏是什么样子,以及检查能恢复什么——以及它诚实的极限,游玩规则现在移到了 game_rules.dat 中,不再存在 level.dat 里面。

level.dat 是每个世界文件夹根目录下一个小小的 gzip 压缩 NBT 文件。它保存的是世界的设置而非地形,因此它既是最值得检查的文件,也是最不怕你好奇去翻看的文件。

里面都有什么

路径内容
Data.LevelName世界列表中显示的名称
Data.difficulty_settings.hardcore1b 或 0b —— 极限模式标志
Data.difficulty_settings.difficultypeaceful → hard,旁边还有一个 locked 标志
Data.allowCommands是否开启作弊
Data.spawn世界出生点:pos、dimension、yaw、pitch
Data.Time总刻数(当前时间现在存放在 data/minecraft/world_clocks.dat 中)
Data.DataVersion最后写入它的 Minecraft 版本
Data.singleplayer_uuid哪个玩家文件属于单人存档的所有者

游戏规则也不再放在这里了——它们已移到同一世界文件夹下的 data/minecraft/game_rules.dat。

DataVersion 是人们最容易忽略、却在排查问题时最关键的一项:它会告诉你这个世界是否已经在更新的版本中被打开过,而这一般是不可逆的。

极限模式标志

极限模式并不是一种独立的世界类型。它就是 difficulty_settings.hardcore: 1b 加上难度设为困难,再加上 locked。当你死亡时,游戏并不会改动文件——它只是不让你重生。

所以“我能把一个已死亡的世界解除极限模式吗”是个合理的问题,答案是:这个标志确实可以编辑,但那是修改,不是检查。读取文件的工具能给你看这个标志;要改动它就意味着把 NBT 写回去,而这会让文件面临风险。务必先备份世界文件夹。

存档损坏是什么样子

  • level.dat 无法读取,level.dat_old 存在 —— 游戏会保留一份上一代的备份。把 level.dat_old 重命名为 level.dat,就能恢复这个世界,只是会丢掉最近一次游戏会话。这招奏效的频率远高于人们的预期。
  • 世界能加载,但区块缺失或一片漆黑 —— 那是 region/*.mca 中的区域文件损坏,不是 level.dat 的问题。不同的问题,不同的工具。
  • 世界压根不出现在列表里 —— 通常是 level.dat 缺失或为零字节。先检查有没有 level.dat_old,再考虑别的。

检查做不到的事

读取存档文件无法找回:

  • 因死亡或消失而丢失的物品
  • 从未生成过的区块
  • 已被删除的世界文件夹

这里没有任何东西是恢复服务。工具只展示文件里写着什么;它无法重建文件里已经不存在的内容。

玩家数据

每个玩家——包括单人存档的所有者——都是 players/data/ 中一个独立的 .dat,以 UUID 命名,保存着物品栏、位置、经验和生命值。level.dat 只记录这些文件中哪一个属于所有者(singleplayer_uuid)。如果你把世界迁移到服务器后觉得物品栏丢了,去那里找你 UUID 对应的文件,而不是在 level.dat 里找。

打开一个 level.dat、一个玩家 .dat,或者查看某个极限模式世界的状态——全部在浏览器中解析,不上传任何内容——请使用 世界存档文件检查器。

存档文件查看器 →

更多指南

查看全部 →