Voxel Shop beta is live. Expect occasional bugs. Learn more
Player auction house with GUI search, categories and Vault economy support

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
Supported platforms
Tested by actually booting the plugin on each of these:
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
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
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
Every subcommand checks its own permission, so revoking sxah.sell genuinely prevents selling.
Placeholders
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