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 存放世界資料的「內部語言」,理解它能幫你看懂為什麼有些世界打不開、以及修復時到底在動哪一層。