EzAuction is a complete, GUI-driven auction house plugin for Paper, Spigot, Purpur, and Bukkit Minecraft servers. Players list items for timed sale, create reserve-balance buy orders, and compete in real-time live broadcast auctions – all through smooth, paginated menus backed by Vault economy, MySQL or YAML persistence, PlaceholderAPI support, and optional Discord webhook notifications.
Whether you run survival, skyblock, SMP, or factions, EzAuction handles your server economy: timed listings, offline-safe item returns, enchantment-aware search, live auction sessions with one-click bidding, and team-scoped auctions via TeamsAPI.
| Platforms | Paper, Spigot, Purpur, Bukkit 1.13 – 26.1.* |
| Java | 21+ |
| Storage | YAML (built-in) · MySQL |
| Languages | English · Dutch · Spanish · Chinese |
| Dependencies | Vault + any economy plugin |
Requires Vault and a compatible economy plugin such as EzEconomy to process currency.
ezauction.auction.live.sell can now queue items directly from the Live Auction browser (sell button in the GUI) or via /liveauction sell. On enqueue, a chat message confirms the queue position. /liveauction cancel removes the entry and refunds the deposit; a cancel button also appears in the GUI while the player has a queued entry. Admins with ezauction.auction.live.admin can force-cancel any active auction with /liveauction cancel <id>./bid command (alias /livebid) – Dedicated command for live auction interactions: place bids (/bid <amount>), view session status, and manage per-player countdown preferences. Bids can also be placed by clicking the suggestion in the live auction chat message./bid notify [on|off] and select display type with /bid notify display <types…>. Preferences persist across restarts in live-preferences.yml (or a MySQL table).ACTION_BAR, BOSS_BAR, TITLE, SCOREBOARD, or CHAT./bid <next-minimum>; hovering the item name shows enchantments, potion effects, and shulker box contents on hover.LiveAuctionStartedEvent (cancellable), LiveAuctionBidPlacedEvent (cancellable), LiveAuctionEndedEvent, LiveAuctionPlayerJoinedEvent, LiveAuctionPlayerLeftEvent./auction browser opens the Live Auction picker directly, without having to type /liveauction.!Live Auction Queue GUI: browse, join, and manage live auctions
!Clickable bid messages in chat with auto-fill bid link
!Shulker box contents shown on hover in live auction chat
/auction claim and the Claims button in the browser now open a 54-slot GUI showing each pending return item with its expiry date displayed in the item lore. A single Claim All button collects everything at once; a Back button returns to the auction browser.claim.expiry-days in auction.yml (default 7) to control how many days pending return items are held before expiry is shown in the Claim GUI./bid response automatically places the minimum bid.!Auction House browser: paginated, searchable listings with price overlays
!Buy orders GUI
!Listing editor with price and quantity controls
!Team Auction GUI
/auction claim recovery.AuctionListingLimitResolver service to scale slot caps with ranks, islands, or progression data.!EzShops price overlay in listing lore
%ezauction_*% placeholders into scoreboards, holograms, or chat to surface active listings, orders, limits, and pending returns.sharpness v, fortune 3, or minecraft:looting to find listings and buy orders carrying exact enchantment stacks - supports roman numerals, numeric levels, namespaced keys, and underscore/space variants.!Shulker box contents preview in the auction browser
discord.yml. No DiscordSRV or bot setup required./auctiondiscord webhook - changes take effect instantly without a restart./auctiondiscord webhook set url https://discord.com/api/webhooks/YOUR_ID/YOUR_TOKEN
/auctiondiscord webhook test - a test embed will appear in your channel immediately.# discord.yml - webhook section
webhook:
enabled: true
url: "https://discord.com/api/webhooks/123456789/YOURTOKEN"
username: "EzAuction"
use-embeds: true
events:
auction_start: true
auction_end: true
auction_bid: true
auction_cancel: true
For the full DiscordSRV integration guide and all options, see the Discord integration docs.
holograms:
enabled: true
update-interval-ticks: 100
search-radius: 2.5
height-offset: 1.75
max-holograms: 100
batch-update: true
require-permission: false # Set true to require a permission node
view-permission: ezauction.hologram.view # Permission node for viewing/interacting
proximity-limit: false # Set true to restrict by distance
proximity-distance: 32.0 # Max distance for interaction
EzAuction.jar, restart your Paper or Purpur server, and confirm Vault plus an economy plugin are active.plugins/EzAuction/auction.yml for pricing rules, durations, and GUI slots, adjust auction-storage.yml for YAML/MySQL persistence, and update auction-values.yml or messages/menu-interactions_*.yml as needed.ezauction.auction (and optional sell/order/history nodes) so they can browse and trade./auction history so buyers and sellers can audit their latest activity right from chat.!Live Auction Queue GUI: browse, join, or queue your own item
live-auctions.enabled on (and queue-enabled if you want a rolling lineup) so fresh sales are staged for broadcast and visible through /liveauction.ezauction.auction.live.sell. One click opens the sell menu pre-configured for the live queue – no command needed./liveauction cancel) dequeues the item and refunds the deposit.ezauction.auction.live.admin can stop an active auction immediately via /liveauction cancel <auction-id>. All bids are refunded and the item is returned to the seller./bid command – Bidders place bids with /bid <amount> or by clicking the clickable suggestion in chat. /bid notify and /bid notify display manage per-player countdown preferences.display-in-chat enabled to broadcast live listings every announcement-interval-ticks ticks with clickable bid links and hover previews on the item name.!Live auction chat messages with clickable bid links
!Item hover preview showing enchantments and shulker contents
| Command | Description | Permission |
|---|---|---|
/auction | Open the auction browser, claim items, and cancel listings. | ezauction.auction |
/auction sell <price> [duration] | List the held item instantly or open the sell GUI. | ezauction.auction.sell |
/auction order <price> <amount> [duration] | Create a buy order with reserved funds. | ezauction.auction.order |
/auction cancel [id] | Review and cancel active listings or buy orders. | ezauction.auction |
/auction history [buy/sell] | Show the latest transactions for each category. | ezauction.auction.history |
/auction live | Preview upcoming live auction broadcasts and refresh the queue. | ezauction.auction.live |
/liveauction | Open the live auction viewer. | ezauction.live |
/liveauction sell | Queue the held item for the live auction. | ezauction.auction.live.sell |
/liveauction cancel | Cancel your own queued live auction entry and receive a deposit refund. | ezauction.auction.live.sell |
/liveauction cancel <id> | Force-cancel an active live auction by ID. Refunds all bidders and returns the item. (Admin) | ezauction.auction.live.admin |
/bid [amount] | Place a bid or view session status in an active live auction. | ezauction.bid |
/auction claim | Withdraw stored return items. | ezauction.auction |
/auction search <query> | Open the auction browser filtered by item name, enchantment, or keyword. | ezauction.auction.search |
/auctionhologram <create/remove/list> [args] | Manage auction holograms: create, remove, or list in-world auction displays. | ezauction.hologram.manage |
Need more details? See the full documentation for all YAML, MySQL, menu, and advanced settings options.
| Requirement | Notes |
|---|---|
| Java 21+ | Matches the Paper 1.21+ API target used by EzAuction. |
| Paper / Spigot / Purpur 1.21+ | The plugin relies on Paper-compatible server APIs. |
| Vault | Provides the economy bridge for deposits, buy orders, and payouts. |
| Economy plugin (recommended: EzEconomy) | A Vault-compatible provider is required. EzEconomy is recommended for best compatibility and modern features. |
| Optional: EzShops | Unlock live value overlays via values.mode = ezshops-buy or ezshops-sell. |
| Optional: Custom limit resolver | Expose AuctionListingLimitResolver as a Bukkit service to scale listing caps. |
| Optional: Menu localisation overrides | Duplicate the bundled _nl, _es, or _zh menu files to keep translations in sync with your branding. |
storage.type between yaml and mysql; MySQL connections support SSL flags and pool tuning.menu.browser and menu.confirm control inventory sizes, filler panes, and navigation slots across all language variants.messages/menu-interactions_*.yml per locale.live-auctions.enabled, queue-enabled, display-in-chat, and announcement-interval-ticks to stage listings for announcements or GUI previews.values.format.AuctionListingLimitResolver service to scale listing caps with ranks, islands, or other progression data.%ezauction_*% placeholders for leaderboards, scoreboards, or Discord relays.storage.type to mysql and point each Paper/Purpur backend to the same credentials so listings, buy orders, and returns are stored centrally. The bundled MySQL driver implements DistributedAuctionListingStorage so inserts and claims remain atomic across servers.EzAuction.jar on every gameplay server behind your proxy, then copy a single set of tuned configs (auction.yml, auction-storage.yml, messages/*.yml) to keep menus, limits, and language consistent network-wide.table-prefix so it maintains a separate pool.menu-layout_*.yml and menu-interactions_*.yml bundles for English, Dutch, Spanish, and Chinese (_en, _nl, _es, _zh)._de) to introduce custom language support without touching code.package com.example.auctionlimits;
import com.skyblockexp.ezauction.api.AuctionListingLimitResolver;
import org.bukkit.Bukkit;
import org.bukkit.plugin.ServicePriority;
import org.bukkit.plugin.java.JavaPlugin;
public final class AuctionLimitPlugin extends JavaPlugin {
@Override
public void onEnable() {
saveDefaultConfig();
AuctionListingLimitResolver resolver = (sellerId, baseLimit) -> {
int bonus = getConfig().getInt("extra-slots." + sellerId.toString(), 0);
return Math.max(0, baseLimit + bonus);
};
Bukkit.getServicesManager().register(
AuctionListingLimitResolver.class,
resolver,
this,
ServicePriority.Normal
);
}
@Override
public void onDisable() {
Bukkit.getServicesManager().unregisterAll(this);
}
}
name: AuctionLimitPlugin
version: 1.0.0
main: com.example.auctionlimits.AuctionLimitPlugin
loadbefore: [EzAuction]
# plugins/AuctionLimitPlugin/config.yml
extra-slots:
123e4567-e89b-12d3-a456-426614174000: 2
2a2f4982-0c7a-4f13-86a1-4f85c4a94cf7: 4
This companion plugin registers before EzAuction enables and adds any configured bonus slots per player UUID on top of EzAuction's base limit. Update the UUID keys or compute the bonus however you like to reflect your network's progression rules.
storage:
type: yaml # or mysql
mysql:
host: localhost
port: 3306
database: skyblock
username: root
password: secret
use-ssl: true
table-prefix: ezauction_
pool:
maximum-pool-size: 10
minimum-idle: 2
connection-timeout-millis: 10000
idle-timeout-millis: 600000
max-lifetime-millis: 1800000
menu:
browser:
title: "&2Auction House &7({page}/{total_pages})"
size: 54
filler:
material: GRAY_STAINED_GLASS_PANE
display-name: "&8 "
navigation:
previous-slot: 45
close-slot: 49
next-slot: 53
empty-listing-slot: 22
confirm:
title: "&2Confirm Purchase"
size: 27
filler:
material: GRAY_STAINED_GLASS_PANE
display-name: "&8 "
confirm-slot: 11
listing-slot: 13
cancel-slot: 15
listings:
default-duration-hours: 24
max-duration-hours: 72
minimum-price: 10.0
listing-deposit-percent: 5.0
max-listings-per-player: 3
live-auctions:
enabled: false
queue-enabled: true
display-in-chat: true
announcement-interval-ticks: 200
values:
enabled: false
format: "&7Value: &6{value}"
materials:
diamond: 2500.0
type: yaml # or mysql
mysql:
host: localhost
port: 3306
database: skyblock
username: root
password: secret
use-ssl: true
table-prefix: ezauction_
pool:
maximum-pool-size: 10
minimum-idle: 2
connection-timeout-millis: 10000
idle-timeout-millis: 600000
max-lifetime-millis: 1800000
enabled: false
mode: configured # or ezshops-buy / ezshops-sell
format: "&7Value: &6{value}"
materials:
diamond: 2500.0
Ready to add an auction house to your Minecraft server?
Deploy EzAuction today - a polished, GUI-driven auction house plugin for Paper, Spigot, Purpur, and Bukkit. Download, drop in the jar, configure Vault, and your players are trading in minutes.

Menu-first marketplace with listings, buy orders, and async safety nets