Посібник
Як створити плагін квестів для 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 | Крафт шифт-кліком створює кілька предметів одразу |
| Дістатися місця | 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