Installation
Install OptimalAuctions and OptimalLibrary on your Paper or Folia server.
Requirements
Section titled “Requirements”- OptimalLibrary - required. It is a separate, free plugin that provides the shared runtime (text, menus, storage, economy hooks and more). OptimalAuctions will not enable without it.
- Paper or Folia (or a Paper fork). Spigot is not supported.
- Minecraft 1.21.11, 26.1.1, 26.1.2, 26.2 or 26.3.
- Java 21 for 1.21.11, Java 25 for the 26.x versions. Check with
java -version. - At least one economy for the currencies you keep enabled (see below).
Soft dependencies (all optional, install the ones your currencies use):
- Vault plus an economy plugin (EssentialsX, OptimalEssentials, CMI, …) - for
Type: VAULTcurrencies. The shippedmoneycurrency uses it. - PlayerPoints - for
Type: PLAYER_POINTScurrencies. - RivalCredits - for
Type: RIVAL_CREDITScurrencies. - OptimalGens - for
OPTIMALGENS_<currency>currencies. The shippedtokensandgemscurrencies use it. - OptimalMobcoins - for the
OPTIMALMOBCOINS_MOBCOINScurrency. - PlaceholderAPI - registers the
%optimalauctions_...%placeholders and resolves%...%from other plugins inside messages and menus.
- Confirm
java -versionmatches your server version (see above). - Stop the server.
- Drop
OptimalLibrary.jarandOptimalAuctions.jarintoplugins/. - Add the economy plugins your currencies need, and (optionally)
PlaceholderAPI.jar. - Start the server. The plugin generates its files and prints a startup banner with the number of listings, currencies and categories loaded.
- Run
/plugins: bothOptimalLibraryandOptimalAuctionsshould be green. - Check the console for a line saying a currency is unavailable. That currency’s economy plugin is missing; listings in it cannot be created or bought until it is installed.
Generated files
Section titled “Generated files”plugins/OptimalAuctions/├─ config.yml # settings, listing lore, prompts and sounds├─ categories.yml # browse categories and their item rules├─ messages.yml # every message├─ currencies/│ ├─ gems.yml # OptimalGens gems│ ├─ money.yml # Vault money│ └─ tokens.yml # OptimalGens tokens├─ guis/│ ├─ main-menu.yml # the /ah board│ ├─ listings-menu.yml # the player's own active listings│ ├─ expired-menu.yml # the player's expired listings│ ├─ category-menu.yml # category picker and search button│ ├─ purchase-menu.yml # the buy screen│ ├─ history-menu.yml # /ahadmin history│ └─ removal-menu.yml # /ahadmin remove and /ahadmin open <player>└─ data/ └─ data.db # SQLite data (do not edit by hand)config.yml, messages.yml and the menu files use the shipped file as a base, so a key you remove
falls back to its default. Missing messages are written back into messages.yml on load. A menu file
you delete from guis/ is written back on the next start.
The currencies/ folder is only created when it does not exist. A currency file you delete stays
deleted, so you can remove the shipped currencies you don’t use.
Storage
Section titled “Storage”Everything lives in one database: SQLite at data/data.db by default, or MySQL when
Settings.Storage.Type is MYSQL (see config.yml).
auction_listingsholds every live listing (active and expired) and the sale history. Every partial purchase writes its own sale row, so a listing sold in five chunks produces five history entries. A live listing’s row is deleted once it is sold out, cancelled or collected.auction_payoutsholds seller payouts and refunds that could not be paid yet, per player and currency. They are paid out three seconds after the player joins, as long as that currency is available.- Live listings are loaded into memory at startup. Changes are written in the background as they happen, and pending writes are flushed when the server stops.
- Items are stored with their full data (names, lore, enchantments, components).
Continue to Selling & Buying, or read the Information overview first.
