Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for shellzy

Player auction house with GUI search, categories and Vault economy support

Report SxAuctionHouse?

R

1.0.0

SxAuctionHouse lets players sell items from their own inventory and buy from each other through a clean, fully configurable GUI. It has no economy of its own: every payment goes through Vault, so it works with whatever economy plugin your server already runs.

Features

  • Marketplace GUI with pagination, search, categories and sorting
  • Sell straight from your hand with /mk sell 500
  • Purchase confirmation showing price, seller and your balance before and after
  • Manage and cancel your own listings
  • Full history of what you bought and sold
  • Automatic expiry that returns the item to the seller, online or not
  • Items are never destroyed. Anything that cannot be delivered is queued and handed over on the next login
  • Configurable marketplace tax, either removed from circulation or paid into a server account
  • PlaceholderAPI support, entirely optional
  • Every message and every GUI element is configurable, with MiniMessage support
  • SQLite storage with connection pooling, nothing to install or administer

Supported platforms

Tested by actually booting the plugin on each of these:

  • Paper 1.21.x
  • Purpur and other Paper forks
  • Spigot 1.21.x
  • CraftBukkit 1.21.x
  • Folia 1.21.x

One jar detects the platform at startup and adapts to it. On Folia it uses the regionised schedulers instead of the classic one.

Requires Java 21 or newer.

Requirements

  • Vault
  • Any Vault-compatible economy plugin, for example EssentialsX
  • PlaceholderAPI is optional

Without an economy the plugin still loads and the marketplace still opens, but buying and selling stay disabled and the console explains what to install.

Commands

  • /mk open the marketplace

  • /mk sell list the item in your hand (short: s)

  • /mk list manage your listings (short: l)

  • /mk history your purchases and sales (short: h)

  • /mk claim collect items waiting for you (short: c)

  • /mk help command help

  • /mka reload reload config and messages (short: r)

  • /mka remove remove a listing and return the item to its seller

  • /mka info version, platform, economy and tax status

Also reachable as /ah, /market and /auctionhouse. Prices accept shorthand: 5000, 5,000 and 5k all mean the same thing, as do 2m and 3b.

Permissions

  • sxah.use browse and buy default: everyone
  • sxah.sell create listings default: everyone
  • sxah.admin reload, remove any listing default: operators

Every subcommand checks its own permission, so revoking sxah.sell genuinely prevents selling.

Placeholders

  • %sxah_balance%
  • %sxah_active_listings%
  • %sxah_sold_items%
  • %sxah_total_sales%
  • %sxah_pending_returns%
  • %sxah_max_listings%
  • %sxah_tax_percent%

Item and money safety

This is the part worth reading before installing on a live server. A listing can leave the active state exactly once. Every sale, cancellation and expiry goes through a single conditional database statement that only one caller can ever win, so two players clicking buy at the same moment produce one sale and one clear "no longer available" message. This is covered by tests that run 32 threads against a real database.

Items are never destroyed. Every item that leaves a listing is written to a delivery queue in the same transaction that changes the listing status, so the two can never disagree. A full inventory, a logged-out player or a server crash parks the item instead of losing it.

Purchases are ordered so every failure has a complete undo. If the payment fails, the listing goes back on the market untouched. If the seller payout fails, the buyer is refunded in the same tick. A listing is only ever marked sold together with its ledger entry and its queued item, in one transaction.

Menu clicks are cancelled before the menu interprets them, which closes the whole class of duplication bugs where a shift-click or a drag pulls an icon out of a GUI. Nothing from a click is trusted except which slot was pressed; price, seller and status are always re-read from the database.

Configuration

Listing limits, expiry time, price range, tax, categories, sounds, GUI layout and every message are configurable. Categories are matched by material name, wildcard pattern or semantic rule, so new items from a Minecraft update are categorised without editing anything.

Support

Found a bug or want a feature? SUPPORT DISCORD

Information

Published
September 9, 2026
Author
0Downloads

Platforms

Paper
Paper
1.21–1.21.11