- Поддерживаемые версии
- 1.19
- 1.20
- 1.21
Руководство по плагину CustomScreenMenu
CustomScreenMenu — плагин для создания интерактивных 3D-меню в игровом мире. Он фиксирует камеру игрока в определенной точке и отображает виртуальный курсор для выбора элементов.
Полезно:
-На данный момент плагин бесплатный, но по информации от разработчика скоро он станет платный,
плагин уже продаётся за 13$ тут: You must be logged in to see this link.
-Либо скачиваем free версию плагина на Spigot: You must be logged in to see this link.
Разница в платной и бесплатной версии это то что бесплатная отстаёт на 3 версии от платной
-Создание менюшек что то на подобии DeluxeMenus только вместо предметов там голограммы
-Для работы плагина необходимо установить Packetevents и PlaceholderAPI
Информация:
Основная техническая информация из официальной документации плагина
Главные возможности
Список актуальных команд
Особенности логики плагина
Разбор глобальных настроек (config.yml)
1. Глобальные параметры
2. Ограничения и проверки
3. Контроль доступа к кнопкам (button-access-control)
4. Безопасность и IP-привязка (ip-binding)
5. Окружение и автоматизация
6. Настройка курсора (cursor-item)
Разбор структуры меню (файлы в папке menus)
Каждое меню настраивается в отдельном yml-файле и делится на три блока:
1. Доступ и автоматизация
2. Позиция камеры (camera-position)
3. Макет интерфейса (layout)
Содержит список интерактивных элементов (кнопок):
Функционал кнопок при взаимодействии
[op] — с правами администратора.
[console] — от консоли сервера.
[server] — отправка команды на прокси-сервер.
Русифицированный пример файла меню example.yml

Скриншоты от разработчика:

CustomScreenMenu — плагин для создания интерактивных 3D-меню в игровом мире. Он фиксирует камеру игрока в определенной точке и отображает виртуальный курсор для выбора элементов.
Полезно:
-На данный момент плагин бесплатный, но по информации от разработчика скоро он станет платный,
плагин уже продаётся за 13$ тут: You must be logged in to see this link.
-Либо скачиваем free версию плагина на Spigot: You must be logged in to see this link.
Разница в платной и бесплатной версии это то что бесплатная отстаёт на 3 версии от платной
-Создание менюшек что то на подобии DeluxeMenus только вместо предметов там голограммы
-Для работы плагина необходимо установить Packetevents и PlaceholderAPI
Информация:
Основная техническая информация из официальной документации плагина
Главные возможности
- Родная поддержка мультипоточности Folia и стабильная работа на актуальных версиях Minecraft.
- Полная интеграция с ItemsAdder (отображение парящих 3D-моделей предметов, эффектов зачарований и лора) и BetterHud (рендер элементов меню прямо в интерфейс игрока).
- Орбитальный режим камеры: возможность вращения обзора на 360 градусов вокруг меню или демонстрируемого предмета.
Список актуальных команд
- /cursormenu run [название] — открыть меню с указанным именем.
- /cursormenu stop — мгновенно закрыть текущее активное меню.
- /cursormenu items [название_предмета] — запустить демонстрацию предмета (с поддержкой свечения и кастомной модели).
- /cursormenu itemsstop — завершить режим предпросмотра предмета.
- /cursormenu reload — перезагрузить файлы конфигурации после внесения изменений.
Особенности логики плагина
- Каждый файл меню находится в своей отдельной конфигурации для удобства редактирования.
- Автоматический запуск кастомных команд и открытие личного стартового меню при самом первом заходе нового игрока на сервер.
- Возможность настройки моментальной телепортации игрока на заданную точку сразу в момент входа в режим меню.
Разбор глобальных настроек (config.yml)
1. Глобальные параметры
- version: Техническая версия конфигурации.
- Debug: Переключатель режима отладки в консоли.
- use-pumpkin-overlay: Отображение оверлея тыквы на экране игрока.
- use-player-location: Использовать текущую позицию игрока для камеры вместо фиксированных координат из файла меню.
- exit-camera: Направление взгляда игрока (yaw, pitch) после закрытия интерфейса.
2. Ограничения и проверки
- creature-spawn-limits: Ограничение спавна мобов в радиусе от центра меню.
- camera-block-check: Проверка наличия блоков вокруг игрока для корректной работы камеры.
3. Контроль доступа к кнопкам (button-access-control)
- login-required: Список текстовых тегов в названиях или ключах кнопок, которые блокируют нажатие до авторизации игрока.
- no-duplicate-registration: Теги для кнопок, предотвращающие повторную регистрацию.
4. Безопасность и IP-привязка (ip-binding)
- enabled: Включение проверки IP (один аккаунт на один IP).
- strict: Строгий режим (блокировка входа при несовпадении сохраненного IP).
- allow-same-ip-login: Разрешение одновременного входа с одного IP.
- lockout-duration: Время блокировки аккаунта в минутах при подборе пароля.
- max-login-attempts: Лимит попыток ввода пароля.
- whitelist / blacklist: Белый и черный списки IP-адресов в формате CIDR.
- admin-ip-whitelist: Отдельный белый список IP-адресов только для операторов (OP).
5. Окружение и автоматизация
- messages: Текстовый префикс плагина и уведомление о блокировке команд в меню.
- sound: Настройка фоновой музыки меню, её громкости, тональности и интервала циклического повтора.
- join-run: Автоматическое открытие указанного меню через заданное время после входа игрока на сервер с выполнением списка стартовых команд.
6. Настройка курсора (cursor-item)
- material / custom-model-data: Иконка предмета и ID его кастомной модели для курсора.
- scale / size: Настройки масштабирования курсора по осям X, Y, Z.
- sensitivity / smoothing: Чувствительность движения и сглаживание задержки перемещения курсора.
- max-x / max-y: Максимальные границы перемещения курсора по экрану.
- x / y / z-offset: Начальное смещение положения курсора.
- movement-range: Кастомные лимиты минимальных и максимальных позиций сетки курсора.
- default-position: Принудительная начальная позиция курсора при открытии окон.
Разбор структуры меню (файлы в папке menus)
Каждое меню настраивается в отдельном yml-файле и делится на три блока:
1. Доступ и автоматизация
- permission: Право, необходимое для открытия данного меню.
- auto-commands: Список команд, автоматически выполняемых с заданной задержкой в тиках сразу после открытия меню.
2. Позиция камеры (camera-position)
- distance: Расстояние от точки обзора до текстовых кнопок.
- world, x, y, z: Точные координаты размещения камеры игрока.
- yaw, pitch: Углы поворота камеры по горизонтали и вертикали.
3. Макет интерфейса (layout)
Содержит список интерактивных элементов (кнопок):
- permission: Индивидуальное право на отображение конкретной кнопки.
- name: Отображаемый текст кнопки или плейсхолдер картинки.
- x, y, z: Смещение элемента в 3D-пространстве относительно камеры.
- tilt: Трёхмерный наклон текста по осям X (тангаж), Y (рыскание) и Z (крен).
- text-size: Кастомный размер шрифта элемента.
Функционал кнопок при взаимодействии
- Увеличение при наведении (hover-enlarge): Изменение масштаба текста (scale) при наведении курсора.
- Звук при наведении (hover-sound): Воспроизведение звукового эффекта с настройкой названия, громкости, тональности и перезарядки в тиках.
- Печатная машинка (typewriter): Посимвольное отображение текста с настройкой скорости появления, начальной задержки и символа каретки.
- Выполнение команд (command): Список команд, выполняемых при клике, с задержкой в тиках (command-delay). Поддерживаются префиксы:
[op] — с правами администратора.
[console] — от консоли сервера.
[server] — отправка команды на прокси-сервер.
- Случайные награды (random-commands): Выполнение случайного действия из списка на основе процентных шансов (random-chances).
- Смена меню (next-menu): Перенаправление игрока в другое меню при клике.
- Выход (stop-menu): Закрытие интерфейса с возможностью телепортации игрока на новые координаты или возврата на исходное место до открытия меню (back-original).
Русифицированные шаблоны конфигурации
config.yml
YAML:
version: "1.4.4" # Не изменять
Debug: false
# Включить отображение тыквы на экране
use-pumpkin-overlay: false
# Использовать ли текущую позицию/взгляд игрока в качестве координат камеры меню
# true -> игнорировать camera-position в yml файле меню, использовать позицию под ногами игрока
# false -> использовать фиксированные координаты, прописанные в yml файле меню
use-player-location: false
# Установка кастомного направления взгляда игрока при выходе из меню
exit-camera:
yaw: 0.0
pitch: 0.0
# Настройка ограничений спавна существ
creature-spawn-limits:
enabled: false # Включить ограничение спавна существ
radius: 10 # Радиус (в блоках) от中心 меню, где запрещен спавн существ
# Настройка проверки блоков для ракурса камеры
camera-block-check:
enabled: true
radius: 1 # Радиус проверки (в блоках) вокруг игрока
# Настройка контроля доступа к кнопкам
button-access-control:
# Настройка идентификаторов кнопок, требующих авторизации для нажатия
login-required:
# Текстовые теги, содержащиеся в названии кнопки
name-tags:
- "[ need login ]"
- "%img_logo%"
# Текстовые теги, содержащиеся в ключевом имени кнопки
key-tags:
- "login_required"
- "%img_logo%"
# Настройка идентификаторов кнопок для предотвращения повторной регистрации
no-duplicate-registration:
# Текстовые теги, содержащиеся в названии кнопки
name-tags:
- "%img_logo%"
- "[NO_DUPLICATE_REG]"
# Текстовые теги, содержащиеся в ключевом имени кнопки
key-tags:
- "no_duplicate_reg"
- "Предотвращение повторной регистрации"
# Настройки безопасности и привязки по IP
ip-binding:
# Включить привязку по IP (один IP может зарегистрировать только один аккаунт)
enabled: true
# Строгий режим: отклонять вход напрямую при несовпадении IP
# false -> выдавать предупреждение при несовпадении IP, но разрешать вход
# true -> напрямую запрещать вход при несовпадении IP
strict: false
# Разрешать ли пользователям с одного IP входить в уже зарегистрированные аккаунты
allow-same-ip-login: true
# Длительность блокировки (в минутах) после нескольких неверных вводов пароля
lockout-duration: 5
# Максимальное количество попыток входа
max-login-attempts: 5
# Настройка белого списка IP
whitelist:
# Включить белый список IP
enabled: false
# Список IP-адресов белого списка (поддерживается формат CIDR, например 192.168.1.0/24)
ips: []
# Настройка черного списка IP
blacklist:
# Включить черный список IP
enabled: false
# Список IP-адресов черного списка (поддерживается формат CIDR, например 192.168.1.0/24)
ips: []
# Настройка белого списка IP для администраторов (работает только для OP игроков)
admin-ip-whitelist:
# Включить белый список IP для администраторов
enabled: false
# Список разрешенных IP-адресов (поддерживается формат CIDR, например 192.168.1.0/24)
ips: []
messages:
prefix: '&f[&eCustomScreenMenu&f] '
command_blocked: '&c固定视角下无法使用命令!'
sound:
name: 'music.menu'
volume: 1
pitch: 1
# Циклический звук
loop:
# Включить
enabled: true
# Интервал воспроизведения в секундах
duration: 30
# Выполнение меню при входе в игру
join-run:
enabled: false
# Задержка выполнения в секундах
delay: 3
# Исполняемое меню
menu: 'test'
commands:
- "[console] say 欢迎玩家 %player% 加入游戏!"
- "[player] msg %player% 欢迎来到服务器!"
- "[op] gamemode survival %player%"
cursor-item:
material: 'ARROW'
custom-model-data: 0
scale: 0.5
# Чувствительность перемещения курсора (1.0 — значение по умолчанию, чем меньше значение, тем медленнее перемещение)
sensitivity: 1.0
# Коэффициент плавности курсора (0.05-1.0, где 1.0 = отсутствие фильтрации и нулевая задержка; чем меньше значение, тем плавнее движение, но появится ощущение тяжести)
smoothing: 1.0
# Кастомный размер курсора
size:
x: 1.0
y: 1.0
z: 1.0
# Максимум 3 по оси X (уже является максимальной вместимостью экрана по горизонтали)
max-x: 2
# Максимум 1.5 по оси Y (уже является максимальной вместимостью экрана по вертикали)
max-y: 3
x: 0.0 # Смещение по оси X
y: 0.0 # Смещение по оси Y
z-offset: 0.0 # Смещение курсора по оси Z
# Ограничение диапазона перемещения курсора
movement-range:
# Включить кастомное ограничение диапазона перемещения курсора
enabled: false
# Минимальное и максимальное положение курсора по оси X
x:
min: -2.0
max: 2.0
# Минимальное и максимальное положение курсора по оси Y
y:
min: -3.0
max: 3.0
# Позиция курсора по умолчанию
default-position:
# Включить кастомную позицию курсора по умолчанию
enabled: false
# Координаты X и Y курсора по умолчанию
x: 0.0
y: 0.0
Русифицированный пример файла меню example.yml
YAML:
example:
# Права, необходимые для открытия всего меню; если оставить пустым, открыть сможет любой
permission: cursormenu.menu.example
auto-commands:
enabled: false
commands:
- "[console] say Добро пожаловать в меню лобби, выполняется через 3 секунды"
- "[op] say Эта команда выполняется через 5 секунд"
delays:
- 60 # 3 секунды = 60 тиков
- 100 # 5 секунд = 100 тиков
# Расположение камеры
camera-position:
# Расстояние до текстовых компонентов
distance: 1.5
world: lobby
x: -187
y: 70
z: 347
yaw: 190 # Угол горизонтального поворота (0-360)
pitch: 0.0 # Угол вертикального поворота (-90 до 90)
layout:
logo:
permission: cursormenu.button.test.logo
name: "%img_logo%"
# Ось X текстового компонента
x: -2
# Ось Y текстового компонента
y: 1
# Ось Z текстового компонента
z: 3.5
tilt:
x: 0.0 # Наклон вверх/вниз (тангаж)
y: 0.0 # Наклон влево/вправо (рыскание)
z: 0.0 # Наклон вбок (крен)
command-delay: 6 # Задержка выполнения команды (тиков)
next-menu:
enabled: false
menu: lobby
# Закрывать ли меню после клика
stop-menu:
enabled: false
teleport:
enabled: false # Включить функцию телепортации (по умолчанию false)
back-original: false # Возвращать ли игрока на исходное место до открытия меню (true: исходное место; false: кастомные координаты)
world: world # Целевой мир (работает, когда back-original равен false)
x: 0.0 # Координата X
y: 64.0 # Координата Y
z: 0.0 # Координата Z
layout1:
permission: cursormenu.button.test.layout1
name: "Регистрация аккаунта"
x: -2
y: 0
z: 3.5
tilt:
x: 0.0
y: 0.0
z: 0.0
# Эффект увеличения при наведении
hover-enlarge:
enabled: true # Включить эффект увеличения при наведении
scale: 1.1 # Масштаб увеличения
# Размер текста (опционально, по умолчанию 1.0)
text-size: 1.2
# Команды, выполняемые при клике
command:
- '[op] say Регистрация аккаунта'
command-delay: 6
next-menu:
enabled: true
menu: "Меню_Авторизации"
stop-menu:
enabled: false
teleport:
enabled: false
back-original: false
world: world
x: 0.0
y: 64.0
z: 0.0
layout2:
permission: cursormenu.button.test.layout2
name: "Выход из игры"
x: -2
y: -0.5
z: 3.5
tilt:
x: 0.0
y: 0.0
z: 0.0
command:
- '[op] say Выход из игры'
hover-enlarge:
enabled: true
scale: 1.1
command-delay: 6
next-menu:
enabled: false
menu: example
stop-menu:
enabled: true
teleport:
enabled: true
back-original: false
world: world
x: 554.0
y: 64.0
z: 0.0
layout3:
permission: cursormenu.button.test.layout2
name: "Войти на сервер"
x: -2
y: 0.5
z: 3.5
tilt:
x: 0.0
y: 0.0
z: 0.0
command:
- '[op] say Войти на сервер'
hover-enlarge:
enabled: true
scale: 1.1
command-delay: 6
next-menu:
enabled: true
menu: example2
stop-menu:
enabled: false
teleport:
enabled: false
back-original: false
world: world
x: 0.0
y: 64.0
z: 0.0
layout4:
permission: cursormenu.button.test.layout4
name: "Создатели"
x: -2
y: -1.0
z: 3.5
tilt:
x: 0.0
y: 0.0
z: 0.0
command:
- '[op] say Создатели'
hover-enlarge:
enabled: true
scale: 1.1
command-delay: 6
next-menu:
enabled: false
menu: lobby
stop-menu:
enabled: false
teleport:
enabled: false
back-original: false
world: world
x: 0.0
y: 64.0
z: 0.0
layout8:
permission: cursormenu.button.test.layout1
name: "Регистрация аккаунта"
x: -2
y: 0
z: 3.5
tilt:
x: 0.0
y: 0.0
z: 0.0
# ========== Эффект печатной машинки ==========
typewriter:
enabled: true # Включить эффект печатной машинки
speed: 2 # Показывать один символ каждые 2 тика (чем меньше, тем быстрее)
start-delay: 10 # Задержка 10 тиков перед началом отображения (около 0.5 сек)
cursor-char: "|" # Символ курсора, также можно использовать "_" или "▌"
# ========== Звук при наведении ==========
hover-sound:
name: "minecraft:block.lever.click" # Название звука (обязательно)
volume: 0.8 # Громкость 0.0-1.0 (опционально, по умолчанию 1.0)
pitch: 1.2 # Тональность 0.5-2.0 (опционально, по умолчанию 1.0)
cooldown: 20 # Время перезарядки в тиках (опционально, по умолчанию 20)
hover-enlarge:
enabled: true
scale: 1.1
text-size: 1.2
command:
- '[op] say Регистрация аккаунта'
command-delay: 6
next-menu:
enabled: true
menu: "Меню_Авторизации"
stop-menu:
enabled: false
teleport:
enabled: false
back-original: false
world: world
x: 0.0
y: 64.0
z: 0.0
Мои примеры(профессиональные):
Загрузочный экран:
Меню лобби:

Скриншоты от разработчика:
