Shop
The server shop — buy and sell blocks, gear, food, and limited items for Denarius, Auctoritas, or Civitas.
The server shop is Imperium's centralised marketplace for blocks, gear, food, and limited-time items. Buy what you need with Denarius, Auctoritas, or Civitas, and sell surplus materials back for Denarius. Every item, price, and category is loaded from shop.yml at startup, so the catalog can be tuned live without a plugin rebuild. The shop is also one of the few systems with a fully native Bedrock form-based UI — players on phones and consoles get a working menu, not a Java-only inventory.
Categories
Items are grouped into categories, each with its own icon. The default catalog ships with four, but admins can add or rename categories in shop.yml:
| Aliases | Resolved Category | What it sells |
|---|---|---|
mining, mine, pickaxe, blocks, block, build | blocks | Building materials and mining-related blocks. |
tools, tool, gear | upgrades | Tools, equipment, and upgrade items. |
food, eat | food | Consumables to keep you fed in the mines. |
special, limited, event | special | Limited-time and event-specific offers. |
Run /shop shops any time to list the live categories on your server — that's the authoritative list, since admins can extend it.
Buying Items
Each shop item can define up to four prices: buy_price (Denarius), sell_price (Denarius), token_price (Auctoritas), and crystal_price (Civitas). When you buy, the shop picks the currency in this fixed precedence: Auctoritas first, then Civitas, then Denarius. So if an item has a token price set, that's what you pay — not Denarius.
- Open the category from
/shopor with a direct alias like/shop tools. - Click an item to buy one; shift-click (bulk) buys a stack.
- The cost is withdrawn from the right currency and the item is dropped into your inventory.
- If your inventory is full the buy is refused — clear some space first.
Bought items are routed through the ItemFactory with an anti-dupe serial stamp, exactly like crate and auction items. That means shop gear is tracked across trades, vaults, and the auction house — no dupes, no exploits.
Selling Items
If an item has a sell_price greater than zero, you can sell it back to the shop for Denarius. The shop counts how many of that material you have in your storage slots only (slots 0-35), never armor or offhand — a hardened fix that closes a classic gold-armor money exploit. You're paid sell_price × amount × sellMult and the items are removed from your inventory.
Selling is the primary Denarius sink reversal for miners: dump your Sarcina's contents here when you don't want to use /sellall, or sell crafted surplus back for quick cash.
Dynamic Pricing (Optional)
Categories can opt into dynamic pricing — demand-driven price drift driven by a DynamicShopPricing collaborator. When enabled for a category, every buy pushes the price up a hair and every sell pushes it down, with pressure decaying back to baseline over time. The knobs live in shop.yml under dynamic_pricing:
| Knob | Default | What it controls |
|---|---|---|
| ceiling | 1.3 | Maximum buy-price multiplier (demand pushes up to +30%). |
| floor | 0.8 | Minimum buy-price multiplier (oversupply drops to -20%). |
| sell_floor | 0.7 | Minimum sell-price multiplier the shop will pay. |
| step_size | 0.01 | How far the multiplier moves per pressure step. |
| pressure_per_step | 50.0 | Items bought/sold per 1% price step. |
| decay_per_tick | 5.0 | Pressure that bleeds off each tick back toward baseline. |
Dynamic pricing is off by default and only applies to items priced in Denarius — token and crystal prices are flat. The ceiling and floor clamp how far the price can swing, so a sudden rush can't make an item absurdly expensive or worthless. Use /shop refresh (admin) to reload the knobs without a restart.
Bedrock-Friendly UI
The shop renders through the UIScreen framework, which detects whether a player is on Java or Bedrock and routes them to the right renderer. Java players see the familiar chest inventory; Bedrock players get a Floodgate form with the same items, prices, and buy/sell actions. There's no separate command or setup — Geyser players can just type /shop and go.
This replaced an older flow that locked Bedrock players out of the shop entirely. If you're on a phone or console and the shop ever feels broken, make sure you're on the latest Geyser/Floodgate build — the form UI depends on it.
Permissions
imperiummc.shop.access— required to open any shop (default: true).imperiummc.shop.admin— required for/shop refresh(default: op).
Without imperiummc.shop.access the /shop open path refuses with a "No shop access permission" error. Most players have this by default; it exists so servers can restrict the shop to specific ranks if they choose.
Command Reference
| Command | What it does |
|---|---|
/shop | Open the shop main menu — browse categories and items. |
/shop open <shop> | Open a specific shop category directly (e.g. /shop open blocks). |
/shop <alias> | Shortcut: /shop mining, /shop tools, /shop food, /shop special. |
/shop shops | List every available shop category (aliases: list, categories). |
/shop help | Show the in-game shop command reference (aliases: ?, commands, guide). |
/shop info | Print shop feature summary (alias: about). |
/shop refresh | Admin: hot-reload shop.yml and dynamic pricing (alias: reload). |
Tab-completion is full-featured: the first argument offers every subcommand plus aliases plus category names, and /shop open <tab> lists the live categories.
Tips
- Watch the prices. In dynamic categories, prices drift with demand — buy early after a server restart when pressure has decayed.
- Sell in bulk. Shift-click to buy or sell a whole stack in one transaction.
- Check token and crystal prices. Some items are far cheaper in Auctoritas or Civitas than Denarius — spend the currency you have most of.
- Use the aliases.
/shop miningis faster than opening the menu and clicking through. - Don't sell with armor on. The sell counter only looks at storage slots, so accidentally wearing a sellable item just means it won't be counted — no harm, but no payout either.
- Refresh after edits. If you're staff and just edited
shop.yml, run/shop refresh— no restart needed.
The shop is the simplest way to convert currencies into useful items and the cleanest way to liquidate mined blocks for Denarius. Pair it with /sellall for the Sarcina and the Auction House for high-value gear, and you have a complete economy loop.