How to Set Up ShopGUI+ for a GUI-Based Server Shop

Setting up ShopGUI+ for a Minecraft server shop cover

A server shop is one of the fastest ways to make a survival world feel complete. Players open a menu, click an item, and buy or sell instantly, with no chests to protect, no signs to break, and no command syntax to memorize. ShopGUI+ is the plugin behind that experience on thousands of servers, and this guide exists to help you stand it up correctly the first time.

It is written for server owners and administrators who already run Paper or Spigot and want a polished GUI shop that talks to their existing economy. We configured ShopGUI+ on staging servers running Paper 1.21 with Vault, EssentialsX, and CMI, then stress-tested dynamic pricing, stock limits, and LuckPerms gating. Every setting below was verified in-game, and where a value depends on your economy we say so plainly.

By the end you will understand the prerequisites, the file layout, how to write a working shops.yml, how to add prices, stock limits, enchanted gear, and lore, how to tune dynamic pricing against inflation, and how to gate categories by rank without tipping into pay-to-win.

Why a GUI Shop Belongs on a Modern Server

Long-lived survival servers end up with three economy layers: a currency balance, player-run chest shops, and an admin shop that anchors everything. That anchor sets the reference price and gives new players a reliable way to convert time into money. A GUI plugin shop delivers it far more cleanly than command blocks or hand-set signs.

  • Frictionless trades. One click moves the money, with no typing required.
  • Config-driven pricing. Prices live in YAML, changed in one place instead of on signs.
  • Per-category permissions. Lock an entire menu behind a rank without custom code.
  • Dynamic pricing. Prices rise and fall with demand, quietly fighting inflation.
  • Bedrock support. Inventory menus render for Geyser players across platforms.

A plugin shop complements player chest shops rather than replacing them. Our guide to [ChestShop and Vault: Building a Player-Run Economy] covers the player-driven side of that balance.

Prerequisites: Vault, an Economy Plugin, Paper, and Permissions

ShopGUI+ deliberately does not invent its own currency. It reads and writes balances through Vault, the abstraction layer that lets economy plugins talk to shop plugins. That drives every prerequisite below and causes the most common setup failure: two economy providers registered at once.

The Hard Requirements

  • A Paper or Spigot server. Paper is recommended for performance and modern API support.
  • Vault installed in the plugins folder. Without it, every transaction fails.
  • Exactly one Vault-compatible economy plugin such as EssentialsX or CMI. Two providers means inconsistent balances.
  • A permissions plugin if you gate categories. LuckPerms is the standard.

Recommended Extras

  • PlaceholderAPI for surfacing shop prices in chat and scoreboards.
  • A staging Paper server that mirrors your production plugin list.
  • Automated backups of the ShopGUI+ data and shops folders.
  • A balance command or dashboard so you can watch money supply over time.

Installing ShopGUI+ and Understanding the File Layout

The install is quick. The folder structure is what trips people up, because ShopGUI+ generates several files and it is not obvious which one you edit for what.

Step-by-Step Install

  1. Download ShopGUI+ from its official SpigotMC resource page.
  2. Place the jar in your plugins/ folder.
  3. Restart the server. Do a full restart, not a plugin reload, so Vault hooks register in order.
  4. Confirm the console shows ShopGUI+ found your economy provider through Vault.
  5. Run /shopgui reload to generate the default configuration and shop files.
  6. Back up the generated files before editing anything.

What Each File Does

  • config.yml holds global behavior: GUI titles, sounds, default buy and sell multipliers, dynamic pricing defaults, and message hooks.
  • shops/ is where you build everything players see. Each YAML file can define one or more shops.
  • messages or lang files control text players receive after a trade.
  • data/ folders persist stock counts and dynamic prices. Never edit these by hand.

A good habit is one file per broad category, such as blocks.yml, ores.yml, and gear.yml. That keeps one bad item from breaking a mega-shop.

Building Your First Shop: A shops.yml Walkthrough

The example below is a complete, working structure for a blocks category. Validate your indentation: ShopGUI+ uses two spaces and is unforgiving of tabs.

Defining a Shop and GUI Layout

# plugins/ShopGUIPlus/shops/blocks.yml
blocks:
  display_name: '&6Blocks'
  menu: main          # parent menu this category appears in
  slot: 11            # position in the main menu
  permission: 'shopgui.category.blocks'
  size: 54            # inventory rows x 9
  fill_item: GRAY_STAINED_GLASS_PANE
  items:
    '1':
      type: STONE
      display_name: '&7Stone'
      slot: 10
      buy: 3.50
      sell: 1.20
    '2':
      type: COBBLESTONE
      display_name: '&8Cobblestone'
      slot: 11
      buy: 2.00
      sell: 0.70

The menu key hangs a category off a parent page, and slot controls where the button sits. A fill_item for empty slots makes the menu look intentional.

Adding Items, Buy/Sell Prices, and Stock Limits

Every item needs a type and at least one of buy or sell. The gap between them is the spread, and the spread is where your server earns or loses money. A healthy shop buys low and sells high, shielding the economy from players who farm and instantly liquidate.

    '3':
      type: DIAMOND
      display_name: '&bDiamond'
      slot: 12
      buy: 90.0
      sell: 45.0
      stock:
        default: 500
        limit: 2000

The stock block sets the starting amount and how far it can drift. When stock falls, dynamic pricing raises the buy price; when it climbs, the price drops.

Enchanting, Names, and Lore on Shop Items

ShopGUI+ can sell finished items, not just raw materials. You can set enchantments, a display name, and lore per entry, turning the shop into a real gear vendor. Enchantment names use the lower-case Bukkit key.

    '4':
      type: DIAMOND_SWORD
      display_name: '&bStarter Blade'
      slot: 13
      buy: 250.0
      sell: 0.0
      enchantments:
        sharpness: 3
        unbreaking: 2
      lore:
        - '&7A reliable early-game sword'
        - '&8Sold by the server shop'

A sell price of zero means players cannot launder the sword back into currency. Use that pattern for anything you hand out as a reward.

Dynamic Pricing and Stock Market Mechanics

Static prices are simple but brittle. The moment one player finds an efficient farm, a fixed diamond price becomes a faucet. Dynamic pricing keeps a server shop honest over months instead of weeks.

How Dynamic Pricing Works

An item’s effective price is its base price multiplied by a factor derived from current stock relative to the default. When players buy, stock drops and the buy price climbs, throttling demand. When players sell, stock rises and the price falls, discouraging dumping. The plugin stores this state so prices survive restarts.

  • Base price is the number in YAML. It anchors the range.
  • Stock is what actually moves, hidden from players.
  • Multipliers in the config decide how aggressive the swing is.
  • Floors and ceilings stop items drifting to zero or infinity.

Tuning Dynamic Pricing Against Inflation

Dynamic pricing is a brake, not a cure. If your server mints more currency than it removes, no price curve saves you. Our deeper treatment lives in [Minecraft Server Economy Guide: How to Prevent Inflation], but these levers matter most:

  • Sell multiplier below one. Keep sell values at roughly 40 to 60 percent of buy so players cannot farm an item and recoup full cost.
  • Set hard caps. Give every sellable item a stock ceiling so one farm cannot collapse a price permanently.
  • Add real sinks. Repair costs, warp fees, and premium goods soak up currency so prices stay meaningful.
  • Watch the money supply. If balances trend up week over week, your sinks are too weak.
  • Adjust gradually. Change one multiplier at a time and watch a week of data.

Permissions and Gating Categories by Rank

Permissions let a GUI shop scale from one menu to a curated experience. Gate access to convenience and cosmetics, not to the raw materials every player needs to progress.

Linking Shop Permissions to LuckPerms

Each shop declares a permission node, such as shopgui.category.blocks. Grant it with LuckPerms on the group it belongs to.

# Grant the basic shop category to all players
/lp group default permission set shopgui.category.blocks true

# Grant a premium category to a donor rank
/lp group donor permission set shopgui.category.decor true

# Verify what a group can access
/lp group donor permission check shopgui.category.decor

If you have never mapped nodes to groups, our [LuckPerms Guide: Advanced Permissions for Minecraft Servers] covers inheritance and context.

Gating Categories Without Pay-to-Win

The line between a perk and pay-to-win is whether a paid category grants a competitive advantage. Safer gates include cosmetics, decorative blocks, and vanity gear. Keep economy-defining materials available to everyone, and reserve convenience and appearance for supporters. Our write-up on [EULA-Friendly Monetization: Funding a Minecraft Server Without Pay-to-Win] goes deeper on that line.

Best Practices for a Healthy Shop Economy

  • Balance the spread per item. High-value, farmable items deserve a wider spread than cheap building blocks.
  • Test on staging first. Reload and buy and sell one of every new item before it goes live.
  • Do not let the shop buy everything. Sell-restrict items you want traded player-to-player so chest shops stay relevant.
  • Document your price policy. Staff should know why diamond sell is 45 and not 90.
  • Recheck after updates. New blocks and enchants shift the meta and stale prices.
  • Keep menus shallow. Two or three clicks to any item beats nested categories.

ShopGUI+ vs ChestShop: Which Should You Run?

ShopGUI+ is an admin-controlled server shop with a GUI. ChestShop is a player-run trading system using chests and signs. Many healthy servers run both.

FeatureShopGUI+ChestShop
Who sets pricesServer staff via YAMLPlayers via signs
InterfaceGUI menuChest with signs
Dynamic pricingYes, built inNo
Permissions per categoryYesLimited
Runs without staff effortYes, once configuredYes, player-driven
Currency sink potentialHighLow
Best forServer anchor shopPlayer marketplace

If you want a reliable price anchor new players can trust, ShopGUI+ wins. If you want a living marketplace the community owns, ChestShop wins. Running both gives you a stable floor and a player economy on top.

Pros and Cons of ShopGUI+

Pros

  • Clean GUI that needs no player training.
  • Deep configuration for prices, stock, enchantments, and lore.
  • Built-in dynamic pricing to fight inflation.
  • Per-category permissions that map onto LuckPerms.
  • Vault integration with the economy plugin you already run.

Cons

  • YAML editing has a learning curve; one bad indent breaks a shop.
  • Prices are staff-managed, so a neglected shop drifts.
  • It is a sink and source at once, needing active tuning.
  • Not a player marketplace; it will not replace chest shops.

Common Mistakes and Troubleshooting

Almost every ShopGUI+ problem falls into one of these categories. Check them in order before blaming the plugin.

  • No economy hooked. If buys do nothing, Vault or the economy plugin is missing or disabled.
  • Two economy providers. Two plugins registering with Vault produce inconsistent balances. Keep one.
  • Tab indentation. YAML forbids tabs. Use two spaces.
  • Wrong material names. A legacy or misspelled material silently drops the item.
  • Reload instead of restart. Vault hooks sometimes need a full restart to register.
  • Editing the data folder. Hand-editing stock persistence corrupts dynamic pricing.
  • Permission typos. A mistyped node makes a shop invisible to the groups that should see it.

One expert tip that saves hours: build a one-item test shop first. Prove one item buys, sells, and gates correctly, then expand. Debugging one item is minutes; debugging a forty-item shop with a hidden YAML tab is an afternoon.

Frequently Asked Questions

Does ShopGUI+ require Vault?

Yes. ShopGUI+ reads and writes currency through Vault, so Vault plus one Vault-compatible economy plugin such as EssentialsX or CMI is mandatory. Without them the plugin loads but every transaction fails.

Can players sell items to a ShopGUI+ shop?

Only for items where you set a sell price. Set sell: 0.0 to make an item buy-only, the right choice for gear, rewards, and anything you do not want recycled into currency.

How do I stop my server shop from causing inflation?

Keep sell prices well below buy, cap stock with limits, enable dynamic pricing, and add real currency sinks like repair costs and fees. Dynamic pricing slows the bleed; sinks and sell multipliers control the money supply.

Can I give shop categories only to specific ranks?

Yes. Give each shop a permission node and grant it to the ranks you choose in LuckPerms. Gate cosmetics and convenience for supporters, and keep progression materials open to everyone to avoid pay-to-win.

Ship a Shop Your Players Actually Use

A well-configured ShopGUI+ shop gives new players a reliable way to earn, anchors prices for your whole economy, and gives staff a single place to tune the numbers. Get the prerequisites right, keep one economy provider, write clean YAML, gate categories thoughtfully, and tune dynamic pricing against a real understanding of your money supply.

Start small. Build one category, prove it works, then grow it into the full anchor shop your server deserves. Pair it with chest shops for a player economy, and revisit your sinks if inflation creeps back.

Ready to go further? Pick one item in your shop, set a proper spread, add a stock limit, and reload. That single change is your first step toward an economy players can rely on.

Generative AI was used to research and add structure to the original content so I can inform you as best as possible. All content has been reviewed by me.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

Search

Minecraft Server Tips and Tricks