Руководство

Как сделать плагин квестов для Minecraft

Обновлено: 18 октября 2026 г.

Квесты дают игрокам причину играть: убить 20 зомби, добыть 64 железа, принести жителю 10 хлеба. Плагин квестов состоит из трёх частей: задач, которые слушают игровые события, прогресса, сохранённого для каждого игрока, и наград. Если описывать квесты в конфиг-файле, новые можно добавлять, не трогая код.

Замените квесты и награды на свои.

Сгенерировать это в Codexe

Шаг за шагом

  1. 1.Выберите типы задач

    Начните с нескольких: убить моба определённого типа, сломать или поставить блоки, собрать предметы, скрафтить, дойти до места, поговорить с NPC. Любой квест собирается из них.

  2. 2.Опишите квесты в файле

    Каждый квест в quests.yml: идентификатор, название, описание, задачи с количеством, награды и требования (сначала другой квест, право, уровень).

  3. 3.Отслеживайте прогресс каждого игрока

    Слушайте события, стоящие за каждой задачей, и добавляйте их к прогрессу игрока. Сохраняйте его в SQLite или в файл, чтобы он переживал выход из игры и перезапуски.

  4. 4.Показывайте прогресс

    Меню /quests с активными и завершёнными квестами, а также сообщение, титр или боссбар при изменении прогресса.

  5. 5.Выдавайте награды

    Предметы, опыт, деньги через Vault или консольные команды вроде lp user %player% permission set ... для всего остального.

  6. 6.Соберите плагин и пройдите квест в игре

    Дождитесь, пока Codexe скомпилирует плагин, зайдите на тестовый сервер, возьмите квест и выполните его. Затем перезапустите сервер и проверьте, что прогресс и награды сохранились.

Задачи и события за ними

ЗадачаСобытиеЧто нужно решить
Убить мобовEntityDeathEventСчитать только убийства самим игроком или ещё и его питомцами и стрелами
Сломать блокиBlockBreakEventИгнорировать блоки, поставленные игроком, иначе игроки будут ставить и ломать один и тот же блок
Собрать предметыПроверка инвентаря или событие подбораЗабираются ли предметы при сдаче квеста
Скрафтить предметыCraftItemEventКрафт с Shift создаёт несколько предметов сразу
Дойти до местаPlayerMoveEventПроверять только при смене блока, а не при каждом движении
Поговорить с NPCPlayerInteractEntityEventКакая сущность выдаёт квест

Квестодатели

Самый простой квестодатель это команда или меню. Для персонажа в мире подойдёт житель или стойка для брони с особым именем и меткой PersistentDataContainer, без других плагинов: плагин узнаёт его, когда игрок кликает по нему правой кнопкой. Если на вашем сервере уже есть плагин NPC, например Citizens, назовите его в запросе, чтобы плагин к нему подключился.

Пример описания

«Плагин квестов для Paper 1.21.4 под названием Quests. Типы задач: убить мобов, сломать блоки (не поставленные игроками), собрать предметы и поговорить с жителем, помеченным как квестодатель. Квесты описаны в quests.yml с названием, задачами, требуемым квестом и наградами (предметы, опыт, деньги Vault, консольные команды). /quests открывает меню с доступными, активными и завершёнными квестами. Прогресс показывается на панели действий. До 3 активных квестов. Ежедневные квесты сбрасываются в полночь по времени сервера. Прогресс хранится в SQLite.»

Ежедневные и повторяемые квесты

  • Укажите, когда они сбрасываются: в фиксированное время каждый день или через 24 часа после того, как игрок их выполнил.
  • Укажите, случайны ли ежедневные квесты для каждого игрока или одинаковы для всех.
  • Храните время последнего выполнения, а не флаг, чтобы сброс работал, даже пока сервер выключен.

Вопросы

Могут ли квесты использовать PlaceholderAPI?

Да. Попросите плейсхолдеры вроде активного квеста и его прогресса, чтобы их могли показывать скорборды и таб-лист. Назовите PlaceholderAPI в запросе, чтобы он был добавлен как зависимость.

Можно ли писать квесты на Skript?

Небольшая система квестов помещается в скрипт Skript с переменными. Много типов задач, меню и сохранённый прогресс для сотен игроков проще держать быстрыми и упорядоченными в плагине.

Как проверить, что квесты работают?

Пройдите их на тестовом сервере Codexe и добавьте тесты своими словами, например «обычный игрок вводит /quests и видит, что открылось меню». Тесты проверяют сообщения, предметы и меню, но не мобов или блоки в мире.

Создайте свой плагин квестов

Этот промпт откроется уже готовым к отправке:

“Плагин квестов для Paper 1.21.4: типы задач «убить мобов», «сломать блоки, не поставленные игроками», «собрать предметы» и «поговорить с помеченным жителем»; квесты в quests.yml с задачами, требуемым квестом и наградами (предметы, опыт, деньги Vault, консольные команды); меню /quests с доступными, активными и завершёнными квестами; прогресс на панели действий; максимум 3 активных квеста; ежедневные квесты сбрасываются в полночь; прогресс хранится в SQLite.”

Сгенерировать это в Codexe
Как сделать плагин квестов для Minecraft | Codexe