AUCTION BOT

AuctionScript

Build your own kind of listing — a Dutch auction, a raffle with a twist, a standing trade — right from your server's dashboard. Nothing to install, and no programming experience needed.

Questions

What the seller fills in when they create one. These turn into the options on the Discord command for you.

Memory

Numbers your listing keeps track of while it runs — the current price of a Dutch auction, for example.

Reactions

What should happen when something occurs — the listing starts, a timer goes off, someone presses a button.

Looks

What members see in the listing message — the price, the details, the buttons.

Auction Bot handles everything else — taking and paying out money, your server's fees, permissions, timing that survives restarts, posting results, and keeping the activity log — exactly as it does for the built-in listing types. Your script only makes the decisions.

A complete example

A Dutch auction — the price starts high and drops on a timer until someone buys — in about 20 lines:

listing "dutch-auction" {
  family: auction
  name: "Dutch Auction"

  ask start-price: money    "Price the auction starts at"
  ask floor-price: money    "Lowest price the auction can reach"
  ask drop-amount: money    "How much the price drops each time"
  ask drop-every:  duration "How often the price drops"  (at least 30s)

  remember price = start-price

  when started {
    run price-drop every drop-every
  }
  timer price-drop {
    set price = max(floor-price, price - drop-amount)
    if price == floor-price then stop timer price-drop
  }
  when buy pressed {
    require user can afford price otherwise "You can't afford {price}."
    stop all timers
    sell to user for price
  }

  show {
    price is price was start-price
    button "Buy Now" does buy (look success)
  }
}

Where to write one

In the dashboard, open your server and choose Script Studio → New script. You'll start in Blocks mode: a drag-and-drop builder with a live preview of the message and a panel that tells you what's still missing. Prefer typing? Switch to Text whenever you like. Either way, we check your script as you go and explain any mistakes in plain English, right next to your work.

Choose Test Drive to try it on a pretend listing with a clock you control — nothing touches your real server, balances, or channels. Choose Publish when you're happy, and your members get a real /<type> add <name> command alongside the built-in ones.

The full guide and language reference

This page is a taster, not the whole language. For the full walkthrough — another worked example, troubleshooting, and every keyword — read the Creator Guide and the Language Reference on GitHub. Need something AuctionScript deliberately can't do, like loops or reaching out to the internet? Use the Plugin SDK instead.

Something went wrong on this page. Reload the page 🗙