AuctionPro

High-performance auction plugin with cross-server sync

Download AuctionPro
Get the latest version for your Minecraft server from BuiltByBit.

AuctionPro is a high-performance auction house plugin with transaction history, claim inbox, and cross-server sync across regions.

Requirements

  • Paper / Spigot / Purpur / Folia 1.19+
  • Java 17+
  • Vault + an economy plugin

Commands

CommandDescriptionPermission
/apOpen the auction house browse GUI
/ap sell <price>List the item in your hand. Supports 10k, 1.5m shorthandsauctionpro.sell
/ap historyView your transaction history GUIauctionpro.history
/ap listingsView and manage your active listingsauctionpro.listings
/ap claimClaim items from expired listings or full-inventory purchasesauctionpro.claim
/ap reloadReload all config filesauctionpro.admin
/ap clearhistory <player>Clear a player's transaction historyauctionpro.admin
/ap clearlistings <player>Remove all listings from a player and return itemsauctionpro.admin
/ap clearall <player>Clear both listings and history for a playerauctionpro.admin
/ap bypass <player>Force-unlock a player stuck in a transaction lockauctionpro.emergency.bypass

Permissions

PermissionDescriptionDefault
auctionpro.sellList items on the auction housetrue
auctionpro.historyView own transaction historytrue
auctionpro.listingsView and manage own active listingstrue
auctionpro.claimClaim items from the claim inboxtrue
auctionpro.sell.unlimitedBypass the max listings per player limitfalse
auctionpro.adminAccess all admin commandsop
auctionpro.emergency.bypassForce-unlock stuck transaction locks via /ap bypassop
auctionpro.limit.1auctionpro.limit.54Override max listings to the given number. Highest value wins. Example: auctionpro.limit.20false

Cross-Server Sync

Sync shares auction listings across multiple servers in real-time using a shared MySQL database. No proxy or Velocity required. Supports unlimited servers and any number of regions.

Requirements

  • storage.type must be MYSQL on all syncing servers
  • All servers in the same region must point to the same MySQL host and database

Setup

Step 1 — Switch all servers to MySQL

On every server that will sync, set the storage type to MySQL and point them all to the same database:

storage:
  type: MYSQL
  mysql:
    host: your-db-host
    port: 3306
    database: auctionpro_eu
    username: root
    password: ""

Step 2 — Add the sync block to each server's config.yml

Each server needs its own unique server-id. The region must match across servers that should share listings:

sync:
  enabled: true
  region: "eu"
  server-id: "survival-eu"
  poll-interval-ticks: 60

Step 3 — Assign regions

Servers with the same region share listings. Different regions are fully isolated.

RegionServer IDs
eusurvival-eu, skyblock-eu, prison-eu
assurvival-as, skyblock-as, minigames-as
ocsurvival-oc, creative-oc

You can use any region name you like — eu, as, oc, us, na, or anything else.

Step 4 — Restart all servers

The auction_sync_events table is created automatically on first boot. No manual SQL needed.

Adding more servers later

Deploy the plugin on the new server, point it to the same MySQL database, set the same region and a new unique server-id, then start it. No changes are needed on existing servers.

Sync config reference

KeyDescription
sync.enabledEnable or disable sync. Requires MySQL storage.
sync.regionGroup tag. Servers with the same value share listings. Any lowercase string: eu, as, oc, us, etc.
sync.server-idUnique label for this server. Must be different on every machine. Used to skip self-published events.
sync.poll-interval-ticksHow often to check for updates. 60 ticks = 3 seconds. Minimum: 20 (1 second). Lower = faster sync, more DB queries.