EzShops Skyblock and SMP ready shop menus with smart pricing, sign trading, and API integrations Paper/Purpur 1.21.4+ • Vault economy • ShopPriceService API • Dynamic pricing engine Requires Vault and a compatible economy plugin to process currency. Direct support:
Join our Discord server ⚠ Integrates with my
EzAuction plugin
What makes EzShops different?
Guided storefront menus – Category icons, quantity pickers, bulk buttons, and lore templates keep every purchase clear for players and staff.
Smart price automation – Dynamic buy/sell multipliers nudge values after each transaction and persist to `shop-dynamic.yml` so your market keeps evolving between restarts.
Rotating daily specials – Schedule weighted or sequential rotations from `shop/rotations/` and highlight limited-time offers without rewriting your categories.
Sign shop mirroring – Sync right-click signs with any menu entry, customize headers and line formats, and let towns trade without opening the GUI.
Specialty entries out of the box – Sell spawners with correctly tagged block states, issue minion or vote crate keys, and keep cosmetic minion heads restricted to crates.
Player-run marketplaces – [shop] signs convert into owner-branded listings that pull stock from linked chests while enforcing permissions and chest access rules.
Player-facing commands
/shop – Open the menu or browse a flat paginated list when categories are disabled.
/shop buy & /shop sell – Trade directly from chat with material names and optional amounts.
/sellhand & /sellinventory – Cash out specific stacks or an entire inventory in one click, with summary receipts.
/price – Let players and staff quote live buy/sell totals using tab-complete across every configured material.
Configuration toolkit
Instant defaults – First launch seeds `shop.yml`, menu layouts, and category presets so you can adjust icons, lore, and prices immediately.
Flexible layouts – Pick per-category sizes, filler items, back buttons, and slot placements or fall back to a flat `/shop` list.
Rotations and specials – Build timed lineups in `shop/rotations/`, assign them via `rotation-group`, and let the plugin cycle icons, menu titles, and items automatically.
Dynamic pricing defaults – Tune global multipliers in `config.yml` and override them per entry to automate supply-and-demand swings.
Sign formatting – Adjust accepted headers and line colors to match your branding without breaking existing signage.
Player shop tuning – Toggle the entire system with player-shops.enabled, enforce quantity or price limits, and rewrite owner/item/stock lines through the dedicated sign-format placeholders.
/playershop setup flow – Give creators a menu-driven way to prefill quantity and pricing, complete with +/- buttons that honor your configured minimums and caps before they ever place a sign.
Localized messaging – Point language in config.yml to files like messages/messages_fr.yml. Bundle new locales inside your jar (and add them to EzShopsPlugin.DEFAULT_SHOP_RESOURCES) so they copy to plugins/EzShops/messages/ on first launch.
Configuring item pricing
Open the entry file – Each category lives under plugins/EzShops/shop/categories/; edit the item section (for example farming.yml ➝ wheat_seeds).
Set your base totals – Update the buy and sell values to control the price for the configured amount; EzShops scales shift-click totals for you, and bulk-amount changes the alternative stack size.
Enable dynamic swings – Add an optional dynamic-pricing block with enabled, starting-multiplier, min-multiplier, max-multiplier, buy-change, and sell-change to let prices respond automatically to trades.
Apply changes – Save the file and reload EzShops (or restart the server) to push the updated numbers live to menus, signs, and API consumers.
Define the schedule – Edit `plugins/EzShops/shop/rotations/daily-specials.yml` (or create a new file under `shop/rotations/`). Set `interval` to an ISO-8601 duration like `PT6H` or compact shorthand such as `6h`, choose a `mode` of `sequential` or `random`, and pick a `default-option` for fresh installs.
Wire the category – Point `rotation-group` inside the matching category file (the bundle ships `shop/categories/daily_specials.yml`). The optional `rotation-defaults` block supplies the shared icon, menu title, and baseline item data that every option inherits.
Override per option – Inside each option’s `items` block, override only the fields you need (material, prices, amounts, lore, or icons). Add `weight` values when using `random` mode to bias how often each option appears.
Reload and monitor – Reload EzShops or restart the server. The plugin copies active selections to `shop-rotations.yml` so admins can track timers or pin a specific option between rotations.
Mirror menu offers – Tie a sign to any priced Material; EzShops pulls the same buy/sell data used by your GUI entries.
Quick setup – Place [shop] on line one, buy or sell on line two, the item (for example DIAMOND_BLOCK) on line three, and the stack amount on line four.
Example layout – [shop] / buy / DIAMOND_BLOCK / 1 instantly rewrites to your themed header, action text, item name, and formatted price.
Granular permissions – Lock creation behind ezshops.shop.sign.create while letting standard shop permissions govern who can buy or sell through the sign.
Player feedback – Players receive chat confirmations while the sign updates its colored price line after each trade.
Batch generator GUI – Run /signshop (permission ezshops.shop.sign.setup) to open a planner GUI that pulls items from your inventory, flips between buy/sell modes, sets a shared backing block, tweaks spacing and rows, and chains together as many synchronized signs as you need before confirmation.
One-click placement – Look at the block you want behind the first sign and hit confirm; EzShops lays down the backing line and wall signs in front of you using your configured formatting, stack sizes, and stored metadata so they trade immediately.
How to use the sign shop generator
Open the planner – Run /signshop (permission ezshops.shop.sign.setup) to open the generator GUI and pull eligible materials from your inventory.
Select your template item – Click an item in your inventory pane to add it to the plan. EzShops copies its material, display name, lore, and buy/sell prices straight from the linked menu entry.
Choose buy or sell mode – Use the toggle buttons to decide whether every generated sign handles purchases or sales, and set the stack amount if you need something other than the default.
Configure the layout – Pick the backing block, adjust spacing and row count, and preview the final sign text so you know exactly how the strip will look in-game.
Confirm placement – Stand where you want the line to begin, look at the supporting block, and press the confirm item; EzShops places the backing and every formatted sign using the plan you just saved.
Reuse saved plans – The generator keeps your last configuration so you can rerun /signshop, tweak a detail, and redeploy another set of synchronized buy or sell signs in seconds.
Scanning sign shops
/signshop scan – Sweep the nearby area for EzShops-formatted signs and highlight any that no longer match their linked GUI entry or have invalid headers.
Permission gated – Limit the audit tool to trusted staff with ezshops.shop.sign.scan so regular players can’t spam alerts.
Instant feedback – Scans summarize the number of corrected signs, orphaned headers, or skipped locations right in chat so you know where to investigate.
One-click fixes – Choose the optional autofix prompt to rewrite outdated lines, reapply pricing, and restore proper formatting without touching each sign manually.
Perfect for expansions – Run a scan after big layout changes or world edits to ensure every strip still points at a valid backing block before opening your new district.
Player shops
Let the community sell – Players place [playershop] on a sign attached to their chest, add the quantity and price (or reuse saved defaults), and EzShops validates the stock before activating the listing.
Automatic formatting – Successful shops rewrite their signs with color-coded headers, owner names, item summaries, and price lines that reflect stock status.
Offline earnings – Purchases withdraw money from buyers, deposit it into the owner's account, and send notifications when the seller is online.
Secure storage – Only owners (or admins with ezshops.playershop.admin) can break signs or open connected chests, preventing grief and theft.
Permission tiers – Grant ezshops.playershop.create to trusted builders, ezshops.playershop.buy to the wider community, and reserve ezshops.playershop.admin for staff oversight.
Configurable rules – Require stocked chests, clamp quantity or pricing ranges, or disable the feature entirely using the player-shops block inside config.yml.
Double-chest ready – Listings automatically bind to both sides of a double chest and refresh their signs whenever stock changes so the status is always accurate.
How to open a player shop
Preset your values (optional) – Run /playershop to open the setup menu. Use the +/- buttons to lock in a quantity and price that respect your configured limits; the plugin saves these until you change them again.
Stock a chest – Place the item you want to sell inside the chest (or both sides of a double chest) so EzShops can detect the template stack.
Add the sign – Attach a sign to the chest and write [playershop] (or another allowed header) on the first line.
Enter quantity and price – Fill in the second line with the amount to sell per purchase (e.g. x16) and the third line with the total cost (numbers only). Leave either line blank to reuse the values you saved with /playershop.
Let EzShops verify – When you place the sign, the plugin checks ownership, chest stock, and any price or quantity guards before rewriting the sign with your themed formatting.
Maintain stock – Keep the chest supplied; EzShops instantly flags the sign as out of stock and flips it back when you restock or close the chest inventory.
Collect earnings – Every sale deposits money into your account, notifies you if you are online, and keeps the sign synced with the remaining stock.