
Horizons Auction House
Modern auction house system with bidding, buy-it-now listings, and a powerful GUI.

HorizonsAuctionHouse
A modern, feature-rich auction house plugin for Paper, Purpur, and Spigot servers. HorizonsAuctionHouse provides a polished GUI-based marketplace where players can buy, sell, and bid on items with full multi-currency support. Whether you run a small community server or a large network, this plugin scales to meet your needs with SQLite or MySQL storage, comprehensive admin tools, and deep integration with popular custom item plugins.
Key Highlights
- Clean, intuitive GUI-based auction house interface
- Buy-It-Now (BIN) listings and competitive bid/auction system
- Support for five currency backends: Vault, PlayerPoints, CoinsEngine, XP, and item-based currencies
- SQLite and MySQL database support out of the box
- Deep integration with 8+ custom item plugins
- Fully configurable taxes, cooldowns, listing limits, and durations
- Multilingual support (English and German included)
Features
Modern GUI Interface
HorizonsAuctionHouse uses a fully interactive inventory-based GUI. Players can browse all active listings, search for specific items, view their own listings, check expired items, and review transaction history -- all without typing a single command beyond /ah. Navigation is intuitive with clickable page controls, category filters, and sorting options.
Buy-It-Now (BIN) Listings
Players can list items at a fixed price for immediate purchase. BIN listing durations are configurable between 1 and 14 days, giving sellers flexibility in how long their items remain on the market. When a buyer purchases a BIN listing, the transaction completes instantly and both parties are notified.
Bid / Auction System
For items where sellers want to maximize value, the bid system allows competitive auctions. Bidding durations range from 1 to 7 days. Key features of the auction system include:
- Starting bid price set by the seller
- Incremental bidding with minimum bid steps
- Bid extension mechanic -- when a bid is placed near the end of an auction, the timer automatically extends, preventing last-second sniping and ensuring fair competition
- Notifications to outbid players so they can respond
Multi-Currency Economy Support
HorizonsAuctionHouse is not limited to a single economy plugin. It supports five different currency backends, and you can configure which one your server uses:
| Currency Backend | Description |
|---|---|
| Vault | Standard Vault economy integration -- works with any Vault-compatible economy plugin |
| PlayerPoints | Uses PlayerPoints as the currency |
| CoinsEngine | Integrates with CoinsEngine for custom currency systems |
| XP-based | Uses player experience points as currency |
| Item-based | Uses a specific item (e.g., diamonds, gold ingots) as currency |
Tax System
A configurable tax system takes a percentage cut from every sale. Tax features include:
- Global tax rate configurable in the settings
- Permission-based tax reductions -- reward donators or specific ranks with lower tax rates using
horizonsah.tax.<percent>permissions - Full tax bypass for staff or designated players via
horizonsah.bypass.tax - Tax revenue can be tracked and managed by server administrators
Item Blacklist
Server administrators have full control over what can and cannot be listed:
- Material blacklist -- block specific item types from being listed
- Lore keyword blacklist -- prevent items containing certain lore text from being sold (useful for blocking soulbound items, admin items, or special event rewards)
- Bypass permission available for trusted staff via
horizonsah.bypass.blacklist
Listing Controls
Fine-tune the marketplace experience with configurable limits:
- Maximum listings per player -- prevent market flooding with per-player listing caps
- Permission-based listing overrides -- grant higher limits to specific ranks using
horizonsah.limit.<number> - Sell cooldown -- configurable delay between listings to prevent spam
- Minimum and maximum price enforcement -- keep the economy healthy with price boundaries
- Permission-based duration control -- allow certain ranks longer listing durations via
horizonsah.duration.<days>
Expired Item Management
Items that don't sell aren't lost. HorizonsAuctionHouse tracks all expired listings and provides multiple ways to reclaim them:
- Expired items GUI accessible via
/ah expired - Auto-claim on join -- when a player logs in, any expired items are automatically returned
- Players receive clear notifications about expired listings
Server-Wide Broadcasts
When high-value sales occur, the entire server can be notified. The broadcast threshold is configurable, allowing you to highlight only significant transactions and create excitement around the marketplace.
Transaction Logging
Every transaction is recorded for accountability and auditing:
- File-based logging with timestamps, buyer, seller, item, and price
- Useful for resolving disputes and monitoring economic activity
- Logs can be reviewed by administrators at any time
Commands
Player Commands
| Command | Aliases | Description |
|---|---|---|
/ah | /auctionhouse, /auktion | Open the auction house GUI |
/ah sell <price> [days] | -- | List the item in your hand as a BIN listing |
/ah bid <starting_price> <days> [increment] | -- | List the item in your hand as a bid/auction |
/ah search <query> | -- | Search for items by name or keyword |
/ah sold | -- | View your completed sales |
/ah expired | -- | View and reclaim your expired listings |
/ah listings | -- | View your current active listings |
/ah history | -- | View your full transaction history |
Admin Commands
| Command | Aliases | Description |
|---|---|---|
/ahadmin reload | /auktionadmin reload | Reload the plugin configuration |
/ahadmin clear | -- | Clear all active listings from the auction house |
/ahadmin remove <id> | -- | Remove a specific listing by ID |
/ahadmin expire <id> | -- | Force-expire a specific listing |
/ahadmin stats | -- | View auction house statistics |
/ahadmin ban <player> [duration] [reason] | -- | Ban a player from using the auction house |
/ahadmin unban <player> | -- | Unban a player from the auction house |
/ahadmin banlist | View all currently banned players |
Permissions
Player Permissions
| Permission | Description |
|---|---|
horizonsah.use | Access the auction house GUI |
horizonsah.sell | List items for sale |
Dynamic Permissions
| Permission | Description |
|---|---|
horizonsah.limit.<number> | Set the maximum number of active listings for a player (e.g., horizonsah.limit.10) |
horizonsah.tax.<percent> | Set a custom tax rate for a player (e.g., horizonsah.tax.5 for 5% tax) |
horizonsah.duration.<days> | Set the maximum listing duration in days for a player |
Bypass Permissions
| Permission | Description |
|---|---|
horizonsah.bypass.tax | Bypass the sales tax entirely |
horizonsah.bypass.maxlistings | Bypass the maximum listings limit |
horizonsah.bypass.cooldown | Bypass the sell cooldown timer |
horizonsah.bypass.minprice | Bypass the minimum price requirement |
horizonsah.bypass.maxprice | Bypass the maximum price cap |
horizonsah.bypass.blacklist | Bypass the item and lore blacklist restrictions |
Admin Permissions
| Permission | Description |
|---|---|
horizonsah.admin.* | Grants access to all admin commands |
Configuration
HorizonsAuctionHouse is highly configurable. Key configuration options include:
- Currency type -- choose between Vault, PlayerPoints, CoinsEngine, XP, or item-based currency
- Listing durations -- set minimum and maximum durations for both BIN and bid listings
- Tax rate -- set the global tax percentage applied to all sales
- Price limits -- define minimum and maximum listing prices
- Sell cooldown -- time a player must wait between creating new listings
- Max listings -- default maximum number of active listings per player
- Bid extension time -- how much time is added when a bid is placed near the auction end
- Broadcast threshold -- minimum sale price to trigger a server-wide announcement
- Item blacklist -- list of blocked materials
- Lore blacklist -- list of blocked lore keywords
- Database settings -- choose between SQLite (default, zero-config) and MySQL (for networks or large servers)
- Language -- select English or German, or customize all messages
All configuration files are generated on first startup with sensible defaults and inline comments explaining each option.
Database Support
SQLite (Default)
SQLite is the default storage backend and requires no additional setup. The database file is stored in the plugin's data folder. This is the recommended option for single-server setups.
MySQL
For server networks or high-traffic servers, MySQL support is available with full connection pooling. Configure your MySQL host, port, database name, username, and password in the config file. MySQL is recommended when multiple servers need to share auction house data.
Compatibility
Server Requirements
| Requirement | Version |
|---|---|
| Server Software | Paper, Purpur, or Spigot 1.21 or newer |
| Java | Java 21 or newer |
Supported Economy Plugins
- Vault (and any Vault-compatible economy provider)
- PlayerPoints
- CoinsEngine
Supported Custom Item Plugins
HorizonsAuctionHouse fully supports listing and displaying items from the following custom item plugins:
| Plugin | Support |
|---|---|
| ItemsAdder | Full support |
| Oraxen | Full support |
| Nexo | Full support |
| HeadDatabase | Full support |
| MMOItems | Full support |
| Slimefun | Full support |
| ExecutableItems | Full support |
| EcoItems | Full support |
Custom items from these plugins are correctly identified, displayed, and preserved throughout the entire listing and purchasing process.
Optional Integrations
| Plugin | Integration |
|---|---|
| PlaceholderAPI | Exposes auction house placeholders for use in scoreboards, holograms, tab lists, and more |
| bStats | Anonymous usage metrics to help with plugin development |
Getting Started
Installation
- Download the latest version of HorizonsAuctionHouse
- Place the
.jarfile in your server'spluginsfolder - Ensure you have Paper, Purpur, or Spigot 1.21+ and Java 21 installed
- If using Vault currency, make sure Vault and an economy provider are installed
- Start or restart your server
- The default configuration and language files will be generated automatically
Quick Setup
- Choose your currency -- open
config.ymland set thecurrency-typeto your preferred backend (Vault, PlayerPoints, CoinsEngine, XP, or Item) - Set your tax rate -- adjust the
tax-ratevalue to your desired percentage (e.g.,10for 10%) - Configure listing limits -- set
max-listingsfor the default cap, then use permissions for rank-based overrides - Review the blacklist -- add any items or lore keywords you want to block from the marketplace
- Reload -- run
/ahadmin reloadto apply your changes - Grant permissions -- give your players
horizonsah.useandhorizonsah.sellto get started
Customizing Messages
All player-facing messages are fully customizable. Language files are located in the plugin's lang folder. You can edit existing translations or create your own. The plugin ships with complete English and German translations.
PlaceholderAPI
HorizonsAuctionHouse provides the following placeholders (requires PlaceholderAPI):
| Placeholder | Description |
|---|---|
%horizonsah_total_listings% | Total number of active listings on the auction house |
%horizonsah_player_listings% | Number of active listings owned by the player |
%horizonsah_player_sold% | Number of items sold by the player |
%horizonsah_player_expired% | Number of expired listings owned by the player |
Frequently Asked Questions
Can I use multiple currencies at once? The plugin uses one configured currency type at a time. Choose the one that best fits your server's economy.
What happens when a player is banned from the auction house?
Banned players cannot create new listings or interact with the auction house GUI. Their existing listings remain active until they expire or are purchased. Administrators can manage bans with /ahadmin ban, /ahadmin unban, and /ahadmin banlist.
Are items safe if the server crashes? Yes. All listings, bids, and expired items are persisted to the database. On server restart, everything is restored to its previous state. Expired items are automatically returned to players when they next log in.
Can I migrate from SQLite to MySQL? The plugin supports both storage backends. Consult the configuration file for details on switching between them.
Does this plugin support Folia? HorizonsAuctionHouse is designed for Paper, Purpur, and Spigot 1.21+. Folia compatibility is not currently guaranteed.
Support
If you encounter any issues, have feature requests, or need help with configuration:
- Issue Tracker -- report bugs and request features on the project's issue tracker
- Discord -- join our community Discord server for live support and discussion
- Documentation -- check the plugin's wiki for detailed guides and examples
We appreciate bug reports with clear reproduction steps, server version information, and relevant log output. Please include your Paper version, Java version, and a list of other plugins when reporting issues.
HorizonsAuctionHouse is developed and maintained with a focus on performance, stability, and a polished player experience. Thank you for choosing HorizonsAuctionHouse for your server's marketplace.
