Pterohost docs

ShopGUI+ и экономика сервера: магазины и Vault

Настройка ShopGUI+ и Vault-экономики на Minecraft сервере: shops.yml, цены, категории, PlaceholderAPI и частые ошибки.

Кратко: ShopGUI+ - самый популярный GUI-магазин для Minecraft, работает через Vault. Установите Vault + EssentialsX (или CMI), настройте shops.yml с ценами и категориями - и игроки смогут покупать и продавать предметы прямо из красивого меню.

ShopGUI+ и экономика сервера: магазины и Vault

Экономика - одна из главных механик выживания и RPG-серверов. Без нормального магазина игроки не знают, куда тратить монеты, а без валюты - нет смысла фармить ресурсы. ShopGUI+ решает обе проблемы сразу: плагин предоставляет наглядный GUI-магазин с поддержкой категорий, цен и персональных скидок. Но сам по себе он не умеет считать деньги - это задача Vault и экономического плагина. В этой статье разберём весь стек с нуля: от установки Vault до тонкой настройки shops.yml и интеграции с PlaceholderAPI.

Pterohost - игровой хостинг с NVMe-дисками, DDoS-защитой и поддержкой 24/7, идеально подходит для серверов с плагинной экономикой. Промокод 4START даёт -20% на первый заказ. Заказать Minecraft хостинг

Как работает стек Vault + EssentialsX + ShopGUI+

Прежде чем тратить время на настройку, важно понять архитектуру. Три плагина образуют цепочку:

  1. EssentialsX (или CMI) - хранит баланс каждого игрока в своей базе данных и регистрирует провайдера экономики.
  2. Vault - API-прослойка. Он не хранит деньги сам, но предоставляет единый интерфейс для любых плагинов, которым нужно работать с балансом.
  3. ShopGUI+ - общается с Vault через его API. Когда игрок покупает предмет, ShopGUI+ вызывает Vault, Vault обращается к EssentialsX и списывает деньги.

Схема выглядит так:

ShopGUI+ -> Vault API -> EssentialsX Economy

Если убрать любое звено - система сломается. Именно поэтому типичная ошибка “ShopGUI+ не видит экономику” почти всегда означает отсутствие Vault или то, что EssentialsX не зарегистрировал свой провайдер (например, из-за ошибки при загрузке).

Поддерживаемые экономические плагины

ПлагинVaultНесколько валютРекомендация
EssentialsXданетлучший выбор для большинства
CMIдаограниченодля серверов с CMI-оберткой
iConomy 6данетустарел
TheNewEconomyдададля сложных серверов

Установка Vault и EssentialsX

Шаг 1 - скачать плагины

Vault: github.com/MilkBowl/Vault/releases EssentialsX: essentialsx.net ShopGUI+: spigotmc.org/resources/shopgui

Положите все три jar-файла в папку plugins/.

Шаг 2 - порядок загрузки

Vault должен загружаться до EssentialsX и ShopGUI+. В большинстве случаев это происходит автоматически - Vault прописывает softdepend в plugin.yml других плагинов. Но если порядок нарушен, добавьте в spigot.yml:

# Это не настоящий параметр spigot.yml, порядок управляется через plugin.yml плагинов
# Vault сам прописывает зависимости - просто убедитесь, что все три jar в одной папке

Проверка после запуска - в консоли должны появиться строки:

[Vault] Economy plugin found: EssentialsX
[ShopGUI+] Economy handler found: Vault

Шаг 3 - проверка через команду

Зайдите на сервер и выполните:

/vault-info

Вывод покажет, какая экономика зарегистрирована и версию Vault.

Структура конфига ShopGUI+

После первого запуска ShopGUI+ создаёт несколько файлов в plugins/ShopGUIPlus/:

plugins/ShopGUIPlus/
  config.yml     - основные настройки плагина
  shops.yml      - описание всех категорий и предметов
  prices/        - опциональные файлы динамических цен (в новых версиях)

config.yml - ключевые параметры

# plugins/ShopGUIPlus/config.yml (фрагмент)

# Валюта
currencySymbol: "$"
# Формат отображения баланса
economyResponse:
  insufficientFunds: "&cНедостаточно средств! Нужно: {price}"
  notEnoughItems: "&cУ вас нет {amount}x {item} для продажи!"

# Звуки при покупке/продаже
sounds:
  buy:
    enabled: true
    sound: ENTITY_EXPERIENCE_ORB_PICKUP
  sell:
    enabled: true
    sound: ENTITY_ITEM_PICKUP

# Подтверждение покупки
confirmationGUI:
  enabled: true
  title: "Подтвердить покупку?"

Настройка shops.yml - категории и предметы

Это самый важный файл. Вся структура магазина описывается именно здесь.

Базовая структура категорий

# plugins/ShopGUIPlus/shops.yml

shops:
  # --- Категория "Блоки" ---
  blocks:
    name: "&6Блоки"
    item:
      typeData: GRASS_BLOCK
    slot: 0      # позиция иконки в главном меню (0-53)
    permission: ""   # пусто = доступно всем
    rows: 4      # строк в GUI категории (1-6)
    items:
      1:
        item:
          typeData: STONE
        buyPrice: 5
        sellPrice: 2
        slot: 0
      2:
        item:
          typeData: OAK_LOG
          quantity: 1
        buyPrice: 10
        sellPrice: 4
        slot: 1
      3:
        item:
          typeData: DIAMOND
        buyPrice: 200
        sellPrice: 80
        slot: 2

  # --- Категория "Еда" ---
  food:
    name: "&aЕда"
    item:
      typeData: BREAD
    slot: 1
    rows: 3
    items:
      1:
        item:
          typeData: BREAD
          quantity: 16
        buyPrice: 30
        sellPrice: 10
        slot: 0
      2:
        item:
          typeData: COOKED_BEEF
          quantity: 8
        buyPrice: 50
        sellPrice: 20
        slot: 1

Параметры предмета

ПараметрТипОписание
typeDataстрокаID предмета из Bukkit Material
quantityчислоколичество в стопке (default 1)
buyPriceчислоцена покупки игроком (double)
sellPriceчислоцена продажи серверу (-1 = запрещена)
slotчислопозиция в GUI категории (0-53)
permissionстрокаправо для доступа к предмету
enchantmentsсписокзачарования предмета
nameстрокакастомное название в GUI

Добавление зачарованных предметов

items:
  10:
    item:
      typeData: DIAMOND_SWORD
      quantity: 1
      name: "&bМеч силы"
      enchantments:
        - DAMAGE_ALL:3      # Sharpness III
        - FIRE_ASPECT:1     # Fire Aspect I
    buyPrice: 2500
    sellPrice: -1    # нельзя продать
    slot: 9
    permission: "shopgui.vip"

Предметы с кастомными NBT (для совместимости с другими плагинами)

ShopGUI+ (версия 1.77+) поддерживает покупку предметов с customModelData:

items:
  20:
    item:
      typeData: PAPER
      customModelData: 1001
      name: "&dТокен"
    buyPrice: 100
    sellPrice: 50
    slot: 18

Права доступа и LuckPerms

ShopGUI+ использует гранулярную систему прав. Базовые:

shopguiplus.shop           - открыть магазин (/shop)
shopguiplus.buy            - покупать предметы
shopguiplus.sell           - продавать предметы
shopguiplus.sell.all       - команда /sell all
shopguiplus.sell.hand      - продать предмет в руке

Права для конкретных категорий формируются автоматически по ключу категории в shops.yml:

shopguiplus.shop.blocks    - доступ к категории "blocks"
shopguiplus.shop.food      - доступ к категории "food"

Назначение через LuckPerms:

/lp group default permission set shopguiplus.shop true
/lp group default permission set shopguiplus.buy true
/lp group default permission set shopguiplus.sell true
/lp group vip permission set shopguiplus.shop.vip true

Интеграция с PlaceholderAPI

PlaceholderAPI позволяет выводить баланс игрока в чат-плагинах, табе, scoreboard и других местах.

Установка расширения Vault для PAPI

/papi ecloud download Vault
/papi reload

После этого доступны плейсхолдеры:

ПлейсхолдерОписание
%vault_eco_balance%баланс числом (1234.56)
%vault_eco_balance_formatted%форматированный (1,234.56)
%vault_eco_balance_fixed%без дробной части (1234)

Пример использования в плагине TAB (скорборд):

# config.yml TAB
scoreboard:
  title: "&6&lМой сервер"
  lines:
    - ""
    - "&fБаланс: &a%vault_eco_balance_formatted%$"
    - ""

Плейсхолдеры ShopGUI+

Начиная с ShopGUI+ 1.70+ плагин сам регистрирует плейсхолдеры через PAPI:

%shopguiplus_itemPrice_buy_STONE%     - цена покупки камня
%shopguiplus_itemPrice_sell_STONE%    - цена продажи камня

Это удобно для динамических табличек в игре или holograms.

Типичные ошибки и их решение

Ошибка 1 - “No economy plugin found”

ShopGUI+ не видит экономику. Диагностика:

# Проверить, что Vault загружен
# В консоли после старта сервера должна быть строка:
# [Vault] Enabling Vault v1.7.3-b131

# Если строки нет - Vault.jar отсутствует или повреждён
ls plugins/ | grep -i vault

Решение: убедитесь, что Vault.jar и EssentialsX.jar оба в plugins/, затем полностью перезапустите сервер (не reload).

Ошибка 2 - предметы не отображаются в GUI

Причина чаще всего в опечатке в typeData. Material-имена чувствительны к регистру и должны совпадать с Bukkit API для вашей версии Minecraft.

# Неправильно (Minecraft 1.19+):
typeData: log          # устаревшее имя

# Правильно:
typeData: OAK_LOG

Список актуальных Material для 1.21: hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html

Ошибка 3 - дублирующиеся слоты (slot conflict)

Если два предмета занимают один slot, ShopGUI+ покажет только один из них (случайный). Следите за уникальностью слотов в каждой категории.

# Быстрая проверка через grep (в терминале сервера)
grep -n "slot:" plugins/ShopGUIPlus/shops.yml

Ошибка 4 - цены с плавающей точкой

YAML может неправильно распарсить цену 1.5 как строку в некоторых конфигах. Всегда явно пишите дробные цены:

buyPrice: 1.5     # OK в большинстве версий
sellPrice: 0.75   # OK
# Если плагин ругается - используйте целые числа или формат "1.50"

Ошибка 5 - sellAll не работает

Команда /sell all требует отдельного права:

/lp group default permission set shopguiplus.sell.all true

Также убедитесь, что в конфиге не отключён sellAll:

# config.yml
sellAll:
  enabled: true

Балансировка экономики - практические советы

Неправильно выставленные цены разрушают экономику за первые дни работы сервера. Вот базовые принципы:

Соотношение buy/sell

Цена продажи должна быть ниже цены покупки. Рекомендуемый коэффициент:

sellPrice = buyPrice * 0.4..0.6

Если sellPrice близок к buyPrice или выше - игроки будут бесконечно фармить дюп-машины и скупать предметы в магазине для перепродажи. Это называется “price exploit”.

Таблица ориентировочных цен (для старта)

ПредметbuyPricesellPrice
Камень (x64)3212
Железный слиток2510
Золотой слиток8030
Алмаз300120
Изумруд15060
Пшеница (x64)208
Говядина (x16)4015

Это стартовые значения - их нужно корректировать под вашу специфику (PvP/RP/SMP, ставки опыта, скорость фарма).

Динамические цены (ShopGUI+ Pro)

Платная версия ShopGUI+ поддерживает dynamicPricing - цены меняются в зависимости от количества покупок/продаж за период. Это решает проблему инфляции автоматически:

# shops.yml - динамические цены (только ShopGUI+ Pro)
items:
  1:
    item:
      typeData: DIAMOND
    buyPrice: 300
    sellPrice: 120
    dynamicPricing:
      enabled: true
      basePrice: 300
      floorPrice: 100
      ceilingPrice: 1000
      decayFactor: 0.95     # каждые X минут без покупок цена откатывается к базовой

Команды для администратора

Полезные команды для управления магазином в живом режиме:

/shop                    - открыть магазин (для игрока)
/shop <категория>        - открыть конкретную категорию
/shopguiplus reload      - перезагрузить конфиг без рестарта сервера
/shopguiplus givecredits <игрок> <сумма>   - дать деньги игроку (через Vault)
/eco give <игрок> <сумма>                  - EssentialsX: начислить деньги
/eco take <игрок> <сумма>                  - EssentialsX: снять деньги
/eco set <игрок> <сумма>                   - EssentialsX: установить баланс
/balancetop                                - топ богатых игроков

После редактирования shops.yml не нужен полный рестарт - достаточно /shopguiplus reload.

Связанные материалы

Экономика сервера тесно связана с системой прав и командами для игроков. Подробнее о настройке API-прослойки читайте в статье Vault - плагин для экономики. Команды для управления балансом и инвентарём описаны в EssentialsX: полный список команд. Если вы только подбираете набор плагинов для нового сервера - загляните в наш список лучших плагинов для Minecraft.

Заключение

ShopGUI+ в связке с Vault и EssentialsX - это проверенный стандарт игровой экономики на 2026 год. Схема проста: EssentialsX хранит баланс, Vault предоставляет API, ShopGUI+ рисует интерфейс. Настройка shops.yml занимает несколько часов, но окупается - игроки получают удобный магазин, а вы полный контроль над ценами. Следите за соотношением buy/sell, выдавайте права через LuckPerms, а не вручную, и используйте /shopguiplus reload вместо рестарта для быстрых правок. Если что-то не работает - первым делом проверьте, загружен ли Vault и зарегистрирована ли экономика командой /vault-info.

Pterohost - надёжный хостинг для Minecraft с поддержкой Java Edition, NVMe-хранилищем и круглосуточной технической поддержкой. Промокод 4START даёт -20% на первый заказ. Заказать Minecraft хостинг