FrontierShop
Server shop and player market GUIs with daily-ticker pricing, deals, a rotating black market and upgradeable custom items.
What it does
/shop opens an 8-category, 119-item server shop where every slot is its own terminal (left-click buy 1, shift-left buy a stack, right-click sell 1, shift-right sell everything matching), and /market opens a player market for listing your own items at your own price.
Prices ride a daily ticker: each item has a price index that re-prices *once a day at local midnight* from yesterday’s net player flow (clamped 60–140 %), buy and sell both ride the same index so the spread never changes and a dumped item eventually becomes cheap to buy back. Prices never move mid-day; the anti-farm guard is a daily warehouse cap (the server buys at most appetite × 5 of each item per day) rather than price-crushing, and only plain, unenchanted, undamaged items sell.
On top of that: seeded daily deals, [shop] sign shops on chests, and a buy-only black market that opens on fixed weekly windows with per-window stock and rosters that rotate by weekday — selling vanilla contraband you can’t normally get in survival (spawn eggs, mob heads, loot-only gear), captured mob spawners, and five tiered custom trinkets plus three consumables that players level up at an Upgrade Station.
Requires & integrates with
- Required
- Paper 26.2+, Java 25+
- Optional
- Vault + a Vault-registered economy (all money; without it the GUIs open but every transaction is refused with "The economy is offline") · FrontierBorder (its
server-timezonesets the "local midnight" used by the ticker, deals and black-market windows) · a claim plugin such as Lands or GriefPrevention (protects sign-shop chests from hoppers and pistons — the plugin only guards sign/chest breaking and explosions) - Used by
- FrontierStatsAPI (reads
demand.db/market.db/sales.dbread-only for catalog, market, deals, price history and black-market endpoints)
Commands
Sign shops have no command: place a sign on a chest or barrel and write [shop] / <amount> / <price>; the chest’s first item becomes the offer.
| Command | Who | What it does |
|---|---|---|
| /shop | Everyone | Open the server shop GUI |
| /shop upgrade | Everyone | Open the Upgrade Station (same as the anvil button in /shop) — pay money to raise the held custom item one tier |
| /shop reload | Admin | Re-read config.yml and rebuild the catalog (ticker indexes and market data kept) |
| /market | Everyone | Browse the player market GUI (also the emerald in /shop) |
| /market sell <price> | Everyone | List the whole held stack at a price (listing tax applies) |
| /shopadmin listings [player] | Admin | List live market listings with IDs (console-friendly) |
| /shopadmin removelisting <id> | Admin | Pull a listing — item returns to the seller’s mailbox, seller notified (staff can also shift-click a listing in /market) |
| /shopadmin price <material> <buy> <sell> [appetite] | Admin | Persistent price override written to overrides.yml; price <material> clear removes it |
| /shopadmin ticker <material> | Admin | Show index, overnight change, live prices, today’s sold/bought and warehouse left (demand is an alias) |
| /shopadmin ticker reset <material|all> | Admin | Snap the index back to 100 % and clear today’s counters |
| /shopadmin deals | Admin | Show today’s daily deals with effective prices |
| /shopadmin blackmarket [status] | Admin | Inspect the black-market window and remaining stock |
| /shopadmin blackmarket open [day…] [minutes] | Admin | Force a window open (default 30 min); add a weekday (open friday 60) to preview only that night’s roster |
| /shopadmin blackmarket close | Admin | Close a window early — stays shut for the rest of that scheduled window |
Permissions
Player features default to true, staff features to op. Every node follows frontier.<plugin>.<action>, so a LuckPerms setup is e.g. lp group default permission set frontier.shop.use true. Wildcards work: frontier.reputation.*.
| Node | Default | Grants |
|---|---|---|
| frontier.shop.use | true | /shop, /shop upgrade, /market, /market sell |
| frontier.shop.signshop | true | Creating [shop] signs on chests and barrels |
| frontier.shop.admin | op | /shop reload, all of /shopadmin, shift-click listing removal in /market, breaking other players’ shop signs |
Legacy pishop.* nodes are declared as children of the frontier.shop.* nodes, so old permission grants keep working.
Config reference
File
plugins/FrontierShop/config.yml
To apply changes
/shop reload
Good to know
- +Data files in
plugins/FrontierShop/:demand.db(ticker state),market.db(listings, mailbox, notices),sales.db(price history, deal picks, black-market window/stock),overrides.yml(admin price overrides — kept separate soconfig.ymlis never rewritten). All SQLite files run in WAL mode so other tools can read them live; if a DB fails to open the shop degrades to in-memory and keeps working. - +Midnight rollover is lazy (missed days are replayed on first access) and keyed to the JVM timezone; the same clock drives daily deals and black-market windows, so set FrontierBorder’s
server-timezoneon a UTC host. - +The plugin warns on boot if any catalog pair is arbitrage-risky (
sellmore than ~60 % ofbuy); fix in config or with/shopadmin price. Boat and utility sinks like Lead and Name Tag ship withsell: 0on purpose. - +Black-market stock is per window and keyed by entry (custom id or material), so several rows sharing a material never collide; closing a window with
/shopadmin blackmarket closekeeps it shut until the next scheduled one. The v1.7.4spawner_random_*entries are not in the shipped config — add rows yourself. - +Most-tweaked knobs: catalog prices and appetites,
market.tax,blackmarket.scheduleand rosterdays, and thelevel-N-costcurves for the Upgrade Station.
← Previous
FrontierReputation
Wild West reputation: outlaws, lawmen, bounties, wanted posters, marshals, /pvp war mode, daily rewards
Next →
FrontierEvents
Event engine: Boss Rush raids, the Gauntlet, keystone Raid Keys, TDM/FFA, duel tournaments with wagers, arenas, kits
Looking for something specific? Search the whole suite.