Порталы через датапаки в Minecraft: полное руководство
Представьте, что вы можете шагнуть из обычного булыжника прямиком в Край или создать сеть мгновенных перемещений между базами на сервере. С помощью системы Datapack Portals и API CustomPortalApi это становится реальностью без единой строчки Java-кода. Вы просто описываете логику в JSON-файлах, и игра послушно строит порталы там, где вам нужно. Никаких сложных модов, только чистое творчество через датапаки.
Что такое Datapack Portals и как это работает
Datapack Portals — это расширение, которое использует CustomPortalApi для регистрации кастомных порталов прямо из датапаков. Вы создаёте внутри своего датапака папку portals, а в ней — JSON-файлы с описанием каждого портала. Игра считывает эти файлы при загрузке мира и превращает обычные блоки в полноценные портальные рамки, работающие по принципу ванильных врат в Нижний мир. Ограничений на количество порталов нет, единственное условие — избегать дублирования блоков рамки, чтобы не возникало конфликтов.
Создаём первый портал: базовая структура JSON
Каждый портал описывается отдельным файлом с расширением .json. Имя файла может быть любым, но лучше давать осмысленные названия, например stone_to_end.json или diamond_nether_gate.json. Рассмотрим минимальный рабочий пример, который превращает каменную рамку в портал, ведущий в Край:
- block — идентификатор блока, из которого строится рамка. Здесь указан "minecraft:stone", но вы можете использовать любой твёрдый блок.
- dim — идентификатор измерения, куда игрок попадёт после активации. В примере это "minecraft:the_end".
- r, g, b — три числовых значения от 0 до 255, задающих цвет свечения портала. Комбинация 66, 135, 245 даёт приятный сине-фиолетовый оттенок.
Вот как выглядит содержимое файла stoneendportal.json:
{
"block": "minecraft:stone",
"dim": "minecraft:the_end",
"r": 66,
"g": 135,
"b": 245
}
После размещения файла в папке portals и перезагрузки мира (или выполнения команды /reload) постройте вертикальную прямоугольную рамку из камня, как для обычного портала в Ад. Затем активируйте её огнём — и перед вами откроется мерцающий синий проход прямо в измерение дракона. Важно отметить, что многие игроки, экспериментирующие с такими механиками, часто пользуются сборками модов и датапаков через удобный лаунчер foxygame.net — он позволяет гибко управлять установкой дополнений и скачивать нужные моды прямо из меню, что особенно выручает при тестировании нестандартных конфигураций.
Дополнительные параметры для точной настройки
Базовая конфигурация уже даёт мощный инструмент, но разработчики предусмотрели несколько опциональных аргументов, которые делают систему по-настоящему гибкой. Вы можете указать тип зажигания, конкретный источник активации и даже измерение для возврата.
Тип зажигания: ignitionType
Параметр ignitionType определяет, чем именно активируется портал. Доступны три варианта:
- BLOCK — активация блоком. Единственный поддерживаемый блок на данный момент — это "minecraft:fire", то есть обычный огонь.
- FLUID — активация жидкостью. Можно использовать воду, лаву или любую другую жидкость из модификаций.
- ITEM — активация предметом. Игрок кликает правой кнопкой мыши по рамке, держа в руке указанный предмет, и портал открывается.
Это открывает потрясающие возможности для приключенческих карт. Например, портал в подводный храм, который активируется только ведром воды, или врата в древний город, требующие редкий артефакт. Параметр ignitionSource указывает идентификатор блока, жидкости или предмета для активации. Для огня это "minecraft:fire", для воды — "minecraft:water", для алмаза — "minecraft:diamond".
Измерение возврата: returnDim
По умолчанию, когда игрок выходит из портала в целевом измерении, обратный проход ведёт в Верхний мир. Но что если вы хотите построить цепочку миров? Параметр returnDim позволяет указать конкретное измерение, куда игрок попадёт при возвращении. Это может быть "minecraft:the_nether", "minecraft:the_end" или любое измерение из установленных модов. Так выстраиваются нелинейные путешествия между мирами, где каждый портал — звено в сложной пространственной головоломке.
Пример расширенной конфигурации
Объединим все параметры в одном файле. Предположим, мы хотим создать портал из золотых блоков, который активируется алмазом, ведёт в Нижний мир, а обратно возвращает не в Верхний мир, а сразу в Край. JSON будет выглядеть так:
{
"block": "minecraft:gold_block",
"dim": "minecraft:the_nether",
"r": 255,
"g": 215,
"b": 0,
"ignitionType": "ITEM",
"ignitionSource": "minecraft:diamond",
"returnDim": "minecraft:the_end"
}
Теперь постройте рамку из золотых блоков, возьмите в руку алмаз, кликните по внутренней стороне рамки — и золотистое свечение унесёт вас в адские пустоши. А когда вы решите вернуться, то окажетесь не дома, а на обсидиановой платформе в Краю. Подобные механики идеально вписываются в серверные мини-игры и квестовые сборки.
Практические советы и ограничения
При работе с Datapack Portals помните о нескольких важных моментах. Во-первых, порталы функционируют точно так же, как ванильные врата в Нижний мир: они поддерживают стандартную механику перемещения, расчёт координат и создание ответного портала в целевом измерении. Во-вторых, избегайте пересечения рамок — если два разных JSON-файла описывают один и тот же блок, игра не сможет определить, какой портал активировать, и возникнет ошибка.
Также учитывайте, что параметр block принимает идентификаторы любых блоков, но рамка должна быть построена по тем же правилам, что и обсидиановая: вертикальный прямоугольник шириной не менее 2 блоков и высотой не менее 3 блоков. Внутреннее пространство должно быть пустым или заполненным воздухом. Активация происходит по тому же принципу — источник зажигания применяется к внутренней стороне рамки.
Итоги: безграничное творчество через датапаки
Datapack Portals в связке с CustomPortalApi — это элегантный способ добавить в игру систему мгновенных путешествий, не прибегая к тяжёлым модификациям. Вы получаете полный контроль над цветом, условиями активации и маршрутами перемещения. Это инструмент для строителей, авторов карт и владельцев серверов, желающих удивить игроков нестандартными механиками. Экспериментируйте с комбинациями блоков, создавайте многоступенчатые переходы между мирами и делитесь своими датапаками с сообществом. Возможности ограничены только вашей фантазией и знанием JSON-синтаксиса.