Как установить карту на сервер Minecraft

Подготовка и доступ к серверу

  1. Войдите в панель proxify.cloud
    Откройте https://proxify.cloud и авторизуйтесь. В списке услуг выберите нужный выделенный сервер (Dedicated Server) с установленным Ubuntu.

  2. Откройте консоль сервера
    В панели управления сервером нажмите кнопку Console (или VNC Console). Откроется терминал с прямой оболочкой Ubuntu. Альтернативно подключитесь по SSH с локального компьютера:

    ssh root@<IP_АДРЕС_СЕРВЕРА>
    

    IP-адрес указан в деталях сервера в панели proxify.cloud.

  3. Определите пользователя, от имени которого запущен сервер Minecraft
    Обычно это отдельный пользователь minecraft или mc. Проверьте:

    ps aux | grep java
    

    В выводе посмотрите столбец USER. Дальше выполняйте команды от этого пользователя (через su - minecraft или sudo -u minecraft -i), чтобы избежать проблем с правами доступа.

  4. Остановите сервер Minecraft
    Не копируйте файлы карты на работающий сервер — это приведет к повреждению чанков.
    Если используется systemd-юнит:

    sudo systemctl stop minecraft
    

    Если сервер запущен в screen/tmux — зайдите в сессию и введите stop, либо используйте скрипт управления (например, ./manage.sh stop).

Получение и подготовка карты

  1. Скачайте архив карты на локальный компьютер
    Карта может быть в формате .zip, .tar.gz или .rar. Убедитесь, что внутри архива находится папка уровня (world), а не просто файлы level.dat, region/ и т.д. в корне.

  2. Загрузите архив на сервер
    Вариант А — через SCP (из терминала локального ПК):

    scp map.zip minecraft@<IP_АДРЕС_СЕРВЕРА>:/home/minecraft/
    

    Вариант Б — через SFTP (FileZilla, WinSCP): хост — IP сервера, пользователь — minecraft, порт 22.
    Вариант В — если у вас есть веб-панель управления игровым сервером (Pterodactyl, PufferPanel) на этом же выделенном сервере — используйте её файловый менеджер.

  3. Распакуйте архив на сервере
    Перейдите в домашнюю директорию пользователя сервера:

    cd /home/minecraft
    

    Распаковка в зависимости от формата:

    # ZIP
    unzip map.zip
    # TAR.GZ
    tar -xzf map.tar.gz
    # RAR (нужен пакет unar)
    unar map.rar
    

    После распаковки вы должны увидеть папку карты, например NewWorld/ или world/.

  4. Проверьте структуру распакованной карты
    Внутри папки карты обязательно должны быть:

    • level.dat
    • папка region/
    • папки poi/, entities/ (для новых версий)
    • data/ (опционально)
    ls -la NewWorld/
    

    Если архив распаковался с лишней вложенностью (например, NewWorld/NewWorld/level.dat), переместите содержимое на уровень выше.

Установка карты на сервер

  1. Определите текущую папку мира сервера
    Откройте server.properties:

    cat server.properties | grep level-name
    

    По умолчанию значение level-name=world. Это значит, что сервер ищет мир в папке world/ рядом с server.jar.

  2. Сделайте бэкап текущего мира (рекомендуется)

    mv world world_backup_$(date +%F)
    

    Если дисковое пространство позволяет, сожмите бэкап:

    tar -czf world_backup_$(date +%F).tar.gz world_backup_$(date +%F)
    
  3. Переместите новую карту на место старой
    Вариант 1 — переименуйте папку новой карты в world (если level-name=world):

    mv NewWorld world
    

    Вариант 2 — измените level-name в server.properties на имя папки новой карты (например, NewWorld):

    sed -i 's/^level-name=.*/level-name=NewWorld/' server.properties
    

    Важно: Имя папки чувствительно к регистру на Linux. NewWorldnewworld.

  4. Исправьте права доступа
    Файлы после загрузки от root или через SFTP могут иметь неверного владельца. Выполните от root или через sudo:

    chown -R minecraft:minecraft /home/minecraft/world
    # или для кастомного имени
    chown -R minecraft:minecraft /home/minecraft/NewWorld
    chmod -R u+rwX /home/minecraft/world
    
  5. Проверьте версию протокола/версию мира
    Откройте level.dat с помощью NBT-инструмента (если установлен nbtedit или python3 с библиотекой nbt):

    python3 -c "
    import nbt
    data = nbt.read_from_nbt_file('world/level.dat')
    print('Data version:', data['Data']['Version']['Name'].value)
    print('Game version:', data['Data']['Version']['Id'].value)
    "
    

    Убедитесь, что версия мира совместима с версией сервера (Paper/Spigot/Fabric/Forge). Загрузка мира 1.20.4 на сервер 1.16.5 приведет к ошибкам или потере данных.

Запуск и проверка

  1. Запустите сервер
    Через systemd:

    sudo systemctl start minecraft
    

    Через скрипт/скрин:

    ./start.sh
    # или
    screen -S mc -d -m bash -c 'java -Xms4G -Xmx4G -jar paper.jar nogui'
    
  2. Следите за логами запуска

    journalctl -u minecraft -f
    # или
    tail -f logs/latest.log
    

    Нормальный запуск с новой картой содержит строки:

    [Server thread/INFO]: Preparing level "world"
    [Server thread/INFO]: Loaded 489 advancements
    [Server thread/INFO]: Done (12.345s)! For help, type "help"
    

    Ошибки [Server thread/ERROR]: Exception loading chunk или Missing data for world указывают на несовместимость версий или повреждение файлов.

  3. Подключитесь к серверу и проверьте карту
    Зайдите в игру, добавьте сервер по IP (из панели proxify.cloud) и проверьте:

    • Спавн находится в правильном месте.
    • Строения/ландшафт соответствуют загруженной карте.
    • Команды /seed выдают сид карты (если он известен).
  4. При необходимости — выполните оптимизацию
    После первой загрузки новой карты сервер может генерировать кэш чанков. Дайте ему поработать 5–10 минут. При использовании Paper/Purpur можно запустить принудительную оптимизацию:

    /paper chunkinfo
    /paper optimize
    

    Для Fabric/Forge используйте моды вроде Lithium или FerriteCore (устанавливаются заранее в mods/).

Настройка спавна и границ (опционально)

  1. Установите точку спавна
    Если спавн карты не совпадает с нужным, в игре (оператор) выполните:

    /setworldspawn <x> <y> <z>
    /gamerule spawnRadius 0
    

    Или через консоль сервера:

    setworldspawn 100 64 200
    gamerule spawnRadius 0
    
  2. Ограничьте границу мира (World Border)
    Если карта имеет фиксированные размеры (например, 2000x2000 блоков):

    /worldborder center 0 0
    /worldborder set 2000
    /worldborder damage amount 0.1
    /worldborder damage buffer 5
    

    Это предотвратит генерацию новых чанков за пределами карты.

  3. Настройте server.properties под карту
    Рекомендуемые параметры для загруженной карты:

    allow-nether=true
    allow-end=true
    generate-structures=false
    # Если карта уже сгенерирована полностью:
    max-world-size=1000
    # Отключить спавн мобов, если карта приключенческая:
    spawn-monsters=false
    spawn-animals=false
    

Автоматизация бэкапов (рекомендация)

  1. Настройте ежедневный бэкап мира через cron
    От root:
    crontab -e -u minecraft
    
    Добавьте строку (каждый день в 04:00):
    0 4 * * * tar -czf /home/minecraft/backups/world_$(date +\%F_\%H-\%M).tar.gz -C /home/minecraft world && find /home/minecraft/backups -name "world_*.tar.gz" -mtime +7 -delete
    
    Создайте папку заранее:
    mkdir -p /home/minecraft/backups
    chown minecraft:minecraft /home/minecraft/backups
    

Возможные проблемы и решения

1. Сервер запускается, но игроки спавнятся в пустоте/под землей
Причина: level.dat содержит неверные координаты спавна или карта сконвертирована некорректно.
Решение: Выполните /setworldspawn в нужных координатах. Проверьте level.dat через NBT: ключ SpawnX, SpawnY, SpawnZ в разделе Data.

2. Ошибка Failed to load chunk / Chunk file has too many blocks
Причина: Карта создана в более новой версии Minecraft, чем версия сервера (например, мир 1.21 на сервере 1.20).
Решение: Обновите сервер (Paper/Spigot/Fabric) до версии, совместимой с миром. Даунгрейд миров не поддерживается официально.

3. После загрузки карты отсутствуют постройки/блоки
Причина: Неверная структура папки — вы загрузили содержимое папки мира, а не саму папку, либо путь в level-name не совпадает с именем папки.
Решение: Проверьте ls -la /home/minecraft/ — должна быть папка, имя которой в точности совпадает