Skip to main content

Overview

Giveaways support a claim window so a winner has to actually accept the prize, not just be picked and forgotten. Start one with a command or from the dashboard. Members enter with the button (or a reaction), and when it ends Petto draws the winners. With a claim time, a winner who does not press Accept in time loses the prize and a new winner is drawn. Every message can be your own text or a saved embed.
The ended giveaway card for a Steam gift card with 87 entries, then the claim message and a ping to zoe_plays with the Accept and Deny buttons

In Discord: a giveaway ends and the winner has 10 minutes to claim the prize.

Under the giveaway card, now with 12 entries, Petto answers only to the member that they entered and that pressing the button again leaves

In Discord: a member presses Enter Giveaway.

zoe_plays thanks everyone and Petto writes that zoe_plays accepted their win for the Steam gift card

In Discord: the winner presses Accept in time.

Starting one

quick uses server defaults for everything else. entry_mode is button (default) or reaction. The prize can have several words without quotes: it takes everything after the number of winners, so the options after it go as flags (--channel #giveaways, --claim_time 5m, --preset boosters, --embed_template gw-card, --entry_mode reaction). The prize can have several words without quotes: it takes everything after the number of winners, so the options after it go as flags (--channel #giveaways, --claim_time 5m, --preset boosters, --embed_template gw-card, --entry_mode reaction).
kira types !giveaway quick 1h 1 Nitro; Petto posts the giveaway card with the Enter Giveaway button and answers that the giveaway started in #giveaways

In Discord: a giveaway with the server defaults.

kira types !giveaway start 1d 3 with the prize and the --channel, --claim_time and --preset flags; the card lists the extra entries of the boosters preset

In Discord: a giveaway with a claim time and a preset.

kira types !giveaway template monthly-nitro; Petto posts the card of the template and answers that the giveaway started from the template monthly-nitro

In Discord: a giveaway started from a template.

From the dashboard

In the dashboard, Giveaways โ†’ Running giveaways has a form to start one (prize, winners, duration, channel, claim time, entry method, bonus-entry preset and design), a button to End now and, for the giveaways that ended, Draw again. Each running giveaway has an Edit button to change the prize, the number of winners and a new end (counted from now); what you leave empty stays as it is. It uses the same engine as /giveaway, so the result is the same. You need to manage the server.
The Running giveaways page with three giveaways running, each with Open in Discord, Edit and End now, and three ended ones with Draw again

Dashboard โ†’ Community โ†’ Running Giveaways: the form to start one, the giveaways running now and the ones that ended.

The Start a giveaway form: prize, winners, duration, channel, claim time, entry method, bonus-entry preset and design, and the Start giveaway button

Dashboard โ†’ Community โ†’ Running Giveaways: the form to start a giveaway.

A running giveaway with Open in Discord, Edit and End now, and under it the Edit form: prize, winners, a new end counted from now and Save changes

Dashboard โ†’ Community โ†’ Running Giveaways: Edit, open on a running giveaway.

Managing one in progress

The prize can have several words and needs no quotes: it is everything between the message id and the numbers at the end. The last words that look like a duration (30d, 3d 4h) are the new end, and a number before it is the number of winners. --prize, --winners and --duration still work.
liam types !giveaway reroll with the message id; Petto announces the new winner with 10 minutes to claim and the Accept and Deny buttons, and answers New winner(s): zoe_plays

In Discord: a new winner for an ended giveaway.

The card of the giveaway now ended with Winner(s): zoe_plays; chu typed !giveaway end, Petto congratulates zoe_plays and answers Giveaway ended

In Discord: a giveaway ended early.

The card now with the new prize, 3 lucky winners and the new end; kira typed !giveaway edit with the message id, the prize, 3 and 3d, and Petto answers Giveaway updated

In Discord: a giveaway changed: prize, winners and end.

Server defaults

liam types !giveaway embed gw-card and Petto confirms the new default design

In Discord: a saved embed as the default design.

liam types !giveaway reaction ๐ŸŽ‰ and Petto confirms it

In Discord: the emoji of reaction giveaways.

liam types !giveaway entry-mode reaction and Petto confirms it

In Discord: reaction as the default entry mode.

!giveawayconfig shows these defaults and every giveaway command in one card. !giveawayconfig shows these defaults and every giveaway command in one card.
liam types !giveawayconfig: the embed template, the reaction and the entry mode, then the giveaway commands

In Discord: the card of the giveaways module.

Custom messages

Every stage has its own configurable message. They all take the giveaway variables ({gw.*}) and the usual ones; {user} is the winner:
liam types !giveaway winner-message with a text that uses the giveaway variables and Petto confirms it

In Discord: the message of the winner.

liam types !giveaway no-entries-message with a text that uses the giveaway variables and Petto confirms it

In Discord: the message when nobody entered.

liam types !giveaway deny-message with a text that uses the giveaway variables and Petto confirms it

In Discord: the message when a winner denies.

liam types !giveaway claim-time-message with a text that uses the giveaway variables and Petto confirms it

In Discord: the claim prompt.

liam types !giveaway claim-time-over-message with a text that uses the giveaway variables and Petto confirms it

In Discord: the message when the claim time runs out.

liam types !giveaway accept-message with a text that uses the giveaway variables and Petto confirms it

In Discord: the message when a winner accepts.

Each message can also be a saved embed instead of text:
Example
liam types !giveaway message-template winner gw-winner and Petto confirms the saved embed of the winner message

In Discord: a saved embed for the winner message.

message is winner, deny, claim_time, claim_time_over, accept or no_entries, and none goes back to the text. See Saved Embeds Everywhere. deny-message fires when a winner denies their prize, no-entries-message fires when the giveaway ends with nobody entered, distinct from each other.
The Giveaway settings page: Button as entry method, the reaction emoji, the default design and the winner, no-entries, denied, claim prompt, claim expired and claim accepted messages, each with a preview in Discord

Dashboard โ†’ Community โ†’ Giveaways: the entry method, the default design and each message with its preview.

Examples

Command
Result
The ended card with Winner(s): zoe_plays, then Petto: Congrats zoe_plays, you won the prize, DM chu to get it

In Discord: the winner message of the example, when a giveaway ends.

All of them, with {gw.duration}, {gw.reaction} and {gw.entry_mode}, are in Variables.

Templates

Save a full giveaway configuration to relaunch later with !giveaway template.
kira types !giveawaytemplate create monthly-nitro Nitro 1 3d #giveaways and Petto confirms the saved template

In Discord: a template saved.

kira types !giveawaytemplate edit monthly-nitro --winners 2 --claim_time 10m and Petto confirms it

In Discord: a template changed with flags.

kira types !giveawaytemplate remove monthly-nitro and Petto confirms it

In Discord: a template deleted.

kira types !giveawaytemplate list: monthly-nitro with its prize and 1 winner

In Discord: the saved templates.

liam types !giveawaytemplateconfig: 1 template, monthly-nitro, and the template commands

In Discord: the card of the templates.

Bonus-Entry Presets

Give certain roles extra entries automatically.