Skip to main content
← All Guides
Economy · 9 min read

How to Set Up ShopGUI+, Admin Shops Complete Guide

Step-by-step guide to installing, configuring, and optimizing ShopGUI+ for admin-run GUI shops on your Minecraft server with Vault and PlaceholderAPI integration.

What Is ShopGUI+ and Why Use It?

ShopGUI+ is a premium admin shop plugin that presents items in a clean inventory-based GUI. Unlike ChestShop where players build physical sign shops, ShopGUI+ gives you a centralized storefront that every player accesses through a command like /shop. You control the categories, item listings, prices, and availability. Players click items in the GUI to buy or sell them, and transactions go through Vault like any other economy interaction.

ShopGUI+ is the most popular paid shop plugin on SpigotMC for good reason. It handles thousands of items without lag, supports dynamic pricing that shifts based on supply and demand, and integrates with nearly every economy and permissions plugin. If you want your server to have a stable, admin-controlled shop where prices are predictable, ShopGUI+ is the tool for the job.

Prerequisites

  • A Paper, Spigot, or Purpur server running 1.14+
  • Vault installed and connected to an economy plugin (EssentialsX Economy, CMI, etc.)
  • LuckPerms or another permissions manager
  • Optionally, PlaceholderAPI for price placeholders in signs, scoreboards, or holograms

Installation

Purchase ShopGUI+ from SpigotMC, download the jar, and place it in your plugins/ folder. Restart the server, never use /reload with economy plugins. ShopGUI+ will generate a folder structure like this:

plugins/ShopGUIPlus/
├── config.yml          # Global settings
├── shops/
│   ├── blocks.yml      # Default category
│   ├── food.yml
│   ├── ores.yml
│   └── ...
└── lang/
    └── en_US.yml       # Messages

The default shop files give you a working example out of the box, but you will want to rewrite them to match your server's economy. Do not skip the price calibration step, default prices are rarely suitable for a live economy. Check the economy balancing guide for pricing methodology.

Configuring Categories

Each YAML file inside shops/ represents one category in the GUI. The category file defines its icon, display name, slot position, and the items it contains. Here is a trimmed example for a mining category:

# shops/mining.yml
mining:
  name: "&8Mining Supplies"
  icon:
    material: DIAMOND_PICKAXE
  size: 36
  items:
    1:
      material: STONE_PICKAXE
      buyPrice: 25
      sellPrice: 5
      slot: 10
    2:
      material: IRON_PICKAXE
      buyPrice: 120
      sellPrice: 25
      slot: 11
    3:
      material: DIAMOND_PICKAXE
      buyPrice: 800
      sellPrice: 150
      slot: 12
    4:
      material: COBBLESTONE
      buyPrice: 1
      sellPrice: 0.5
      slot: 19
      sellOnly: false

Each item entry supports buyPrice, sellPrice, or both. Setting one to -1 disables that transaction direction. So if you want players to sell cobblestone to the server but not buy it, set buyPrice: -1 and define only the sell price.

Slot Layout Tips

Chest GUIs use slot numbers starting at 0 (top-left) and going left to right, top to bottom. For a 36-slot (4-row) GUI, slots 0-8 are the top row and 27-35 are the bottom row. Most server owners leave the border slots empty and place items in the inner area for a cleaner look. Use glass panes as decorative fillers in unused slots by adding filler items in your category config.

Dynamic Pricing

ShopGUI+ includes a built-in dynamic pricing engine. When enabled, prices adjust based on how many of an item have been bought or sold recently. If players dump thousands of cobblestone into the shop, its sell price drops. If everyone is buying diamonds, the buy price creeps upward. This simulates supply and demand without manual intervention.

Enable it in config.yml:

dynamicPricing:
  enabled: true
  provider: INTERNAL
  decayEnabled: true
  decayPeriod: 24  # hours

The decay period controls how quickly prices return to their base values. A 24-hour decay means prices fully normalize overnight. For active servers with many players, a shorter decay (12 hours) keeps things interesting. For smaller servers, stick with 24 or even 48 hours so that price swings feel meaningful.

You can also set per-item min/max price caps so that dynamic pricing never makes an item absurdly expensive or worthless:

    3:
      material: DIAMOND
      buyPrice: 500
      sellPrice: 100
      dynamicPricing:
        minBuyPrice: 300
        maxBuyPrice: 800
        minSellPrice: 50
        maxSellPrice: 200

Sell-Only and Buy-Only Items

Not everything should be available in both directions. Mob drops like rotten flesh and spider eyes should be sell-only, players farm them and need somewhere to dump them for cash. Rare items like elytra or enchanted books might be buy-only to create a money sink. Set the unused direction to -1 to disable it.

A good rule of thumb: raw materials should be sellable, finished goods should be buyable, and common drops should be sell-only at very low prices to prevent inflation.

Bulk Pricing

ShopGUI+ supports quantity selectors. Players can choose to buy or sell in stacks rather than one at a time. The amounts offered are configurable globally:

buttons:
  sellAll: true
  buyMoreEnabled: true
  amounts:
   , 1
   , 16
   , 64

Offering a "Sell All" button is particularly popular. It lets players dump every instance of an item from their inventory in one click. On survival servers with grind-heavy economies, this single feature dramatically improves quality of life and reduces complaints about tedious selling.

Permissions Per Shop

You can restrict access to certain shop categories by rank. For instance, a "Premium Blocks" category that only donators or high-rank players can access. In the category config, add:

premium_blocks:
  name: "&6Premium Blocks"
  permission: "shop.premium"
  icon:
    material: GOLD_BLOCK

Then grant shop.premium to the relevant group in LuckPerms. Players without the permission will not see the category in the GUI at all. This is a powerful way to create rank-exclusive perks without breaking gameplay balance, the items should still be obtainable by other means, just more convenient for ranked players.

PlaceholderAPI Integration

If PlaceholderAPI is installed, ShopGUI+ registers placeholders for item prices, total transactions, and more. You can display live shop prices on holograms, scoreboards, or NPC dialogues. Useful placeholders include:

  • %shopguiplus_item_buy_price_DIAMOND%, current buy price for diamonds
  • %shopguiplus_item_sell_price_DIAMOND%, current sell price for diamonds
  • %shopguiplus_item_stock_DIAMOND%, remaining stock if finite stock is enabled

Combine these with a hologram plugin to build a dynamic price board near your spawn shop area. This gives your server a stock-market feel that players genuinely enjoy tracking.

Recommended Shop Structure

After running economy servers for a while, a category layout that works well for most setups looks like this:

CategoryItem CountDirection
Blocks30-40Buy & Sell
Ores & Minerals15-20Buy & Sell
Food20-25Buy & Sell
Mob Drops25-35Sell Only
Farming15-20Buy & Sell
Redstone10-15Buy & Sell
Potions15-20Buy Only
Spawners5-10Buy Only (high price)

This structure covers every category a survival player interacts with regularly. Mob drops being sell-only ensures that farms funnel money into the economy without generating infinite resources. Potions being buy-only creates a consistent money sink, players who want quick potions pay a premium instead of brewing.

Need a server for this? Astroworld Hosting runs NVMe SSD, Pterodactyl panel, and DDoS protection on every plan. See features , plans from €6.39/mo.

Related Tools & Resources

🔧

Minecraft Tools

Calculators, generators & server tools

🧱

Item Database

Browse all Minecraft items, stats & recipes

⚒️

Crafting Recipes

Visual crafting guides for every recipe