- Главная идея: .dat — это файлы сохранений, а внутри чаще всего NBT
- Где искать файлы уровня (world) в Java Edition
- level.dat: что хранит “сердце” мира
- level.dat_new и level.dat_old: зачем они нужны
- session.lock: блокировка файла мира
- Где хранятся данные игроков внутри мира
- Что внутри папки data: дополнительные данные мира
- datapacks: как подключаются пользовательские “дата-паки”
- Папка dimensions: устройство измерений мира
- region-файлы: что это такое и где лежат
- entities и poi: что именно там хранится
- generatorOptions: как формат влияет на генерацию мира
- NBT: почему “json” и “object/compound” встречаются вместе
- servers.dat: .dat для списка серверов в мультиплеере
- Если коротко: “правильный маршрут” при проблемах с .dat
Запрос “.dat minecraft” обычно появляется, когда игрок находит файлы формата .dat в папке мира или лаунчера и хочет понять: что внутри, зачем они нужны и почему иногда “ломается” сохранение. В этой статье разберём основные .dat файлы в Minecraft Java Edition: где они лежат, какую информацию store(s) (хранят) и как ориентироваться в NBT (там всё записано как “структуры” и “теги”).
Главная идея: .dat — это файлы сохранений, а внутри чаще всего NBT
В Java Edition очень многие данные игры сохраняются в файлах с расширением .dat. Почти всегда это файлы с NBT-структурой: внутри есть корневой compound / object и дальше вложенные list / array, string, int, long и т.д. По сути, игра пишет “данные” в формате NBT, поэтому читать “.dat” как обычный текст не получится — нужна логика NBT.
Самые важные “.dat” связаны с:
- миром (уровнем),
- игроком (профиль),
- сервером в списке мультиплеера.
Где искать файлы уровня (world) в Java Edition
Мир в Java Edition хранится в папке сохранений .minecraft/saves/<мир>/. У каждой карты (world) есть своя директория. Часто главный маркер мира — наличие файла level.dat.
Внутри папки мира вы увидите типичную структуру (она может немного отличаться в зависимости от версии и модов, но смысл тот же):
- level.dat — глобальные настройки мира,
- level.dat_new / level.dat_old — резервные версии,
- session.lock — файл блокировки,
- папка data — разнообразные данные мира,
- папка datapacks — включённые датапаки,
- папки dimensions — данные по измерениям,
- файлы region (через структуру регионов внутри измерений),
- папки entities и poi внутри измерений,
- иногда resourcepacks, если в мире применялись ресурспаки.
level.dat: что хранит “сердце” мира
Файл level.dat содержит “общую информацию о мире”. В документации он описывается как NBT-файл, в котором записаны такие вещи, как:
- время суток (time of day),
- seed (числовое значение генерации),
- режим для игрока в одиночной игре (через GameType),
- используемые настройки генератора,
- сведения о том, когда мир был в последний раз загружен (LastPlayed),
- название мира (LevelName),
- параметры мира и версия, в которой мир был сохранён.
Важно: level.dat — это не просто “строки”, а NBT compound, где внутри есть корневой объект Data и множество тегов.
Примеры ключевых тегов в level.dat
allowCommands— включены ли читы,DataPacks— список датапаков:Enabled/Disabled,DataVersion— версия данных (data version),seed— seed мира,generate_features— генерация структур,GameType— игровой режим для одиночной игры (например, Survival / Creative / Adventure / Spectator в числовом виде),hardcore— хардкор включён или нет,Time— сколько тиков прошло с начала уровня,LevelName— имя мира,Version— информация о Minecraft-версии, в которой мир сохранён,WasModded— было ли открытие мира модифицированной версией.
Именно поэтому вопрос “.dat minecraft” почти всегда приводит к level.dat: это главный файл уровня.
level.dat_new и level.dat_old: зачем они нужны
Помимо основного level.dat игра создаёт:
- level.dat_new — новая версия, которую записывает программа,
- level.dat_old — резервная копия предыдущего level.dat.
Идея простая: при загрузке или сохранении текущий level.dat может быть backed up (сохранён как старая версия), чтобы при ошибке или сбое не потерять данные мира полностью.
session.lock: блокировка файла мира
Файл session.lock нужен, чтобы разные процессы (или запуск нескольких экземпляров) не пытались одновременно менять один и тот же мир.
Логика работы такая:
- игра открывает session.lock,
- записывает данные и пытается “взять lock” на доступ,
- если блокировка не получилась — программа прекращает изменения.
Отдельно отмечается практическая причина странностей: иногда Minecraft может держать lock даже после смены мира, поэтому обычно советуют закрывать Minecraft полностью перед работой с сохранениями.
Как изменился session.lock после версии 1.16
До версии 1.16 содержимое блокировки описывается как 64-битный timestamp (big endian) с моментом последнего доступа, а после — вместо timestamp используется “символ снежного человека” (☃) в UTF-8. Для игрока это важно как признак: разные версии могут ожидать разные форматы внутри session.lock.
Где хранятся данные игроков внутри мира
В папках уровня игроки хранятся не “в одном файле навсегда”, а в разных местах в зависимости от версии и структуры мира. На уровне принципа:
- в самой директории мира могут встречаться player.dat-подобные данные,
- внутри файлов уровня игрок может храниться через отдельные
- отдельно фиксируются статистики и достижения (например, через JSON/хранилища).
В описании структуры для Java Edition встречается формулировка, что файлы вида:
- <uuid>.dat — данные игрока,
- <uuid>.json в статистиках/достижениях — дополнительная информация.
Если коротко: player-данные “живут” в пределах мира, и для них важны UUID, статистика и NBT-структуры.
Что внутри папки data: дополнительные данные мира
Папка data — это место для “разного” (miscellaneous) хранения состояния мира: дополнительные сведения, связанные с механиками игры и сохранениями контента.
В этой папке также встречаются пространства имён (namespace), например minecraft — ванильное пространство имён для стандартных данных.
datapacks: как подключаются пользовательские “дата-паки”
Папка datapacks нужна, чтобы мир “видел” датапаки, которые добавляют контент без модов: функции, рецепты, таблицы лута, улучшения механик и т.п.
На уровне структуры:
- каждый датапак лежит отдельной папкой/директорией внутри datapacks,
- включённые/выключенные датапаки фиксируются в level.dat через NBT list (например, Enabled и Disabled в DataPacks).
Папка dimensions: устройство измерений мира
В Java Edition мир разложен по измерениям (dimensions). В папке dimensions хранятся файлы, связанные с разными мирами:
- Overworld,
- The Nether,
- The End,
- а также возможные пользовательские/модовые измерения.
Важный момент: в этой части структуры лежат региональные файлы (region), сущности и POI, то есть всё, что относится к конкретному измерению.
region-файлы: что это такое и где лежат
Файлы региона (region) в Java Edition обычно описываются как r.<x>.<y>.mca. Это файлы региона в формате Anvil.
Они хранят:
- чанки,
- блоки,
- и другие чанковые данные (всё, что связано с конкретными зонами мира).
Игрок чаще всего “спотыкается” об region, когда:
- удаляет/копирует мир,
- пробует восстановить кусок,
- меняет модификации генерации и замечает несоответствие данных.
entities и poi: что именно там хранится
Внутри измерений есть две отдельные зоны смысла:
entities— файлы сущностей (например, животные, предметы на земле, мобов и т.п.). В описании подчёркивается, что они связаны с измерением (Overworld и т.д.).poi— “point of interest”, точки интереса. Там записаны места, связанные с ванильными механиками:- кровати/рабочие места/колокольчики у жителей,
- порталы в Нижний мир,
- гнёзда/ульи для пчёл,
- локстоуны и т.п.
При этом отмечается, что структура poi похожа на формат region-файлов по организации, но NBT-содержимое другое: формат mca применяется, а контент NBT различается.
generatorOptions: как формат влияет на генерацию мира
Тег generatorOptions находится в level.dat и зависит от типа мира. Он влияет только на Overworld и применяется к старым версиям (в документации указано, что для генераторов типа Buffet это актуально до 1.15 и ниже).
Примеры:
- для Buffet — наборы биомов, типы распределения, размер клеток и параметры чанкового генератора,
- для Superflat — слои плоского мира, а также настройки структур (например, декорации) и параметры биомов.
Смысл простой: generatorOptions — это “инструкция”, как игра должна построить мир (или его часть), и она записана как NBT-структуры в виде compound с вложенными тегами.
NBT: почему “json” и “object/compound” встречаются вместе
Многие теги выглядят как JSON-подобные списки/объекты, потому что в NBT есть типы “список” и “объект”, а отображение в описаниях иногда похоже на JSON.
Поэтому в тексте встречаются слова:
- nbt,
- json,
- string,
- list,
- compound,
— потому что это базовые типы хранения: строковые поля, массивы значений и вложенные объекты.
servers.dat: .dat для списка серверов в мультиплеере
Ещё один популярный файл “.dat minecraft” — servers.dat. Он используется для хранения информации о серверах, которые игрок добавил в список серверов.
Где находится:
- в корне папки, заданной профилем лаунчера (обычно это .minecraft/servers.dat).
Что хранит:
- servers — список записей (по одной на сервер),
- icon — картинка иконки сервера в Base64,
- ip — адрес сервера (который хранится отдельно от некоторых настроек),
- name — имя сервера,
- acceptTextures — нужно ли принимать текстуры ресурспаков автоматически (1/0),
- другие параметры, в зависимости от версии.
Отдельно отмечается, что имя сервера может поддерживать цветные коды через NBT-редактирование.
Если коротко: “правильный маршрут” при проблемах с .dat
Когда игрок ищет .dat minecraft, обычно нужно не “сломать файл”, а понять его роль:
level.dat— главные настройки мира (seed, GameType, Version, allowCommands и др.)level.dat_new/level.dat_old— резервирование при сохраненииsession.lock— блокировка одновременного доступа к мируdata/datapacks— доп. данные и подключённые датапакиdimensions→ region / entities / poi — устройство измерений и контентаservers.dat— список серверов мультиплеера
И всё это связано одной темой: данные записаны в NBT-структурах, где встречаются tag, string, list, compound, а также значения в виде чисел и логических флагов.