TeaHost
Minecraftminecraftмирыпереносlevel-name4 мин. чтения

Загрузка своего мира на сервер

Как загрузить мир на сервер Minecraft: где лежит сохранение, структура папок, level-name, перенос из одиночной игры и что делать с ошибками.

Кратко

Чтобы загрузить мир на сервер Minecraft, остановите его, сделайте бэкап, загрузите папку мира из .minecraft/saves архивом и распакуйте так, чтобы level.dat лежал в корне папки world (или укажите её имя в level-name). На Paper и Spigot Нижний мир и Край лежат отдельно: DIM-1 — в world_nether, DIM1 — в world_the_end. Мир из новой версии игры на старом ядре не запустится.

Обычная история: полгода строили карту в одиночке, теперь хочется позвать туда друзей. Загрузить мир на сервер несложно, но половина попыток заканчивается либо пустой генерацией, либо потерянным инвентарём — сервер хранит данные чуть иначе, чем одиночная игра.

Разберём, что именно копировать, куда и почему после переноса вы окажетесь на случайной точке в чистом поле.

Где лежит нужная папка

В одиночной игре сохранения хранятся здесь:

  • Windows: %appdata%\.minecraft\saves\<Имя мира>
  • macOS: ~/Library/Application Support/minecraft/saves/<Имя мира>
  • Linux: ~/.minecraft/saves/<Имя мира>

Внутри — level.dat, region, data, playerdata, entities (с 1.17), poi. Копировать нужно папку целиком, а не отдельные файлы.

Если мир скачан из интернета архивом, распакуйте и убедитесь, что level.dat лежит прямо в корне папки, а не внутри ещё одной вложенной директории с тем же названием. Лишний уровень вложенности — причина примерно каждого третьего «мир не загрузился».

Структура миров на сервере

На ванильном сервере структура такая же, как в одиночке: всё лежит в одной папке world. А на Paper, Spigot и других Bukkit-ядрах одна одиночная карта разворачивается в три папки:

  • world — Верхний мир;
  • world_nether — Нижний мир;
  • world_the_end — Край.

В одиночке всё лежит в одной папке: Нижний мир в <Мир>/DIM-1, Край в <Мир>/DIM1. Поэтому простое копирование даст только Верхний мир, а Нижний сгенерируется заново — со всеми потерянными порталами и базами.

Правильное соответствие:

код
<Мир>/region        ->  world/region
<Мир>/DIM-1/region  ->  world_nether/DIM-1/region
<Мир>/DIM1/region   ->  world_the_end/DIM1/region

Обратите внимание: внутри world_nether папка DIM-1 сохраняется. Это не опечатка, серверная структура именно такая. Если папок world_nether и world_the_end ещё нет, Bukkit-ядро при первом запуске обычно само переносит в них DIM-1 и DIM1 из основного мира — но надёжнее разложить их вручную и проверить результат.

Если Нижний мир и Край вам не нужны в принципе, их можно отключить и не возиться с копированием.

Как загрузить мир на сервер: порядок действий

  1. Остановите сервер. Не «перезапуск», а полная остановка. Живой сервер держит файлы мира открытыми и перезапишет ваши.
  2. Сделайте бэкап текущего мира, даже если он вам не нужен. Пять минут страховки против «а там был спавн с постройками».
  3. Заархивируйте свой мир в zip. Один файл на 300 МБ загружается в разы быстрее, чем 40 тысяч мелких региональных файлов. По SFTP папка с чанками может грузиться часами.
  4. Загрузите архив в корень сервера через файловый менеджер панели и распакуйте прямо там.
  5. Удалите старые world, world_nether, world_the_end и переименуйте свои папки в эти имена.
  6. Запустите сервер и проверьте консоль.

Альтернатива переименованию — оставить своё название и указать его в server.properties:

код
level-name=MyEpicWorld

Тогда Нижний мир сервер ждёт в MyEpicWorld_nether, а Край — в MyEpicWorld_the_end. Остальные параметры файла разобраны в настройке server.properties.

Что проверить после запуска

Сид и генерация новых чанков. Если отойти от загруженной территории, сервер начнёт генерировать продолжение. Чтобы стык не выглядел обрывом, сид должен совпадать — он берётся из level.dat автоматически, но при пересоздании мира теряется. Посмотреть текущий: /seed.

Точка спавна. После переноса вас, скорее всего, выкинет в случайное место. Встаньте где нужно и выполните /setworldspawn. Подробности — в заметке про точку спавна и spawn-protection.

Инвентарь и позиция игроков. На сервере они лежат в playerdata/<uuid>.dat, а инвентарь хозяина одиночного мира хранится внутри level.dat и сервером не подхватывается. Перенести его можно редактором NBT, но проще выдать вещи командой.

Версия. Мир, открытый в 1.21, обратно на 1.20 не заведётся: формат чанков меняется, и сервер напишет ошибку о несовместимости. Апгрейд работает только вперёд, и то не всегда гладко. Про смену версий есть отдельная статья.

Права на файлы. При загрузке архива под другим пользователем сервер может не получить доступ на запись. Симптом — мир загрузился, но изменения не сохраняются после рестарта.

Мир как дополнительный, а не основной

Иногда карту нужно подключить рядом с существующим миром — например, добавить готовую PvP-арену или парк развлечений. Тогда не трогайте level-name, а поставьте Multiverse-Core:

код
/mv import arena normal
/mvtp arena

Папка arena при этом просто лежит в корне сервера рядом с world. Подробнее — в статье про несколько миров через Multiverse.

Частые вопросы

Почему сервер запустился, но мир пустой?

Почти всегда путь не совпадает: level-name указывает на одно, а папка называется иначе. Второй вариант — лишняя вложенность после распаковки архива.

Почему пропал Нижний мир?

Не скопирована DIM-1 в world_nether/DIM-1. Восстанавливается из исходного сохранения, если оно ещё цело.

Что значит ошибка про несовместимую data version?

Мир из более новой версии игры. Обновите ядро сервера до соответствующей версии, откатить формат назад штатными средствами нельзя.

Что делать, если мир весит 4 ГБ и сервер тормозит?

Большая карта — это не только место на диске, но и время на загрузку чанков. Имеет смысл обрезать неиспользуемые области, об этом — очистка мира и обрезка чанков.

Можно ли залить мир с модами на ванильный сервер?

Нет. Блоки и предметы из модов при загрузке ванильным ядром превращаются в воздух, и это необратимо. Ядро на сервере должно совпадать с тем, в котором мир создавался.

Коротко

Остановить сервер → архив → распаковать → разложить DIM-1 и DIM1 по правильным папкам → level-name → старт → /setworldspawn. Всё остальное — детали конкретной карты. Расширенный разбор с нюансами модов есть в статье как перенести мир на сервер.

Если площадка для карты ещё не выбрана — посмотрите тарифы на Minecraft.