NBT-редактор Java Edition

Підтримуються Minecraft Bedrock Edition і Java Edition — а також усі їхні серверні ядра, популярні й маловідомі: Vanilla, Paper, Spigot, Purpur, Folia, Fabric, Forge, NeoForge, Mohist, Sponge, Bedrock Dedicated Server, PocketMine-MP, Nukkit, PowerNukkitX, Cloudburst, Dragonfly, Endstone, LeviLamina та інші. Повний список.

Minecraft Java Edition зберігає дані як NBT big-endian, майже завжди зі стисненням gzip. Перетягніть нижче будь-який файл Java — level.dat, UUID-файл playerdata, servers.dat, структуру .nbt або схему WorldEdit. Редактор розпакує файл, розбере його як big-endian і запише назад зі стисненням gzip, щоб гра прийняла його без змін.

VanillaPaperSpigotPurpurFoliaFabricQuiltForgeNeoForgeSponge

Перетягніть файл NBT Java сюди

level.dat · .nbt · .mcstructure · .schem · .schematic · .dat · дампи чанків

З яких файлів складається світ Java

Усі наведені нижче файли відкриваються в редакторі. Самі файли регіонів (.mca) є контейнерами з багатьма стиснутими чанками, а не окремими документами NBT, тому спочатку витягніть дані чанка. Редактор прочитає отриманий NBT чанка зі стисненням zlib.

ШляхВмістСтиснення
world/level.datНазва світу, режим гри, правила, точка появи, DataVersiongzip
world/level.dat_oldПопереднє збереження того самого файлаgzip
world/playerdata/<uuid>.datІнвентар, скриня Енду, позиція, здоров’я, XP, атрибутиgzip
world/data/raids.dat, idcounts.dat, map_*.datСтан рейдів, лічильники id сутностей, предмети-картиgzip
world/data/scoreboard.datЦілі, команди, рахунокgzip
world/region/*.mcaNBT чанків усередині контейнера регіонуzlib для кожного чанка
servers.datСписок багатокористувацьких серверів клієнтанемає
hotbar.nbtЗбережені панелі творчого режимунемає
*.nbt у датапакахСтруктури зі структурних блоків і пазлівgzip

Як Java кодує NBT

  • Big-endian. Кожне ціле число та число з рухомою комою зберігається старшим байтом уперед, як у Java DataOutputStream.
  • Іменований корінь. Файл починається з типу тегу 0x0A, потім іде довжина та ім’я кореня в UTF-8, яке історично порожнє в level.dat.
  • Модифікований UTF-8. Рядки використовують кодування Java writeUTF: двобайтова довжина, NUL як C0 80, а символи поза основною площиною розбиваються на дві трибайтові половини (CESU-8). Інструмент, що читає це як звичайний UTF-8, пошкоджує емодзі в назвах світів; редактор кодує їх правильно.
  • gzip за замовчуванням. NbtIo.readCompressed очікує потік gzip. Нестиснуті файли відкриваються в деяких інструментах, але не в грі.
  • Безіменний корінь у мережі. Починаючи з 1.20.2 протокол передає NBT без імені кореня. Такі дампи пакетів тут визначаються як Мережевий Java.

Paper, Spigot, Fabric, Forge — ті самі файли

Форки й завантажувачі модів змінюють роботу сервера, а не формат запису світу. Paper, Purpur, Pufferfish, Folia, Fabric, Quilt, Forge, NeoForge, Mohist, Arclight і Sponge використовують структуру NBT Vanilla, тому ця сторінка стосується їх без змін. Форки лише додають поруч зі світом власні файли, як-от paper-world.yml і конфігурації модів; це YAML або TOML, не пов’язані з NBT.

Моди й плагіни можуть додавати власні compound до level.dat або playerdata. Вони відкриваються тут як звичайні теги; не змінюйте їх, якщо не знаєте, як мод їх використовує.

DataVersion і перенесення між версіями

Світи Java містять ціле значення DataVersion, яке визначає формат світу й збільшується з кожним снапшотом. Орієнтири: 1.16.5 — 2586, 1.17.1 — 2730, 1.18.2 — 2975, 1.19.4 — 3337, 1.20.4 — 3700, 1.21 — 3953. Старіший клієнт відмовляється відкривати світ саме через цей тег. Його ручне зменшення не перетворює дані чанків, а лише прибирає перевірку. Використовуйте тег, щоб визначити версію запису світу; не змінюйте його для примусового зниження версії.

Часті запитання

Чи можна відкрити Java level.dat, який не завантажується у грі?

Зазвичай так: редактор терпиміший до кінцевих байтів і точно повідомляє, де зупинився розбір обрізаного файла. Якщо він теж відмовляється, перевірте level.dat_old — попереднє автозбереження.

Чи підтримується мережевий NBT 1.20.2+?

Так. Від 1.20.2 протокол не передає ім’я кореня. Такий дамп визначається як формат Мережевий Java і може бути збережений як мережевий NBT або звичайний файл з іменованим коренем.

Чи можна редагувати чанк із файла регіону .mca?

Можна редагувати NBT чанка після його вилучення з контейнера регіону. Сам .mca містить індекс і багато стиснутих zlib даних чанків, а редактор працює з одним документом NBT, не з контейнером.

Чи може редагування playerdata пошкодити дані гравця?

Лише якщо сервер працює під час редагування: він тримає стан гравця у пам’яті та записує його під час виходу, перезаписуючи файл. Від’єднайте гравця, внесіть зміни й дозвольте підключитися знову. Дивіться редактор playerdata.

Чи обов’язкове стиснення gzip для level.dat?

Завантажувач Vanilla читає gzip. Зберігайте зі стисненням gzip — воно вибирається за замовчуванням, якщо файл був таким, — і гра прийме файл.

Пов’язані інструменти