Skip to content

Auctions

Łukasz Domeradzki edited this page Nov 7, 2020 · 44 revisions

Auctions

Auctions module offers a chat game that can be started by any user using auction command. The actual syntax is:

auction <Type> <Copies> <StartingBid> <MinimumIncrement> <MaximumIncrement> <Timeout> <AuctionedItem>

Example: auction normal 1 1000 500 10000 0 The Witcher® 3: Wild Hunt

The Type of the auction must be specified as one of the available types from below (either as case-insensitive string, or a number). It affects how the auction will be organized.

Copies are specified as 8-bit unsigned integer. It affects how many people will be able to win/sell their game.

StartingBid is specified as 32-bit unsigned integer. This is the price the item will be announced with initially, and the minimum possible for winning/selling.

MinimumIncrement and MaximumIncrement are specified as 16-bit unsigned integers. They affect how high the bids can go during a single window.

Timeout is maximum amount of time defined in seconds during which the auction can be running, specified as 16-bit unsigned integer, with 0 specifying no timeout. When timeout is specified, the game will take a maximum of Timeout seconds, and will end (successfully, as if no more bids were done) when the time runs out. In addition to specifying timeout, it's possible to append a special character character at the end of it, which will modify the timeout behaviour. Exclamation mark ! will disable normal game progress and use timeout exclusively, while question mark ? will cause the timer to be extended to 10 seconds if the bid was done in the last 10 seconds timeout window, in order to prevent sniping and make it possible to counter-react to the last bid.

AuctionedItem is any user-specified string, can include special and whitespace characters, as well as platform-specific formatting.

The auction can be cancelled at any moment through cancel command sent by the creator of the auction, or appropriate moderators of the channel. In addition to that, the auction will be automatically cancelled if the total number of actions reaches 255. Action is interpreted as any kind of game progress, either executed by the user, or by the auctioneer.


Normal (0)

Normal auction is the situation where the user hosting the auction wants to sell his AuctionedItem to one of the other users. The auction starts with a minimum of StartingBid and maximum of MaximumIncrement added to it. After the first bid is done, every following bid must be between MinimumIncrement (inclusive) and MaximumIncrement (inclusive) added to the current value.

Users bid by posting a single message containing the bid amount, as an integer. A message that can't be parsed into an integer isn't considered as a bid, and will not be taken into account.

Normal game progress includes the auctioneer moving to the next stage every 15 seconds while no valid bid is done, GoingOnce, GoingTwice and Gone, in order. Creating a valid bid resets the stage back to Bidding.

Once auction is Gone, top bidders equal to Copies count will win the game for the real price of the lowest of their (latest) bids.


Reverse (1)

Reverse auction is the situation where the user hosting the auction wants to buy AuctionedItem from one of the other users. The auction starts with a minimum of StartingBid and goes up by a random value between MinimumIncrement (inclusive) and MaximumIncrement (inclusive). It's possible to set both to the same value in order to avoid random increment.

Users sell their AuctionedItem by posting a single "sold" message, case insensitive. Posting a "sold" message is equal to finishing an auction by selling the item for current bid in the auction. A message that can't be interpreted as "sold" will not be taken into account.

Normal game progress includes the auctioneer increasing the bid every 5 seconds until one of the users decide to sell the item, or the auction is cancelled (by the owner/moderator, or due to actions limit).

The auction ends when the users sell specified number of Copies. Afterwards, all users that managed to sell the item obtain the amount equal to the highest value that the item was sold for.

Clone this wiki locally