Pterohost docs

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 - нужен, если планируешь условия на баланс или выдачу денег.

Скачивание и размещение

  1. Загрузи последнюю версию DeluxeMenus с SpigotMC или через eCloud в PlaceholderAPI.
  2. Положи JAR в папку plugins/ на сервере.
  3. Запусти или перезагрузи сервер (/restart или stop -> старт).
  4. После первого запуска появится папка 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_commandsShift + левая
shift_right_click_commandsShift + правая
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 хостинг