Plugin SDK
Add your own kind of listing, or plug in your own way of tracking balances. You never have to change Auction Bot itself, and what you build behaves just like the built-in options.
Custom listing type
Write an IListingTypeContributor. You describe the details a seller has to
fill in — reusing the same CommonParameters the built-in types use — and
Auction Bot builds the slash command, the API request, and the dashboard form for you.
Your listing runs alongside the built-in ones, with timers that survive restarts
(ctx.Scheduler) and opt-in handling of payment and fees. For what members
see, you return a ListingView and Auction Bot draws it.
Custom economy provider
Write an IEconomyProvider to keep balances and transfers wherever you like —
your own wallet service, an external ledger, whatever fits. Auction Bot calls it exactly
as it calls the built-in one, so nothing else has to change.
Building one
Start from the /create-custom-listing-type skill, or copy the Dutch auction sample —
a complete, working listing type built only from the public SDK, with no changes to Auction Bot
itself.
Your project only ever references AuctionBot.Plugin.Abstractions. It is kept
deliberately small — no database, engine, or Discord libraries — so your plugin never has to know
how Auction Bot works inside.
Installing a plugin
If you run your own copy of Auction Bot, publish the plugin project with
dotnet publish and copy the output folder into the plugins folder your copy is set up
to read. It is picked up, checked for compatibility, and loaded the next time Auction Bot starts —
nothing in Auction Bot itself has to change. To add a plugin to Auction Bot itself instead, open a
pull request that adds a ProjectReference and an AddPlugins(...) call.
Either way, the plugin shows up in this directory as soon as it is running.
Getting listed
If you run your own copy of Auction Bot, your plugin appears in its directory as soon as it loads. To have it listed on someone else's, sign in with Discord on the directory page and send it in for review. Whoever runs that copy decides whether to list it — sending it in doesn't publish it on its own.
The full technical reference
This page is an overview. For the complete details — every interface, the capability flags, the presentation rules, and how compatibility and review work — read the Plugin SDK reference on GitHub, along with the sample plugins .