Skip to content

Auctions and offers

Guide for listing types that use a bank deposit. Who may bid is set per listing (bidAccess).

1. Choose listing type

When creating or listing a property, set saleType:

TypePlayer actionSettlement
normalBuy nowImmediate purchase
offerPlace offerOwner/staff accepts one offer
auctionPlace bidHighest bid wins when timer ends

bidAccess:

ValueWho may bid / offer
anyoneAny player who can open the market
realtor_requiredHousing staff only

2. List an offer property

  1. Open realtor tablet (or owner tools if public) → property profile.
  2. List for sale with type offer and a start price.
  3. Optional: set depositPercent / bidAccess (else config defaults).
  4. Confirm the card appears under market For Sale.

3. Player — place an offer

  1. Open the listing → Place offer → enter amount.
  2. Deposit charged: amount * depositPercent from bank.
  3. Wait for accept / reject.

4. Owner / staff — accept or reject

  1. Open the listing (market or realtor profile).
  2. Accept an offer:
    1. Remaining balance charged to buyer (must be online).
    2. Ownership transferred; seller / commission paid.
    3. Other offer deposits refunded; listing cleared.
  3. Reject → that bidder’s deposit refunded only.

Export: PlaceOffer.

5. List an auction

  1. List with saleType = "auction".
  2. Set duration (hours) → server writes auctionEndsAt.
  3. Optional: minIncrement, depositPercent, bidAccess.
  4. Confirm it appears under market Auctions.

6. Player — place a bid

  1. Open Auctions → listing → Place bid.
  2. Amount must beat current high + minIncrement (or start price if none).
  3. Deposit charged; previous high bidder’s deposit refunded.

Export: PlaceAuctionBid.

7. Auction end (automatic)

  1. When auctionEndsAt is reached, the server settles:
    1. Winner pays remaining balance (deposit already held).
    2. Seller / commission paid; ownership transferred.
    3. Losing deposits refunded; listing cleared.
  2. If there are no bids → listing is removed.

Listing fields (reference)

lua
{
  startPrice = 150000,
  saleType = "normal" | "offer" | "auction",
  depositPercent = 0.1,
  bidAccess = "anyone" | "realtor_required",
  description = "Optional text",
  minIncrement = 1000,
  auctionEndsAt = unixSeconds,
  auctionStartedAt = unixSeconds,
}