
AuctionCore
An auction house with buy it now and bidding, fully configurable in game.

AuctionCore is a full auction house: list an item at a fixed price or run it as a timed auction with real bidding, browse by category, and collect what you won or earned from one screen.
Seven player screens plus an admin hub, every one of them laid out room for room and editable in game. Fees, limits, categories and durations are settings, not code.
Listing slots come from permissions, so a rank can sell more than a default player without any extra configuration.
What it does
Installation
- Drop AuctionCore.jar into your server's plugins folder.
- Restart the server. The plugin writes its own configuration on first start.
- Run /ah admin hub in game to set everything up. There is no file editing step.
Optional integrations
All of these are soft dependencies. AuctionCore loads and runs with none of them installed.
| Plugin | What it adds |
|---|---|
| Vault | Reads or provides the server economy, depending on the mode you choose. |
| PlaceholderAPI | Registers the placeholder expansion listed below. |
| ItemsCore | Custom ItemsCore items are understood and displayed properly. |
| LuckPerms | Permission driven limits resolve for offline players too. |
Commands
Generated from the plugin's own command registry at version 1.0.0, so this list cannot drift out of date.
| Usage | Permission | Description |
|---|---|---|
| /ah | auctioncore.use | The auction house |
| /ah <player> | auctioncore.use.others | Open the auction house for somebody else |
| Usage | Permission | Player only | Description |
|---|---|---|---|
| /ah sell | auctioncore.sell | yes | Open the sell screen |
| /ah browse | auctioncore.use | yes | Open the auction browser |
| /ah mine | auctioncore.use | yes | Open your listings |
| /ah bids | auctioncore.use | yes | Open your bids and collection |
| /ah claim | auctioncore.use | yes | Take back everything waiting for you |
| /ah stats | auctioncore.use | yes | Open your auction stats |
| /ah view <player> | auctioncore.use | yes | Open another player's auctions |
| /ah admin [action] [id] | auctioncore.admin | no | Everything, in one screen |
| Usage | Permission | Description |
|---|---|---|
| /ah admin hub | auctioncore.admin | Open the admin hub, which reaches everything |
| /ah admin fees | auctioncore.admin.settings | Edit the fees and limits |
| /ah admin categories | auctioncore.admin.categories | Edit the categories |
| /ah admin listings | auctioncore.admin.manage | Browse and force off any listing |
| /ah admin cancel <id> | auctioncore.admin.manage | Force one listing off by id |
| /ah admin sweep | auctioncore.admin.manage | Close everything past its time now |
| /ah admin menus | auctioncore.admin.menus | Edit any menu in game |
| /ah admin settings | auctioncore.admin.settings | Edit the settings in game |
| /ah admin messages | auctioncore.admin.settings | Edit any player facing message |
| /ah admin reload | auctioncore.admin.reload | Reload the configuration |
Permissions
everyone is granted to all players, operator only to ops, and nobody must be granted explicitly by a permissions plugin.
| Node | Default | Description |
|---|---|---|
| auctioncore.* | operator | Grants every auctioncore permission |
| auctioncore.admin | operator | Use the admin commands |
| auctioncore.admin.categories | operator | Edit the categories in game |
| auctioncore.admin.manage | operator | Cancel or remove anybody's listing |
| auctioncore.admin.menus | operator | Edit the menus in game |
| auctioncore.admin.reload | operator | Reload the configuration |
| auctioncore.admin.settings | operator | Edit the settings in game |
| auctioncore.buy | everyone | Buy and bid |
| auctioncore.sell | everyone | List an item |
| auctioncore.slots.<amount> | nobody | List up to <amount> at once, largest held wins |
| auctioncore.unlimited | operator | List any number of items at once |
| auctioncore.use | everyone | Open the auction house |
| auctioncore.use.others | operator | Open the auction house for somebody else, for npc commands |
Placeholders
Requires PlaceholderAPI. Turn the expansion off with integrations.placeholderapi: false.
Every key below is walked by the plugin's own self test, which fails if one stops resolving, so this list cannot quietly go out of date.
Server wide
These need no player.
| Placeholder | Example | Notes |
|---|---|---|
| %auctioncore_listings% | 142 | active listings right now, across everybody |
| %auctioncore_categories% | 7 | how many shelves are configured |
Per player
| Placeholder | Example | Notes |
|---|---|---|
| %auctioncore_selling% | 3 | listings this player has running |
| %auctioncore_slots% | 5 | how many they may run, unlimited shows as an infinity sign |
| %auctioncore_bidding% | 2 | auctions they hold a live bid on |
| %auctioncore_claims% | 1 | items waiting in their collection |
| %auctioncore_sold_waiting% | 4 | sold listings whose money they have not been paid yet |
Menu placeholders, on any listing tile
Separate from PlaceholderAPI. Every button in menus/*.yml may use these in its name or lore, and they are filled whether or not PlaceholderAPI is installed.
| Placeholder | Example | Notes |
|---|---|---|
| %item% | diamond sword | |
| %amount% | 1 | |
| %price% | $12,000 | |
| %price_label% | top bid | |
| %start% | $10,000 | |
| %seller% | TastyCake | |
| %bidder% | Notch | |
| %bids% | 4 | |
| %type% | auction | |
| %category% | weapons | |
| %rarity% | legendary | |
| %ends% | 2h 14m | |
| %id% | a4f1c9 |
Menu placeholders on the other screens
On the hub: player, balance, listings, max, bids and claims.
On the browser: category, count, colour and state on a rail tile; search, options, page and pages on the filter row; from, to and total on the rail scroll button.
On the sell screen: type, price, price label, duration, fee, cut, amount and options. On the fee board: value on every tile, already formatted as a percent or as money to suit the setting.
What they return when they cannot answer
A per player key with no player is left unresolved, so PlaceholderAPI leaves the text as it is.
Slots for an offline player gives the configured free amount, since permissions are not loaded.
An unknown key is left unresolved rather than answering 0, so a typo is visible instead of looking like an answer.