Руководство
Как сделать плагин квестов для Minecraft
Обновлено: 18 октября 2026 г.
Квесты дают игрокам причину играть: убить 20 зомби, добыть 64 железа, принести жителю 10 хлеба. Плагин квестов состоит из трёх частей: задач, которые слушают игровые события, прогресса, сохранённого для каждого игрока, и наград. Если описывать квесты в конфиг-файле, новые можно добавлять, не трогая код.
Замените квесты и награды на свои.
Сгенерировать это в CodexeШаг за шагом
1.Выберите типы задач
Начните с нескольких: убить моба определённого типа, сломать или поставить блоки, собрать предметы, скрафтить, дойти до места, поговорить с NPC. Любой квест собирается из них.
2.Опишите квесты в файле
Каждый квест в
quests.yml: идентификатор, название, описание, задачи с количеством, награды и требования (сначала другой квест, право, уровень).3.Отслеживайте прогресс каждого игрока
Слушайте события, стоящие за каждой задачей, и добавляйте их к прогрессу игрока. Сохраняйте его в SQLite или в файл, чтобы он переживал выход из игры и перезапуски.
4.Показывайте прогресс
Меню
/questsс активными и завершёнными квестами, а также сообщение, титр или боссбар при изменении прогресса.5.Выдавайте награды
Предметы, опыт, деньги через Vault или консольные команды вроде
lp user %player% permission set ...для всего остального.6.Соберите плагин и пройдите квест в игре
Дождитесь, пока Codexe скомпилирует плагин, зайдите на тестовый сервер, возьмите квест и выполните его. Затем перезапустите сервер и проверьте, что прогресс и награды сохранились.
Задачи и события за ними
| Задача | Событие | Что нужно решить |
|---|---|---|
| Убить мобов | EntityDeathEvent | Считать только убийства самим игроком или ещё и его питомцами и стрелами |
| Сломать блоки | BlockBreakEvent | Игнорировать блоки, поставленные игроком, иначе игроки будут ставить и ломать один и тот же блок |
| Собрать предметы | Проверка инвентаря или событие подбора | Забираются ли предметы при сдаче квеста |
| Скрафтить предметы | CraftItemEvent | Крафт с Shift создаёт несколько предметов сразу |
| Дойти до места | PlayerMoveEvent | Проверять только при смене блока, а не при каждом движении |
| Поговорить с NPC | PlayerInteractEntityEvent | Какая сущность выдаёт квест |
Квестодатели
Самый простой квестодатель это команда или меню. Для персонажа в мире подойдёт житель или стойка для брони с особым именем и меткой 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