ShopForge
Shops you edit and reload with players online
ShopForge is a GUI shop plugin for Paper and Spigot, 1.17 to 26.x. Each shop is a YAML file with its own categories, items, buy and sell prices and stock, and /shop reload applies changes with players online. Five finished shops with 230 items are copied onto your server the first time it starts, so /shop has something to sell straight away.
How it works in play
- Browsing:
/shoplists every shop with its categories and item count. Inside a shop, categories are tabs down the side and long categories get pages. - Buying: clicking an item opens a quantity window with -10, -1, +1 and +10. Buying 64 or more at once asks for a confirmation that shows the total.
- Selling:
/sell handsells the item you're holding and/sell allsells everything the shops buy./sell all <shop>uses one shop's prices. - Stock: an item can have a global stock and a per-player limit. Per-player limits refill after 24 hours by default.
- Discounts:
shopforge.discount.<percent>takes that percentage off. If a player has several, the highest one applies.
The five shops
Blacksmith (36 items), Farmer's Market (48), Wizard's Tower (48), Quarry (48) and Bazaar (50), each with its own colours, item names and lore. Edit their prices, delete the ones you don't want or use them as templates for your own.
Writing a shop
A shop is one file in plugins/ShopForge/shops/. This one has a single category with one item:
id: farmers-market
display-name: "<#7EC850>Farmer's Market"
size: 54
categories:
produce:
icon: WHEAT
display-name: "Produce"
items:
- id: bread
material: BREAD
display-name: "Hearth Bread"
lore:
- "<gray>Crusty loaf, still warm."
buy-price: 6
sell-price: 2
stock: -1 # -1 = unlimited
stock-per-player: 0 # 0 = no limitHow to use it
- Install: put ShopForge in
/pluginswith Vault and an economy plugin, restart once and paste your licence key intoconfig.yml. English is the default; setlanguage: esfor Spanish. - Adjust the shops in
plugins/ShopForge/shops/, or add new files. - Apply changes with
/shop reload. The next window a player opens has the new prices. - Shopkeepers (optional, needs Citizens): select an NPC with
/npc selectand run/shop npc <shop>. Right-clicking the NPC opens that shop.
Commands and permissions
- Everyone (
shopforge.use):/shop,/shop <id>,/shop list,/shop logfor their own history,/sell hand,/sell all [shop]. - Operators (
shopforge.admin):/shop reload,/shop log <player>,/shop give <player> <item>,/shop npc <shop>. shopforge.use.<shop>opens a single shop.shopforge.discount.<percent>gives a discount.
Placeholders
With PlaceholderAPI installed: %shopforge_total_spent%, %shopforge_total_earned% and %shopforge_transactions_count%.
Requirements
- Paper or Spigot from 1.17 to 26.x, forks like Purpur included, on the Java version your server already uses.
- Required: Vault and an economy plugin. Every price is in your server's currency.
- Optional: Citizens (shopkeeper NPCs), PlaceholderAPI (placeholders) and ParticleForge (effects).
FAQ
Do I have to restart after changing a price?
No. Run /shop reload and the next window shows the new price.
Can I check what a player bought?
Yes. /shop log <player> lists their purchases and sales with amounts and prices.
Can an item be limited to one per player?
Yes. Set stock-per-player: 1. Add stock-refill-hours to choose when it refills.
Can I translate the messages?
Yes. English and Spanish are included in lang/, in MiniMessage, and missing keys fall back to English.
For questions or bug reports, use the discussion tab on this page or our Discord.