Что такое формат файла NBT?
Файл .nbt - это формат Minecraft Named Binary Tag, иерархический типизированный контейнер бинарных данных, повсеместно используемый в мирах Java Edition и Bedrock Edition. Маркус «Notch» Перссон разработал и опубликовал спецификацию NBT в 2010 году вместе с Minecraft Alpha.
Каждый файл .nbt представляет собой дерево типизированных именованных тегов, корнем которого является TAG_Compound. Существует 13 типов тегов: byte, short, int, long, float, double, byte array, string, list, compound, int array и long array (последние два добавлены в 2011 и 2017 годах соответственно). Java Edition хранит файлы .nbt в сжатом виде GZip - файл открывается с магическими байтами 1F 8B. Bedrock Edition использует несжатый вариант с порядком байтов little-endian, 4-байтовым префиксом версии и 4-байтовым полем размера файла.
Формат выполняет множество ролей в установке Minecraft: level.dat хранит метаданные мира, player.dat отслеживает инвентарь и местоположение, файлы регионов содержат чанки в кодировке NBT, а команда /structure save экспортирует файлы структур с расширением .nbt. Таблицы лидеров, статистика и достижения также хранятся в формате NBT.
Версии Java и Bedrock несовместимы по формату из-за различий в порядке байтов (endianness), поэтому такие инструменты, как NBTExplorer, должны определять, в какой редакции был создан файл. Поскольку большинство файлов .nbt в Java Edition упакованы в GZip, вы можете просмотреть необработанное содержимое, распаковав их любым GZip-совместимым инструментом перед чтением потока бинарных тегов.
Безопасность и защита
РИСК: LOWNBT - это чистый формат данных без исполняемого содержимого; он не может содержать вредоносное ПО. Поврежденный NBT может нарушить сохранение мира Minecraft, поэтому всегда делайте резервную копию перед редактированием.
Детали формата
в двух словах- Nero BackItUp Template - Nero BackItUp (ныне Nero BackItUp & Burn, поддержка прекращена около 2015 года) использовала .nbt для шаблонов задач резервного копирования; совершенно не связанный бинарный формат.
Программы, открывающие файлы NBT
Технические подробности
глубокая спецификация| Кодировка файла | Бинарная - иерархическое дерево именованных тегов |
| Порядок байтов | Big-endian (Java Edition); little-endian (Bedrock Edition) |
| Сжатие | GZip (стандартные файлы Java Edition); без сжатия с 8-байтовым заголовком (Bedrock Edition) |
| Корневая структура | Всегда один TAG_Compound; все остальные теги вложены в него |
| Типы тегов | 13 именованных типов: byte, short, int, long, float, double, byte_array, string, list, compound, int_array, long_array |
| Магические байты | `1F 8B` (магическое число GZip, Java Edition); необработанный несжатый NBT начинается с `0A` (TAG_Compound) |
| Заголовок Bedrock | 4-байтовый номер версии в формате little-endian + 4-байтовое поле размера файла перед полезной нагрузкой NBT |
| Проверка целостности | GZip CRC-32 (при использовании GZip) |
| Типичный размер файла | от 1 КБ до 10 МБ (данные игрока - несколько КБ; экспорт крупных структур - до нескольких МБ) |
| MIME-тип | `application/x-nbt` (неофициальный); на практике `application/octet-stream` |
| Совместимость Java-Bedrock | Несовместимые порядки байтов; инструменты должны определять редакцию перед парсингом |
| Использование в Minecraft | `level.dat`, `player.dat`, экспорт `/structure save`, данные таблиц лидеров и данные чанков в файлах регионов |
| Выпущен | 2010 (Minecraft Alpha; NBT spec published by Notch) |
| Последняя версия | NBT with TAG_Long_Array (tag type 12), added in Minecraft 1.12 (2017) |
| Открыть стандартное | Да · без роялти |
| Спецификация | minecraft.wiki |
Конвертации NBT
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах NBT.