DeluxeMenus: кастомные GUI-меню на сервере Minecraft
Полный гайд по DeluxeMenus 2026: установка, YAML-конфиг, слоты, клики, условия и PlaceholderAPI для меню на сервере Minecraft.
Кратко: DeluxeMenus - плагин для Paper/Spigot, который позволяет создавать интерактивные GUI-меню через YAML-файлы. Установи плагин, создай файл меню в gui_menus/, опиши иконки и действия по кликам - меню готово без перезапуска сервера.
DeluxeMenus: кастомные GUI-меню на сервере Minecraft
DeluxeMenus - один из самых популярных плагинов для создания интерактивных GUI-меню на серверах Minecraft. Он позволяет владельцу сервера строить любой интерфейс через простые YAML-файлы: магазин, телепорт, навигационное меню, систему наград - всё без программирования. В 2026 году плагин активно поддерживается командой clip, совместим с Paper 1.21.x и отлично интегрируется с PlaceholderAPI, Vault и сотнями других плагинов. Правильно настроенные GUI-меню делают игровой процесс удобнее, снижают нагрузку на чат и создают профессиональный облик проекта.
Pterohost - игровой хостинг с NVMe-дисками, автоматической DDoS-защитой и поддержкой 24/7: идеальная среда для Bukkit/Paper-серверов с DeluxeMenus. Промокод 4START даёт -20% на первый заказ. Заказать Minecraft хостинг
Установка DeluxeMenus
Требования
Перед установкой убедись, что выполнены условия:
- Сервер на базе Paper или Spigot 1.8+ (рекомендуется Paper 1.21.x).
- Java 17 или новее.
- PlaceholderAPI - строго рекомендован, почти все примеры ниже используют его.
- Vault - нужен, если планируешь условия на баланс или выдачу денег.
Скачивание и размещение
- Загрузи последнюю версию DeluxeMenus с SpigotMC или через
eCloudв PlaceholderAPI. - Положи JAR в папку
plugins/на сервере. - Запусти или перезагрузи сервер (
/restartилиstop-> старт). - После первого запуска появится папка
plugins/DeluxeMenus/со структурой:
plugins/DeluxeMenus/
config.yml # главный конфиг (список меню)
gui_menus/ # папка для YAML-файлов меню
Базовые команды
| Команда | Описание |
|---|---|
/deluxemenus или /dm | Главная команда плагина |
/dm open <menu> [player] | Открыть меню для себя или другого |
/dm reload | Перезагрузить все конфиги без рестарта |
/dm list | Список зарегистрированных меню |
/dm help | Справка по командам |
Право на открытие меню: deluxemenus.open.<menu_name>. Полный доступ: deluxemenus.*.
Структура config.yml
Главный конфиг регистрирует меню и привязывает к ним команды. Пример:
# plugins/DeluxeMenus/config.yml
debug: false
check_updates: true
gui_menus:
main_menu:
file: main_menu.yml
command: menu
command_cooldown_bypass: deluxemenus.cooldownbypass
open_requirement:
requirements:
- type: has_permission
permission: deluxemenus.use
deny_commands:
- '[message] &cНедостаточно прав!'
shop_menu:
file: shop.yml
command: shop
Здесь main_menu и shop_menu - внутренние имена (используются в open_menu_for_player). Параметр file - имя YAML-файла в gui_menus/. Параметр command - команда, которую игрок печатает в чате для открытия.
Анатомия файла меню
Каждый файл в gui_menus/ описывает один экран инвентаря. Минимальный пример (gui_menus/main_menu.yml):
menu_title: "&8&lГлавное меню"
inventory_type: CHEST
size: 27
# Фоновый заполнитель
items:
filler:
material: BLACK_STAINED_GLASS_PANE
display_name: " "
slots:
- 0-26
# Кнопка "Магазин"
shop_button:
material: EMERALD
display_name: "&a&lМагазин"
lore:
- "&7Открыть магазин сервера"
- "&7Баланс: &e%vault_eco_balance%"
slots:
- 13
left_click_commands:
- "[open] shop"
Ключевые параметры верхнего уровня
| Параметр | Описание | Пример |
|---|---|---|
menu_title | Заголовок окна (до 32 симв.) | "&8Меню" |
inventory_type | Тип инвентаря | CHEST, HOPPER, DISPENSER |
size | Количество слотов (кратно 9) | 27, 54 |
open_commands | Команды при открытии меню | - "[message] Открыл меню" |
close_commands | Команды при закрытии | - "[sound] BLOCK_CHEST_CLOSE" |
update_interval | Обновление PAPI-значений (тики) | 20 (1 секунда) |
Слоты и иконки
Нумерация слотов
Слоты нумеруются слева направо, начиная с 0. Для size: 54 (6 рядов по 9):
0 1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16 17
18 19 20 21 22 23 24 25 26
27 28 29 30 31 32 33 34 35
36 37 38 39 40 41 42 43 44
45 46 47 48 49 50 51 52 53
В параметре slots можно указывать:
- Один слот:
- 13 - Диапазон:
- 0-8(все слоты первого ряда) - Список:
- 10,- 12,- 14
Материалы и оформление
some_item:
material: DIAMOND_SWORD
display_name: "&b&lОружие"
lore:
- "&7Это легендарный меч"
- ""
- "&eЦена: &a100 монет"
amount: 1
damage: 0 # для версий < 1.13 (durability)
unbreakable: true
hide_attributes: true
glow: true # требует наличия enchantment
slots:
- 22
Цветовые коды используются стандартные: &0-&9, &a-&f, &l (жирный), &o (курсив), &n (подчёркнутый), &m (зачёркнутый), &r (сброс). Шестнадцатеричные цвета (&#RRGGBB) поддерживаются на Paper 1.16+.
Динамический материал через PAPI
status_item:
material: "%player_is_op%" # вернёт true/false - не используй для material
material: REDSTONE_BLOCK
display_name: "Статус: %player_name%"
slots:
- 4
Лучше использовать view_requirement для смены материала в зависимости от условия (см. раздел про условия).
Клики и действия
DeluxeMenus различает типы кликов:
| Параметр | Тип клика |
|---|---|
left_click_commands | Левая кнопка мыши |
right_click_commands | Правая кнопка мыши |
middle_click_commands | Средняя кнопка мыши |
shift_left_click_commands | Shift + левая |
shift_right_click_commands | Shift + правая |
click_commands | Любой клик |
Типы действий
some_button:
material: PAPER
display_name: "&eКнопка"
slots:
- 0
left_click_commands:
- "[open] shop" # открыть другое меню
- "[close]" # закрыть текущее меню
- "[player] warp spawn" # команда от имени игрока
- "[console] eco give %player% 100" # команда от консоли
- "[message] &aПолучено 100 монет!" # сообщение в чат
- "[broadcast] &e%player% купил товар" # сообщение всему серверу
- "[sound] ENTITY_EXPERIENCE_ORB_PICKUP" # звук для игрока
- "[commandevent] buy_item" # вызов события команды
- "[refresh]" # обновить меню (PAPI-значения)
- "[back]" # вернуться к предыдущему меню
- "[connect] lobby" # BungeeCord/Velocity: перейти на сервер
Задержка между действиями
left_click_commands:
- "[player] warp spawn"
- "[delay] 40" # 40 тиков = 2 секунды
- "[message] &aТелепортация!"
Открытие меню для другого игрока
admin_button:
slots:
- 31
left_click_commands:
- "[open_menu_for_player] %player% shop"
Условия (Requirements)
Условия делятся на два вида:
view_requirements- контролируют видимость/доступность кнопки в меню.click_requirements- проверяются при клике на иконку.
Базовые типы условий
vip_item:
material: NETHER_STAR
display_name: "&6VIP-награда"
slots:
- 40
view_requirement:
requirements:
has_vip:
type: has_permission
permission: "group.vip"
deny_commands:
- "[message] &cЭта награда только для VIP!"
click_requirement:
requirements:
enough_money:
type: has_money
amount: 500
deny_commands:
- "[message] &cНедостаточно монет (нужно 500)!"
success_commands:
- "[console] eco take %player% 500"
- "[console] give %player% golden_apple 5"
- "[message] &aВы купили 5 золотых яблок!"
- "[refresh]"
Все встроенные типы условий
| Тип | Описание |
|---|---|
has_permission | Наличие права (permission: node.name) |
has_money | Баланс >= сумма (требует Vault) |
has_item | Наличие предмета в инвентаре |
is_near | Игрок находится рядом с координатами |
javascript | Произвольный JS-скрипт (Nashorn/GraalVM) |
string equals | Строка PlaceholderAPI == значение |
string contains | Строка PlaceholderAPI содержит подстроку |
placeholder equals | Алиас string equals для PAPI |
placeholder contains | Алиас string contains для PAPI |
>=, >, <=, <, ==, != | Числовое сравнение PAPI-значений |
Пример с числовым сравнением (уровень игрока >= 10):
click_requirement:
requirements:
level_check:
type: ">="
input: "%player_level%"
output: "10"
deny_commands:
- "[message] &cНужен 10-й уровень!"
PlaceholderAPI: плейсхолдеры в меню
PlaceholderAPI расширяет DeluxeMenus почти до бесконечности. После установки PAPI и нужных expansion-ов ты можешь вставлять переменные прямо в display_name, lore, условия и команды.
Установка расширений PAPI
/papi ecloud download Player
/papi ecloud download Vault
/papi ecloud download LuckPerms
/papi reload
Полезные плейсхолдеры для меню
| Плейсхолдер | Описание |
|---|---|
%player_name% | Ник игрока |
%player_displayname% | Отображаемый ник |
%player_level% | Уровень опыта |
%player_health% | Здоровье (число) |
%player_ping% | Пинг в мс |
%player_world% | Текущий мир |
%vault_eco_balance% | Баланс (Vault+Economy) |
%vault_eco_balance_formatted% | Баланс форматированный |
%luckperms_prefix% | Префикс группы |
%server_online% | Игроков онлайн |
%server_max_players% | Максимум игроков |
Динамический lore с плейсхолдерами
player_info:
material: PLAYER_HEAD
display_name: "&e%player_name%"
skull_owner: "%player_name%"
lore:
- "&7Уровень: &e%player_level%"
- "&7Здоровье: &c%player_health% / %player_max_health%"
- "&7Баланс: &a%vault_eco_balance_formatted%"
- "&7Мир: &b%player_world%"
slots:
- 4
Меню навигации: практический пример
Типичное навигационное меню для сервера выживания:
# gui_menus/navigation.yml
menu_title: "&8&lНавигация"
inventory_type: CHEST
size: 27
update_interval: 20
items:
filler:
material: GRAY_STAINED_GLASS_PANE
display_name: " "
slots:
- 0-26
warp_spawn:
material: COMPASS
display_name: "&e&lСпавн"
lore:
- "&7Телепортация на спавн сервера"
slots:
- 10
left_click_commands:
- "[player] spawn"
- "[close]"
warp_mine:
material: IRON_PICKAXE
display_name: "&7&lШахта"
lore:
- "&7Телепортация в общую шахту"
slots:
- 12
left_click_commands:
- "[player] warp mine"
- "[close]"
warp_market:
material: GOLD_INGOT
display_name: "&6&lРынок"
lore:
- "&7Открыть рыночную площадь"
slots:
- 14
left_click_commands:
- "[player] warp market"
- "[close]"
shop_button:
material: EMERALD
display_name: "&a&lМагазин"
lore:
- "&7Открыть магазин сервера"
- "&7Баланс: &e%vault_eco_balance%"
slots:
- 16
left_click_commands:
- "[open] shop_menu"
Меню магазина с условиями покупки
Пример простого магазина на один товар с проверкой баланса:
# gui_menus/shop.yml
menu_title: "&2&lМагазин"
inventory_type: CHEST
size: 54
update_interval: 20
items:
back_button:
material: ARROW
display_name: "&c&lНазад"
slots:
- 45
left_click_commands:
- "[back]"
diamond_shop:
material: DIAMOND
display_name: "&b&lАлмаз x1"
lore:
- "&7Купить 1 алмаз за 200 монет"
- ""
- "&eВаш баланс: &a%vault_eco_balance%"
- ""
- "&7Клик: &eкупить"
slots:
- 20
click_requirement:
requirements:
balance_check:
type: has_money
amount: 200
deny_commands:
- "[message] &cНедостаточно монет! Нужно &e200&c."
success_commands:
- "[console] eco take %player% 200"
- "[console] give %player% diamond 1"
- "[message] &aВы купили 1 алмаз за 200 монет!"
- "[sound] ENTITY_EXPERIENCE_ORB_PICKUP"
- "[refresh]"
golden_apple_shop:
material: GOLDEN_APPLE
display_name: "&6&lЗолотое яблоко x3"
lore:
- "&7Купить 3 золотых яблока за 150 монет"
- ""
- "&eВаш баланс: &a%vault_eco_balance%"
- ""
- "&7Клик: &eкупить"
slots:
- 22
click_requirement:
requirements:
balance_check:
type: has_money
amount: 150
deny_commands:
- "[message] &cНедостаточно монет! Нужно &e150&c."
success_commands:
- "[console] eco take %player% 150"
- "[console] give %player% golden_apple 3"
- "[message] &aВы купили 3 золотых яблока за 150 монет!"
- "[sound] ENTITY_EXPERIENCE_ORB_PICKUP"
- "[refresh]"
Советы по оптимизации и отладке
update_interval
Не ставь update_interval: 1 (каждый тик) без необходимости - это создаёт нагрузку. Для обновления баланса достаточно 20 (1 раз в секунду). Если меню статическое - не указывай параметр вовсе.
Проверка конфига
После изменения YAML-файла выполни /dm reload - плагин перечитает все меню без рестарта. Ошибки парсинга появятся в консоли с указанием строки.
Частые ошибки
| Проблема | Причина |
|---|---|
| Меню не открывается | Имя в config.yml не совпадает с именем файла (без .yml) |
| PAPI-переменная не работает | PlaceholderAPI не установлен или expansion не загружен |
has_money не проверяет | Vault не установлен или нет плагина-экономики (EssentialsX Economy, CMI и др.) |
| Иконка не отображается | Неверный Material ID (регистр важен: DIAMOND, не Diamond) |
| Кнопка не реагирует на клик | Указан click_commands, но нужен left_click_commands |
Структура папки при нескольких меню
gui_menus/
navigation.yml
shop.yml
rewards.yml
admin_panel.yml
Каждое меню - отдельный файл. Регистрируй каждый в config.yml в секции gui_menus:.
Связанные материалы
Для полноценной работы магазина DeluxeMenus нужна экономика - изучи настройку Vault и экономики. Перед запуском в прод не забудь настроить резервное копирование сервера: файлы меню хранятся в плагинах и должны включаться в бэкап. Полный список полезных плагинов для сервера - в нашем обзоре лучших плагинов Minecraft.
Заключение
DeluxeMenus - гибкий и хорошо задокументированный инструмент, который закрывает задачу создания GUI-интерфейсов на любом Bukkit/Paper-сервере. Установка занимает несколько минут, первое меню можно сделать за 20-30 строк YAML. Связка с PlaceholderAPI и Vault открывает возможности для полноценного магазина, системы наград и навигации - без написания Java-плагинов. Следи за обновлениями плагина на SpigotMC: разработчики регулярно добавляют новые типы условий и действий, сохраняя обратную совместимость конфигов.
Pterohost - Minecraft-хостинг с NVMe-дисками, DDoS-защитой L7 и круглосуточной поддержкой: стабильная основа для Paper-сервера с DeluxeMenus и любыми плагинами. Промокод 4START даёт -20% на первый заказ. Заказать Minecraft хостинг