> For the complete documentation index, see [llms.txt](https://daddy-studios.gitbook.io/daddy-studios-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://daddy-studios.gitbook.io/daddy-studios-docs/scripts/daddy-marketplace/configuration/auctions.md).

# Auctions

```lua
Config.Auction = {
    enabled = true,
    maxActiveAuctions      = 3,         -- per player
    minDurationMinutes     = 30,
    maxDurationMinutes     = 1440,      -- 24 hours
    defaultDurationMinutes = 60,
    minBidIncrement        = 100,
    minBidIncrementPercent = 5,
    maxBuyoutPrice  = 1000000,
    paymentMethod   = 'bank',
    bidPaymentHold  = true,
    allowCancelWithBids = false,
    antiSnipeEnabled       = true,
    antiSnipeMinutes       = 2,
    antiSnipeExtendMinutes = 2,
    checkIntervalSeconds   = 30,
}
```

Set `enabled = false` to hide auctions entirely.

## Bid increments

The next bid must be at least the current bid plus `minBidIncrement` **or** plus `minBidIncrementPercent`, **whichever is higher**.

With the defaults (100 / 5%): on a $1,000 bid the next one must be at least $1,050 (5% wins); on a $500 bid it must be at least $600 (the flat $100 wins). The flat amount keeps cheap auctions moving, the percentage keeps expensive ones from being nudged up a dollar at a time.

## Bid money hold

```lua
bidPaymentHold = true,   -- recommended
```

|                      | `true` (recommended)                     | `false`                                                            |
| -------------------- | ---------------------------------------- | ------------------------------------------------------------------ |
| When a bid is placed | The money is taken and held              | Nothing is taken                                                   |
| When outbid          | The held money is refunded automatically | —                                                                  |
| At the end           | The winner already paid                  | The winner is charged                                              |
| Winner cannot pay    | Cannot happen                            | The item goes back to the seller and the auction ends with no sale |

Leave this on. With it off, players can bid money they do not have, and an auction that "ended" can still collapse at settlement.

Held bid money is also refunded when an admin cancels the auction with `/marketplaceadmin auction <id>`.

## Buyout

Sellers can set a buyout price up to `maxBuyoutPrice`. A buyout ends the auction immediately: the buyer gets the item, the seller is paid, and the previous top bidder's held money is refunded. Exactly one of "buyout" and "timer ran out" can win — the auction row is claimed atomically before anything moves, so a buyout landing in the same second as the deadline cannot pay the seller twice.

## Anti-snipe

```lua
antiSnipeEnabled       = true,
antiSnipeMinutes       = 2,
antiSnipeExtendMinutes = 2,
```

A bid placed in the last `antiSnipeMinutes` of an auction pushes the end time forward by `antiSnipeExtendMinutes`. The new end time is written to the auction's `ends_at` column, so it is real, not a UI effect — it survives a restart and applies to the settlement job.

This stops "sniping", where a player waits until the last second so nobody can respond. With the extension, there is always time for a counter-bid.

## Cancelling

```lua
allowCancelWithBids = false,
```

Off by default: once an auction has a bid, the seller is committed. Turning it on lets sellers pull an auction that already has bids; the held bid money is refunded when they do. This is open to abuse — a seller who dislikes the price can simply cancel — so most servers leave it off.

## Settlement

```lua
checkIntervalSeconds = 30,
```

How often the server settles auctions whose time is up. An auction is claimed with a `settling` status before anything moves, so it cannot be settled twice even if the job overlaps with a buyout or a restart. Auctions that ended without a bid return the item to the seller with status `no_bids`.

Items that cannot be delivered (full inventory, player offline) go to the delivery depot.

## Next steps

* [Offers & Buy Orders](/daddy-studios-docs/scripts/daddy-marketplace/configuration/offers.md)
* [Featured Listings](/daddy-studios-docs/scripts/daddy-marketplace/configuration/featured.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://daddy-studios.gitbook.io/daddy-studios-docs/scripts/daddy-marketplace/configuration/auctions.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
