BlueMap: 3D веб-карта сервера Minecraft

BlueMap строит по миру сервера 3D-модели и показывает их в браузере через встроенный веб-сервер. Он работает как плагин для Paper и Spigot и как мод для Fabric, Forge и NeoForge, распространяется бесплатно под MIT. Ниже установка, открытие карты, рендер, хранение и маркеры по официальной вики.

Установка плагина

  1. Скачайте jar под своё ядро и версию игры на Modrinth или GitHub. Текущие релизы собраны под 26.1.2–26.3, для 1.21 и старше берите прошлые версии из списка.
  2. Положите jar в plugins (для Fabric, Forge и NeoForge в mods) и перезапустите сервер. BlueMap создаст конфиги и сразу заведёт по карте на каждый мир.
  3. В core.conf поставьте accept-download: true. Так вы соглашаетесь скачать у Mojang ресурсы клиента: из них BlueMap строит и текстурирует 3D-модели, без них карта не работает.
  4. В webserver.conf укажите порт для карты.
  5. Выполните /bluemap reload или перезапустите сервер. Прогресс рендера показывает команда /bluemap.

Конфиги на Paper и Spigot лежат в ./plugins/BlueMap/, на Forge, Fabric и Sponge в ./config/bluemap/. Нужна Java 25 или новее, миры Bedrock Edition не поддерживаются.

Как открыть веб-карту: порт 8100

BlueMap поднимает свой небольшой веб-сервер. Его настройки в webserver.conf:

enabled: true
webroot: "bluemap/web"
port: 8100

Карта открывается по адресу http://IP-сервера:8100/, где IP тот же, по которому игроки заходят в Minecraft. Нужен отдельный порт помимо игрового: на хостинге его выдают по запросу, на своём сервере откройте TCP-порт в фаерволе.

Если страница не открывается, по FAQ проверьте три вещи:

  • в консоли есть сообщение Webserver started..., иначе ищите ошибки и предупреждения в логе;
  • адрес начинается с http, а не https;
  • порт открыт и проброшен, фаервол не режет входящие подключения.

Ошибка 404 обычно значит, что в core.conf не включён accept-download или в webapp.conf и webserver.conf указаны разные папки webroot.

Рендер и нагрузка на сервер

Команды для рендера почти не нужны: BlueMap сам замечает изменения в мире и перерисовывает только их. Даже если удалить мир и создать новый, при правильно настроенной карте BlueMap сам удалит старую карту и отрендерит новый мир. Вручную карту чистят, когда поменяли настройки, которые требуют перерендера:

/bluemap maps
/bluemap purge <map-id>
/bluemap freeze <map-id>
/bluemap unfreeze <map-id>
/bluemap stop
/bluemap start
  • /bluemap maps покажет ID карт.
  • purge удаляет данные карты, после чего она рендерится заново, если не заморожена.
  • freeze останавливает обновления одной карты, stop и start ставят на паузу и возобновляют весь рендер. Оба состояния сохраняются после рестарта.

Скорость и нагрузку задаёт render-thread-count в core.conf: больше потоков, больше занятых ядер и быстрее рендер. Сам Minecraft обычно использует не больше трёх ядер, остальные можно отдать BlueMap. На процессоре с 4 ядрами и меньше вики советует ставить 1. Если лаги всё равно есть, player-render-limit в plugin.conf выключает рендер, когда онлайн достигает заданного числа.

Изменения появляются на карте только после того, как сервер сохранит мир на диск. В браузере нажмите Update Map в меню слева, чтобы подтянуть свежую версию.

Где хранится карта и как перенести её в SQL

По умолчанию webroot лежит в ./bluemap/web/ в корне сервера, а данные карт в ./bluemap/web/maps/. Настройки каждой карты хранятся отдельными файлами в подпапке maps среди конфигов BlueMap.

Для базы данных вики даёт такой порядок:

  1. В storages/sql.conf настройте подключение к SQL-серверу.
  2. В конфиге каждой карты поставьте storage: "sql".
  3. Выполните /bluemap reload.
  4. Удалите старые файлы, чтобы они не мешали: /bluemap storages file delete <map> для каждой перенесённой карты или вручную папку ./bluemap/web/maps.

Маркеры на карте

Маркеры задаются в конфиге карты или добавляются сторонними плагинами через API BlueMap. Все маркеры группируются в наборы (marker-sets), каждый набор виден в меню карты и включается или выключается целиком. Пример POI-маркера из вики:

marker-sets: {
  example-marker-set: {
    label: "Example Marker Set"
    toggleable: true
    default-hidden: false
    sorting: 0
    markers: {
      example-poi-marker: {
        type: "poi"
        position: { x: 1, y: 64, z: -23 }
        label: "Example POI Marker"
        detail: "This is a <b>POI</b> marker"
        icon: "assets/poi.svg"
        anchor: { x: 25, y: 45 }
      }
    }
  }
}

Кроме poi есть типы html, line, shape и extrude: для HTML-подписей, линий, плоских и объёмных областей. После правки выполните /bluemap reload.

BlueMap или Dynmap

Оба плагина бесплатные и показывают карту в браузере через встроенный веб-сервер. Разница по документации:

ПараметрBlueMapDynmap
Карта3D-модели мираготовые картинки-тайлы
Порт по умолчанию81008123
Версиидо 26.3до 1.21.11 (релиз 3.8)
Хранениефайлы или SQL-базафайлы или SQL-база

Если сервер уже на 26.x, из этих двух сейчас подходит только BlueMap. Для Towny у Dynmap есть официальный аддон Dynmap-Towny.

Команды и права BlueMap

КомандаЧто делаетПраво
/bluemapстатус рендераbluemap.status
/bluemap versionверсия BlueMap и сведения о системеbluemap.version
/bluemap helpссылки на вики и Discord поддержкиbluemap.help
/bluemap reload [light]перезагрузить конфиги и веб-сервер; light быстрее, без перезагрузки ресурсовbluemap.reload
/bluemap mapsсписок загруженных картbluemap.maps
/bluemap storagesсписок хранилищbluemap.storages
/bluemap storages <storage> delete <map>удалить выгруженную карту из хранилищаbluemap.storages.delete
/bluemap stopпоставить весь рендер на паузуbluemap.stop
/bluemap startвозобновить рендерbluemap.start
/bluemap freeze <map-id>заморозить обновления одной картыbluemap.freeze
/bluemap unfreeze <map-id>разморозить картуbluemap.unfreeze
/bluemap purge <map-id>удалить данные карты для перерендераbluemap.purge
/bluemap update [map-id] [x z] [block-radius]обновить изменённые чанки мира или областиbluemap.update
/bluemap force-update [map-id] [x z] [block-radius]перерисовать всё, даже без измененийbluemap.update
/bluemap fix-edges [map-id] [x z] [block-radius]перерисовать края картыbluemap.update
/bluemap tasksочередь задач рендераbluemap.tasks
/bluemap tasks cancel allотменить все задачи в очередиbluemap.tasks.cancel
/bluemap troubleshoot [map] [x z]поиск проблем с картой в точке и советыbluemap.troubleshoot
/bluemap debug dumpсохранить состояние в ./bluemap/dump.jsonbluemap.debug.dump

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

Как открыть карту BlueMap в браузере?
По адресу http://IP-сервера:8100/, где 8100 это порт из webserver.conf. Используйте http, а не https, и откройте порт на хостинге или в фаерволе.
BlueMap это плагин или мод?
И то и другое: есть сборки для Paper, Folia, Purpur, Spigot и Sponge, а также моды для Fabric, Forge и NeoForge. Ставится BlueMap на сервер, игрокам для просмотра карты нужен только браузер.
Почему BlueMap показывает 404?
Чаще всего в core.conf не включён accept-download: true. Если он включён, проверьте, что webroot в webapp.conf и webserver.conf указывает на одну и ту же папку.
Почему карта BlueMap не обновляется?
BlueMap ждёт, пока сервер сохранит мир на диск, поэтому изменения появляются с задержкой. В браузере нажмите Update Map в меню слева.
Как добавить маркеры в BlueMap?
Опишите marker-sets в конфиге карты и выполните /bluemap reload. Маркеры бывают poi, html, line, shape и extrude, их также умеют добавлять сторонние плагины через API BlueMap.
Что выбрать, Dynmap или BlueMap?
BlueMap строит 3D-карту и уже поддерживает 26.x, Dynmap рисует картинки-тайлы и официально доведён до 1.21.11. Для связки с Towny у Dynmap есть официальный аддон.
Как настроить BlueMap?
Минимум: accept-download: true в core.conf, свободный порт в webserver.conf и /bluemap reload. Нагрузку регулируют render-thread-count в core.conf и player-render-limit в plugin.conf.

Не хочется настраивать самому

Готовые сборки серверов Cloud Delight: плагины уже подобраны и настроены, права, меню и защита собраны в одно целое.