- Почему вообще встречаются файлы .dat в Minecraft
- Папки мира Java Edition и где лежит level.dat
- level.dat: главный файл мира (и что он хранит)
- level.dat_new и level.dat_old: зачем две копии
- session.lock: механизм блокировки файла мира
- Где лежат данные игрока в файловой структуре мира
- Папка data: что именно там лежит
- datapacks: как пользовательский контент попадает в мир
- dimensions: как устроены измерения
- region: где хранятся региональные файлы чанков
- entities и poi: чем отличаются и что в них лежит
- Что было до 1.7.6: устаревшие структуры уровня
- level.dat_mcr: что это было раньше
- NBT в Minecraft: как хранятся данные
- GameType в level.dat: игровые режимы в виде чисел
- Как в level.dat хранится версия мира
- generatorOptions: как влияет на создание мира
- Buffet и Superflat: примеры параметров generatorOptions
- servers.dat в Java Edition: файл серверов в списке
- Структура NBT в servers.dat и ключевые теги
- Что означает acceptTextures в servers.dat
- Итог: как быстро понять любой .dat в Minecraft
Запрос «.dat minecraft» обычно появляется, когда игрок видит файлы формата .dat в папках мира или клиента и хочет понять: что внутри, за что отвечает и как это безопасно читать. В этой статье разберём ключевые level.dat, session.lock, servers.dat и то, как в Minecraft используется NBT для хранения данных.
Почему вообще встречаются файлы .dat в Minecraft
В Minecraft Java Edition часть настроек мира, прогресса и служебных сведений хранится в отдельных .dat-файлах. Это похоже на «пакеты данных»: игра кладёт туда data о мире (world) и игроках (player), а затем читает их при загрузке.
Главная идея такая: многие .dat-файлы — это NBT-структуры (бинарные «контейнеры» с тегами). У них есть теги, список значений и вложенные compound-объекты. В описаниях форматов часто встречается NBT как «NBT Compound / JSON Object», потому что структура логически похожа на json, хотя физически файл может быть NBT-формата.
Папки мира Java Edition и где лежит level.dat
Мир в Java Edition — это папка внутри .minecraft/saves/<мир>/. У неё есть своя directory structure, где хранятся данные уровня, игроков и частей мира.
Чаще всего в корне мира лежат важные файлы:
level.datlevel.dat_oldsession.lock- папки
data,datapacks,dimensions,region,entities,poiи др.
Идея проста: level-параметры и «глобальные» настройки — в level.dat, а разная «мелочь» по миру — в папках и отдельных region/измерениях.
level.dat: главный файл мира (и что он хранит)
level.dat — это основной файл, где игра держит глобальную information о мире. Когда мир загружается, текущий level.dat делается резервной копией в level.dat_old.
Типичный смысл данных в level.dat:
- время и базовые настройки мира
- настройки генерации
- seed (число, которое определяет генерацию)
- название уровня (LevelName)
- игровой режим по умолчанию (GameType)
- включены ли читы (allowCommands)
- параметры мира для одиночной игры, а также различная служебная data
По формату это NBT-файл с корневым tag, где есть:
- вложенный объект Data (в нём лежит основная информация),
- списки включённых/отключённых datapack’ов,
- параметры мира, вроде seed, Time, LastPlayed,
- блоки настроек, завязанные на генерацию и измерения.
Отдельно важно, что level.dat содержит string-значения (например, название), list (например, datapack’и) и другие типы тегов.
level.dat_new и level.dat_old: зачем две копии
Во время сохранения игра пишет новый вариант данных, а потом приводит файл к «рабочему» имени:
level.dat_new— промежуточная версия, которую программа записывает первой- после этого она переименовывается в
level.dat level.dat_old— резервная копия предыдущегоlevel.dat
То есть система устроена так, чтобы при сбое записи мир не «сломался» полностью.
session.lock: механизм блокировки файла мира
Файл session.lock нужен, чтобы не было двух одновременных попыток писать в один и тот же world-файл. Это защита от «перезаписи» данных.
Как работает механизм по сути:
- Minecraft открывает session.lock
- пытается захватить блокировку
- если блокировку взять нельзя, программа прекращает работу, чтобы не испортить данные
Также у этого файла есть история изменений. До версии 1.16 он содержал timestamp в формате с big endian 64-битным числом, а механизм в целом был «в стиле» контроля изменения доступа. После 1.16 формат стал другим: там записывается один символ (в описании фигурирует снежный человек ☃ в UTF-8).
Практический вывод: если вы работаете с файлами мира, важно понимать, что игра может удерживать lock, поэтому корректнее закрывать Minecraft перед чтением/изменением.
Где лежат данные игрока в файловой структуре мира
Данные конкретного игрока обычно не в level.dat, а в отдельных файлах с игроками в рамках мира. В зависимости от версии структуры могут встречаться разные форматы хранения (например, старые структуры до 1.7.6).
Внутри мира при современной логике используются файлы в формате NBT для:
- состояний игроков
- статистики
- прогресса (в том числе advancement)
Если игрок появляется/уходит, эти data обновляются через свои NBT-файлы и хранятся рядом с прочими данными уровня.
Папка data: что именно там лежит
В папке data Minecraft хранит разнообразные данные мира. Типично туда попадает всё, что не является чисто «геометрией чанков», а относится к логике мира и расширениям.
Классические примеры:
- data/minecraft/... — базовые данные ванильной системы
- данные про игровые правила/таблицы (например, loot tables для лута)
- game_rules.dat
- scheduled_events.dat
- world_border.dat
- различные служебные tag и данные расширений
- datapacks и связанные данные могут хранить data packs-конфигурации
Отдельно важная идея: datapack’и подключаются и отключаются через данные мира, а не только через интерфейс игры — и это отражается в структуре NBT.
datapacks: как пользовательский контент попадает в мир
Папка datapacks хранит пользовательские наборы данных (data packs) и каждый пак лежит отдельной подпапкой или файловой структурой.
Механика такая:
- игрок добавляет datapack
- игра сохраняет, какие datapack’и включены
- затем в мире остаётся папка/записи, по которым мир может собрать своё world-поведение
В level.dat при этом есть списки Enabled/Disabled (то есть какие datapack’и включены и какие отключены).
dimensions: как устроены измерения
Папка dimensions содержит данные для разных измерений. Внутри лежат структуры, соответствующие «измерению» мира.
Типовая логика:
- есть секции по измерениям (Overworld/Nether/The End)
- у каждого измерения свои region-файлы (чанки)
- также там же могут быть дополнительные файлы с dimension-специфичными данными
Важный момент: структура не одна на все измерения — dimension-данные живут внутри измерений, чтобы мир был «правильно собран» при загрузке.
region: где хранятся региональные файлы чанков
Папка region хранит региональные файлы формата Anvil (в описаниях часто фигурирует расширение .mca). Это файлы, в которых собраны чанки.
Как понять «что это такое»:
- Minecraft не хранит каждый чанк как отдельный маленький файл навсегда
- чанки группируются в регионы
- файлы региона — это «пачки чанков», чтобы чтение/запись было эффективнее
То есть region — это база «географии» и состояния мира по чанкам, а level.dat — «параметры мира».
entities и poi: чем отличаются и что в них лежит
Внутри каждого измерения дополнительно встречаются папки:
entitiespoi
entities хранит файлы с сущностями мира (игроки, мобы и т.п.) — то, что не сводится только к блокам в чанках.
poi — это poi (point of interest): места интереса для жителей и логика связанных объектов.
Например, в описаниях фигурируют:
- кровати, места работы и колокола
- также порталы в Нижний мир, ульи и компоновки для соответствующих систем (как точки интереса)
Отличие в простом:
- region и блоки — это «где стоит мир»
- entities — это «кто в мире»
- poi — это «какие важные места отмечает игра»
Что было до 1.7.6: устаревшие структуры уровня
В старых версиях Minecraft Java Edition структура данных была другой. В описаниях встречается период до 1.7.6, когда в папках мира могли храниться:
- старые файлы регионов
- файлы уровней и игроков в иных форматах (например, резервные копии, mcr-форматы и т.п.)
Если вы разбираете «папку уровня» из старой версии, важно учитывать, что её структура могла быть преобразована при обновлениях мира.
level.dat_mcr: что это было раньше
level.dat_mcr в описаниях относится к резервным копиям level.dat, использовавшимся до конвертации форматов регионов/уровня (например, перехода между MCRegion и Anvil).
Проще: это «старый след» предыдущего формата сохранения мира, чтобы восстановление или конвертация были возможны.
NBT в Minecraft: как хранятся данные
NBT — ключ к пониманию .dat. NBT состоит из:
- корневого tag
- compound-объектов (вложенных наборов полей)
- списков list значений
- разных типов: строк (string), чисел (int/long), массивов и т.д.
Из-за того, что NBT структурно напоминает JSON, часто объясняют «NBT Compound / JSON Object», но это именно представление структуры. На практике Minecraft читает именно NBT-формат данных.
GameType в level.dat: игровые режимы в виде чисел
В level.dat поле GameType хранит игровой режим одиночной игры по умолчанию при появлении игрока:
- 0 — Survival (выживание)
- 1 — Creative (креатив)
- 2 — Adventure (приключение)
- 3 — Spectator (наблюдатель)
При этом в описаниях отмечается нюанс: для одиночных миров поле GameType не всегда используется, чтобы «помнить», в каком режиме игрок находится прямо сейчас — оно про базовое значение.
Как в level.dat хранится версия мира
В level.dat есть информация о том, под какую версию Minecraft был сохранён мир: через блок Version, где присутствуют идентификаторы версии (data version, строковое имя и признак snapshot).
То есть level.dat содержит information не только о содержимом мира, но и о «контексте», как именно он был записан.
generatorOptions: как влияет на создание мира
Поле generatorOptions отвечает за параметры генератора мира в Overworld (актуально для некоторых версий). По сути, это настройки, которые определяют тип генерации.
Формат отличается от типа мира, например:
- для Buffet описывается biome_source, biomes, размеры и распределение биомов, параметры chunk generator и т.п.
- для Superflat описываются слои блоков и структуры генерации
Buffet и Superflat: примеры параметров generatorOptions
Для Buffet:
- biome_source и список биомов (biomes)
- размер биомных квадратов (size)
- тип распределения биомов
Для Superflat:
- слои с параметрами блока и высоты
- настройки structures (какие структуры и как создаются)
- иногда встречается строковое поле, связанное с generator-settings
Это важно, потому что generatorOptions хранит «рецепт мира», а не просто конечные результаты.
servers.dat в Java Edition: файл серверов в списке
В Java Edition отдельно есть servers.dat. Это файл, где хранятся сведения о серверах, которые игрок добавил в список серверов в клиенте.
Что servers.dat НЕ делает:
- он не хранит IP-адреса для прямого подключения из вариантов «как сейчас»
- не предназначен для хранения LAN-серверов
Где лежит:
- в корне папки, указанной в профиле лаунчера (по умолчанию .minecraft/servers.dat)
Как хранится:
- это тоже NBT-файл (в описании подчёркивается uncompressed NBT)
- структура содержит список servers, по одному набору данных на каждый сервер
Структура NBT в servers.dat и ключевые теги
В servers.dat обычно встречаются такие поля:
- servers — список серверов
- icon — кэш иконки (в виде Base64 PNG данных)
- ip — адрес сервера
- name — имя сервера, как его видит игрок
- acceptTextures — 1 или 0 (как сервер обрабатывает resource packs)
- в историях фигурируют теги наподобие hideAddress (скрывать адрес в списке)
Также отмечается, что можно добавлять цветные коды в названия через name — если использовать форматирующие коды, поддерживаемые клиентом.
Что означает acceptTextures в servers.dat
Тег acceptTextures управляет тем, что клиент будет делать с ресурсными пакетами сервера:
- если значение соответствует выбранному поведению, клиент может «всегда принимать» или «никогда не принимать» (в описаниях используется логика true/false как 1/0)
Итог: как быстро понять любой .dat в Minecraft
Если вы видите .dat minecraft, ориентируйтесь по месту в папке и названию файла:
level.dat— глобальные настройки и параметры мира (NBT, tag, compound, seed, GameType, Time)session.lock— блокировка, чтобы не было одновременной записи в мирdataиdatapacks— логические данные мира и включённые data packsdimensions,region,entities,poi— структура измерений, блоки по чанкам, сущности и точки интересаservers.dat— список серверов клиента (NBT, поляname,ip,icon,acceptTextures)
Так вы сможете не гадать «что это», а понимать, какой именно кусок мира или настроек хранит конкретный .dat-файл, и за что он отвечает в игре.