Начните с пресета
Quest step использует триггер impossible, и выполнить его может только ваша команда. Recipe unlock нужен, чтобы кастомный рецепт попал в книгу рецептов. Hunt challenge выполняется, когда игрок убивает выбранного моба.
Ачивки — это самое близкое к квестовой системе, что есть в ванили. Они складываются в деревья, показывают всплывающее уведомление при выполнении и умеют выдавать опыт, разблокировать рецепты или запускать функцию. Инструмент пишет JSON и строку /advancement grant, которой ачивка выдаётся.
Ачивки живут внутри датапака. Генератор датапаков соберёт папку, если её ещё нет.
Корневая ачивка открывает собственную вкладку на экране достижений. Укажите родителя — и она станет шагом внутри его дерева.
Именно так кастомный рецепт наконец появляется в книге рецептов. В этом и состоит вся работа большинства ванильных ачивок, которых вы никогда не видите.
Сохранить как
С триггером impossible это единственный способ её завершить — ровно то, что нужно, когда шаг квеста закрывается вашей логикой, а не событием в мире.
Заполните файл, отображение, триггер и награды — JSON, путь и команда выдачи обновляются во время ввода.
Quest step использует триггер impossible, и выполнить его может только ваша команда. Recipe unlock нужен, чтобы кастомный рецепт попал в книгу рецептов. Hunt challenge выполняется, когда игрок убивает выбранного моба.
Пространство имён и имя файла дают путь и ID. Если поле родителя пустое, достижение становится корнем со своей вкладкой и фоном; если указать ID родителя, например harbor:harbor_quest_1, оно станет шагом в этом дереве.
Название, описание и значок — то, что видят игроки. Рамка тоже важна: task — простой квадрат, goal — скруглённая, а challenge получает шипастую рамку, своё всплывающее окно и звук. Уведомление, сообщение в чат и скрытость — переключатели.
impossible сам никогда не срабатывает. tick срабатывает в следующем тике у каждого игрока — подходит корню, который должен быть виден сразу. player_killed_entity ждёт убийства указанного типа сущности.
Опыт, функция, которая выполняется от лица игрока, и рецепты для открытия. Команда под JSON выдаёт достижение вручную.
Достижение, ID родителя которого не существует, вообще не загружается. Если шаг не появляется, проверьте путь родителя.
Скрытое достижение не видно на экране вместе со всеми потомками, пока его не выполнят.
Сообщение в чат включено по умолчанию. На людном сервере выключайте его для мелких шагов и оставляйте для тех, что стоит отметить.
Java Edition 1.20–26.3. В 1.20.5 поле значка переименовали из item в id, а папка называется advancement с 1.21 и advancements до неё; выбор версии учитывает оба изменения. Чтобы повторить проверку, /advancement revoke @s only <id> забирает достижение, а награды снова сработают при следующей выдаче.