Giveaways

Run giveaways your members can trust, with one press to enter and winners picked fairly.

Giveaways lets your bot run giveaways in your server. Your bot posts the giveaway, members press Enter to join, and when the time is up the bot picks the winners at random and pings them. The post keeps its entry count and end time up to date, and nothing is lost when your bot restarts. Giveaways is free for every bot.

A giveaway post for Discord Nitro (1 month) hosted by Tom, with when it ends, 1 entry and the Enter, Leave and Entrants buttons, and the role ping under it

What your members will see

Before you start

You need:

  • Your bot in your Discord server. See Invite Your Bot if it isn't yet.
  • A channel for giveaways, like #giveaways.
  • In that channel, your bot needs View Channel, Send Messages and Embed Links.
  • To give winners a role, your bot's own role above that role, with Manage Roles turned on.

Set up giveaways

  1. 1

    Turn on Giveaways

    Open Giveaways in your bot's dashboard and press Enable at the top right.

    The top of the Giveaways page with Enabled, the server menu, Reset to Default and Docs marked
    • A Enable turns Giveaways on. It adds the /giveaway commands, the End giveaway and Reroll giveaway right click commands, and the events Giveaways needs.
    • B The server you're setting up. The channel, the hosts and the entry rules belong to one server, so pick the server first. A setting this server has its own value for is tagged with the server's name and icon.
    • C Reset to Default puts every setting back to how a new Giveaways starts. The giveaway channel stays.
    • D Docs opens this page.
  2. 2

    Pick the channel and the hosts

    On the Post tab, pick the channel giveaways are posted in. Then pick the roles that can host giveaways, if anyone other than members with Manage Server should. See Where giveaways go below.

  3. 3

    Save

    A bar pops up at the bottom of the page. Press Save Changes.

    The Unsaved changes bar with Save Changes marked
  4. 4

    Start your first giveaway

    Run /giveaway start in your server, or press Start a giveaway on the Post tab. To try it out, start a short one and cancel it with /giveaway cancel.

    The setup strip with what to do next, the Setup guide link and the steps marked
    • A What to do next. Once everything is done, it says Giveaways are ready.
    • B The steps, ticked off as you do them. Press one to go to it.

The tabs

Everything else is on six tabs. On the first four, the preview on the right shows what members see in Discord.

The six tabs: Post, Entering, Winners, Prizes, Schedule, and Giveaways and stats
  • A Post: where giveaways go, who hosts them, the post and its buttons.
  • B Entering: who can enter, bonus entries and the replies members get.
  • C Winners: the draw, the winners' messages, a winner role and DMs.
  • D Prizes: a claim button, a time to claim and prize codes.
  • E Schedule: saved giveaways, and giveaways that start again and again.
  • F Giveaways and stats: the giveaways running now, the ones that ended, and totals.
The preview beside the Post tab: a Discord Nitro giveaway post hosted by Vez, and the private You're in reply Tom gets after pressing Enter

The preview beside the Post tab, with sample details

Post

Start a giveaway

Press Start a giveaway on the Post tab to start one from the dashboard. It's the same as /giveaway start in Discord.

The Start a giveaway window with the prize, the description, the channel, how long it runs, the winners, the preview and Start the giveaway marked
  • A Prize: what the winners get.
  • B Description: a line under the prize. Leave it empty for the post's own text.
  • C Posted in: the channel. It starts on your giveaway channel.
  • D Runs for and how many winners: from 1 minute to 90 days, and up to 50 winners.
  • E How the post will look.
  • F Start the giveaway posts it straight away.

Save your bot first: starting from the page runs the saved version of your settings.

Where giveaways go

Where giveaways are posted and Who can host giveaways, with the channel and the host roles marked
  • A Giveaway channel: where /giveaway start posts when the host doesn't pick a channel.

Who can host

  • B Host roles: members with one of these roles can start, end, reroll, edit, pause and cancel giveaways. Members with Manage Server always can. Leave it empty to keep it to Manage Server.

The giveaway post

The post has three messages, one for each stage, all on the same post. Each has its own card.

The When a giveaway is running card, with the message, Edit message and the variables marked
  • A Message: a box for each text part of the message, like the heading, the details and the footer.
  • B Edit message opens the Message Builder, for pictures, separators and the layout.
  • C The variables this message fills in. Press one to copy it.

The post's three messages are the same in every server.

Message When it's shown
When a giveaway is running The post members enter from. The bot keeps its entry count and end time up to date
When a giveaway ends The same post once the winners are picked. Only the Entrants button stays
When a giveaway is cancelled The same post when a host cancels it. Nobody wins, and the buttons go
The Message Builder open on the running giveaway post, with its parts on the left and the post in the middle

Edit message opens the Message Builder

The bot adds the buttons under the post itself, so you don't add them in the Message Builder.

The buttons

Buttons on the post and When a giveaway starts, with the Enter button, its emoji, the Leave button, the Entrants switch, the ping role and the log channel marked
  • A Enter button: the words on the button members press to join.
  • B Its emoji: press Change to pick another. Leave it empty for none.
  • C Leave button: members press it to drop out.
  • D Show an Entrants button: lists the first 20 who entered, privately, to whoever presses it. Entrants button is the words on it. Off, nobody can see who entered.

The buttons are the same in every server.

When a giveaway starts

  • E Ping this role: pinged when a giveaway starts. Only this role is pinged. Leave it empty to ping nobody.
  • F Log channel: every giveaway's start, end and reroll is written here. Leave it empty for no log.

The log

Log line when a giveaway starts, with the message, Edit message and the variables marked
  • A Log line when a giveaway starts: the message sent in the log channel.
  • B Edit message opens the Message Builder.
  • C The variables it fills in.

The Winners tab has the Log line when a giveaway ends. Edits, pauses, rerolls and cancels get a short log line of their own.

What a new giveaway starts with

What a new giveaway starts with, with how long it runs and how many win marked
  • A How long it runs: used when a host leaves out the duration in /giveaway start. From 1 minute to 90 days. It starts at 1 day.
  • B How many win: used when a host leaves out the winners. Up to 50.

Entering

Who can enter

Every box can be left empty. With all of them empty, everyone in the server can enter. Each rule is checked when a member presses Enter.

Who can enter, with the five role and member lists marked
  • A Needs one of these roles.
  • B Needs all of these roles.
  • C Can't enter with any of these roles: muted or giveaway banned roles, for example.
  • D Skips every rule: members with one of these can always enter.
  • E These members can't enter: paste a member's ID, up to 100 members. In Discord, turn on Developer Mode, right click a member and press Copy User ID. Add a member adds another row.

Entering a giveaway is always free, so a role that comes with a server subscription (a paid role) can't be picked in these lists, as a bonus role or as the winner role.

Bonus entries

Bonus entries give members with a role extra chances, like Server Boosters. The post says who gets them, so everyone can see it's fair.

Bonus entries switched on, with a role and its extra entries, Add a role and what the post says marked
  • A Give bonus entries: the switch. A member with 2 bonus entries is in the draw 3 times. They can still only win once.
  • B Members with a role get extra entries, from 1 to 10. Add a role adds another row, up to 10 roles. A member with several of the roles gets the bonus of each.
  • C What the post says about it: like Boosters get +1 entry. It fills in {giveaway_bonus_line} on the post. Left empty, the post says Some roles get extra entries.

Account age and time in the server

Account age and time in the server, and A custom variable they need, marked
  • A Discord account at least: how many days old a member's Discord account must be. This keeps brand new accounts out, so nobody makes extra accounts to win.
  • B In the server at least: how many days they must have been in your server.

Use 0 for no limit.

A custom variable they need

  • C Read it from: one of your bot's member number variables from Data Storage, like a level, XP or points another system keeps. Leave it on None needed to let everyone enter.
  • D Members need at least: how much they need. 0 lets everyone enter.

Replies to members

Each reply only shows to the member who pressed the button. Each one has its own card, with Edit message and the variables it fills in. The replies are this server's own, so each server can word them its own way.

Reply When it's sent
When someone enters Enter lets them in. {giveaway_my_entries} is their entries, counting bonus entries
When they're already in They press Enter again
When they can't enter A rule above keeps them out. {giveaway_problem} says why
When they leave They press Leave
When the giveaway isn't open They press a button on a giveaway that ended, was cancelled, or whose winners are being picked
When the giveaway is paused They press Enter while a host has paused the giveaway
The When someone enters card, with its message, Edit message and the variables it fills in

Winners

Picking the winners

Winners are picked at random from every entry. Someone can only win once per giveaway, and a reroll never picks an earlier winner.

Picking the winners, with the least entries, the check at the draw and Ping the winners marked
  • A Least entries for a draw: with fewer entries than this, nobody wins and the When nobody wins message is sent.
  • B Check the winners again at the draw: skips winners who left the server or lost a role they needed, and picks someone else.
  • C Ping the winners: off, the announcement names them without a ping.

The winners' messages

The When the winners are picked card, with the message, Edit message and the variables marked
  • A Message: the text parts of the message.
  • B Edit message opens the Message Builder.
  • C The variables it fills in, like {giveaway_winners}.

The winners' messages and the winner DM are this server's own.

Message When it's sent
When the winners are picked A reply to the giveaway post (in its channel when the post is gone), pinging only the winners
When nobody wins Fewer people entered than the least entries, or nobody who entered can be picked, because they left or failed the check at the draw
When winners are rerolled After a host rerolls. Only the new winners are pinged

Winner role

Winner role and When a winner gets a DM, with the role, Take it away after and the DM switch marked
  • A Give winners: a role for the winners. Leave it empty for no role. Your bot can only give roles below its own.
  • B Take it away after: the bot takes the role off again after this long. Leave it empty and they keep it.

Winner DMs

  • C Send winners a DM: off to start with, so winners are told in the channel, with a ping. Turn it on to also send each winner a DM. The message shows under the switch once it's on.

Keep links out of the DM: Discord treats DMs with links from bots as spam. Winners with DMs closed are still pinged in the channel. While DMs are on, the post says Winners get a DM when they win. under its details ({giveaway_dm_line}), so everyone who enters knows.

The Log line when a giveaway ends card is on this tab too. See The log.

How long entries are kept

How long entries are kept, with Keep them for marked
  • A Keep them for: after the draw, who entered stays for rerolls and the Entrants button, then it's deleted. From 1 to 90 days. It starts at 30. Rerolls work until then.

Prizes

The claim button

Claim prize button and Time to claim, switched on, with the claim switch, the button words, Winners have and Pick someone else marked
  • A Add a claim button: a button under the winners' announcement, so you know who's still around to get their prize. Only the winners can press it.
  • B Button: the words on it.

Time to claim

  • C Winners have: how long winners have to claim. Winners who don't claim in time lose the prize. Leave it empty for no time limit.
  • D Pick someone else when it runs out: a new winner is picked from the same entries, and pinged. At most sets how many times per giveaway, up to 20.

The claim button and the time to claim are the same in every server.

Prize codes

Prize codes switched on, with three codes and Add a code marked
  • A Give out prize codes: hand each winner a code, like a game key or a gift code, privately when they claim. It needs the claim button.
  • B The codes: one code per row, or paste a list, up to 500. Add a code adds a row. Each winner gets the next code, and no code is given twice. A code that was given out stays in the list but is skipped. When they're all gone, winners are told to ask the host. The codes are this server's own.

Claim replies

Each reply only shows to the member who pressed the claim button.

Reply When it's sent
When a winner claims their prize After they press the claim button
When a winner gets a prize code With prize codes on. {giveaway_code} is the code, hidden until they click it
When someone else presses claim Someone who didn't win presses the button
When a winner claims too late The time to claim has run out

Schedule

Saved giveaways

Save the giveaways you run often, ready to start in one press. Switch on Start it again and again for a weekly or monthly one.

A saved giveaway called Weekly Nitro, with its name, prize, text, length, winners, channel and the repeat marked
  • A Save a giveaway adds one. Up to 10.
  • B Start it now starts it straight away. Remove deletes the saved giveaway.
  • C Name on this page and Prize.
  • D Text on the post: leave it empty for the post's own text.
  • E Runs for, how many winners and the channel it's Posted in.
  • F Start it again and again: a new giveaway starts by itself at each time, Every so often (at least every hour) from the first date and time you pick. Times are in your own time zone.

Giveaways and stats shows a repeating giveaway as Starts soon in the hour before it starts.

Giveaways and stats

Giveaway stats

The last 30 days totals, and Running now with a Discord Nitro giveaway open, End now, Cancel and Hide entrants marked
  • A The last 30 days: the giveaways run in this server, how many entries they got and how many different members won. Refresh loads them again.

Running giveaways

  • B Running now: each giveaway with its number, prize, channel, end time, winners and entries.
  • C End now ends it early and picks the winners. Cancel stops it with no winners: press it, then Sure? Cancel it.
  • D Entrants and winners opens it. Hide entrants closes it again.
  • E What it says, who hosted it, the winners once they're picked, and who entered. Press a member to copy their mention.

Ended giveaways

Ended giveaways, with an ended giveaway, Reroll and the opened winners and entrants of Game key bundle marked
  • A An ended giveaway: its prize, when it ended, the winners and the entries. A cancelled one is tagged Cancelled.
  • B Reroll picks new winners from the same entries, never an earlier winner.
  • C Opened with Entrants and winners: who hosted it, who won and who entered.

Ended giveaways stay for as long as entries are kept (Winners tab).

Drops

A drop is a giveaway where the first people to press win, with no draw. Start one with /giveaway drop. The post has a Grab it button and says how many prizes are left. Each member can grab once, and when they're all gone the drop ends by itself. A drop runs for a week. With prize codes on, each member who grabs one gets a code.

Picture cards

Giveaways can put an image card on its messages, made with the Card Studio. Each message that can have one has Add a picture card, Designs and Edit card under it. Edit card opens the Card Studio on that card, and the preview shows it under the message.

Card Where it shows Starts
Winner On the winners announcement, and a reroll's On
Nitro winner A second winner design, picked under Designs
Giveaway live On the giveaway post, drawn once when it goes up Off
Entry ticket On the private You're in! reply, with their ticket number Off
Results On the ended post: the winners, who claimed, and entries per hour Off
Drop On a drop's post, and again when it ends with who grabbed it Off
Luckiest members With /giveaway luckiest (see below) Off
  • The winner card shows the first winner's picture, with "+2 more" when there are more.
  • The results card's chart counts entries from when the card is turned on.
  • Cards are free on every bot. A bot draws up to 30 cards a minute; on a very busy giveaway some replies go without one.

Luckiest members

/giveaway luckiest shows who has won the most giveaways in the server this year, as a column chart with the top 5. Every draw, reroll and drop grab counts. A reroll takes the win back from the member it replaced, and the count starts again each new year. With the card off, the command replies with a list instead. Turn it on and change it on the Giveaways and stats tab.

Commands

The giveaway commands, with /giveaway and its 10 subcommands, End giveaway, Reroll giveaway, Settings and one subcommand marked
  • A /giveaway: press 11 subcommands to see them all. Each subcommand is its own command. STAFF marks the ones only hosts can use.
  • B End giveaway: right click a giveaway post, Apps, End giveaway. For hosts.
  • C Reroll giveaway: right click a giveaway post, Apps, Reroll giveaway. For hosts.
  • D Settings opens the command in the builder. The switch next to it turns the command on or off.
  • E A subcommand: its switch turns it on or off, and Edit opens it in the builder.

The giveaway option is the giveaway's number. The post says it at the bottom, like Giveaway #12.

Command What it does Who
/giveaway start Start a giveaway. Leave out the prize and a form asks for the prize, description, duration and winners. A duration is like 30m, 2h or 2d 12h Hosts
/giveaway drop Start a drop: the first people to press win Hosts
/giveaway end End a giveaway now and pick its winners Hosts
/giveaway reroll Pick new winners for a giveaway that has ended. how_many picks fewer, and member replaces just that winner Hosts
/giveaway edit Change a running giveaway's prize, winners, time left from now or description Hosts
/giveaway pause Pause a giveaway's timer. Nobody can enter while it's paused Hosts
/giveaway resume Start a paused giveaway's timer again, with the time it had left Hosts
/giveaway cancel Cancel a giveaway without picking winners. delete_post deletes its post too Hosts
/giveaway list The giveaways running in this server, privately Everyone
/giveaway entrants Who entered a giveaway, 20 to a page, privately and without pinging them Everyone
/giveaway luckiest Who has won the most giveaways this year, as a card or a list Everyone
End giveaway Right click a giveaway post to end it now Hosts
Reroll giveaway Right click a giveaway post to pick new winners Hosts

Hosts are members with a host role from the Post tab, or Manage Server.

Events

Giveaways is made of ordinary builder blocks. Open an event to see how it works, or add your own blocks.

The six giveaway events, with Open in builder, the switch and Show variable names marked
  • Start a Giveaway numbers the giveaway, saves it, posts it with its buttons, and sets the timer that ends it.
  • Update the Post draws the post again with its live entry count, or its ended look.
  • Draw Winners picks the winners, announces them with the claim button and gives the winner role. It also rerolls.
  • Cancel a Giveaway stops a giveaway without picking anyone.
  • A member leaves takes a member who leaves the server out of every giveaway that is running.
  • Hourly Check ends giveaways whose timer was missed, finishes a draw that stopped half way, and deletes old giveaways.
  • A Open in builder opens the event in the Command Builder.
  • B The switch turns the event on or off.
  • C Show variable names shows the variable behind each setting on the page, if you want to use them in your own commands.

The first four run when another block triggers them, with Trigger a Custom Event: the commands, the buttons, the page and the hourly check all use them.

The settings on this page are read by the events' blocks, so changing a setting never changes the events. If you change an event and want the original back, use its reset on the Giveaways page.

Message variables

Every giveaway message can use these. Each message card lists the ones it can use.

Variable What it shows
{giveaway_prize} The prize
{giveaway_description} The description the host typed, empty when none
{giveaway_number} The giveaway's number, like 12
{giveaway_host} Who started it, as a mention
{giveaway_channel} The giveaway's channel, as a mention
{giveaway_link} A link to the giveaway post
{giveaway_winners_count} How many winners it picks
{giveaway_winners} The winners, as mentions
{giveaway_winners_verb} "was" for one winner, "were" for more
{giveaway_winners_word} "winner is" for one winner, "winners are" for more
{giveaway_winners_noun} "winner" or "winners"
{giveaway_entries} Entries so far, counting bonus entries
{giveaway_entries_word} "entry" or "entries"
{giveaway_members} How many members entered
{giveaway_members_word} "member" or "members"
{giveaway_bonus_line} Who gets bonus entries (empty when bonus entries are off)
{giveaway_ends_relative} When it ends, like "in 2 hours"
{giveaway_ends_date} When it ends, as a date and time
{giveaway_ends_line} "Ends in 2 days" with the date, or that it's paused
{giveaway_dm_line} "Winners get a DM when they win." while winner DMs are on, else empty
{giveaway_my_entries} The member's entries (private replies)
{giveaway_my_entries_word} "entry" or "entries" (private replies)
{giveaway_problem} Why the member can't enter (private replies)
{giveaway_code} The winner's prize code (claim replies)

Limits

What Limit
Giveaways running at once, per server 25
Winners per giveaway 50
How long a giveaway runs 1 minute to 90 days
Bonus entry roles 10, each +1 to +10
Saved giveaways 10
Entries kept after the draw 1 to 90 days, 30 to start

Every feature is free for every bot. On free bots, the module's messages have a small Made with BotGhost line under them. Premium bots don't.

Fair and within Discord's rules

  • Entering is always free. Don't ask members to pay, buy items or join another server to enter.
  • Winners are told in the channel. DMs to winners are off until you turn them on.
  • Giveaways only keeps member IDs. Who entered is deleted after the days you set on the Winners tab, and members who leave your server are taken out of running giveaways straight away.
  • The post shows who gets bonus entries, and the Entrants button and /giveaway entrants show who entered, so everyone can see the draw is fair.

Good to know

  • Each server has its own channel, hosts, entry rules, replies, bonus entries, draw settings, winners' messages, winner role, prize codes and saved giveaways. Pick the server at the top of the page before you set them. A setting a server has its own value for is tagged with the server's name and icon. The post's messages and buttons, the claim settings, the defaults and the log lines are the same in every server; their cards say so.
  • Show variable names under the events shows the variable behind each setting, if you want to use them in your own commands.
  • Your bot can be offline when a giveaway ends. The Hourly Check ends it once your bot is back.
  • After an update to Giveaways, the page shows an Update button. Your own changes to the events are kept.

Common questions

A giveaway ended but nobody won

Check that:

  • Enough members entered. With fewer entries than Least entries for a draw on the Winners tab, nobody wins.
  • The members who entered are still in the server and still pass the rules on the Entering tab. With Check the winners again at the draw on, those who don't are skipped.
The winners didn't get the winner role

Check your bot's role is above the winner role in Server Settings > Roles, and has Manage Roles.

What happened to the old Giveaways?

The new Giveaways replaces the old Giveaways page. Bots that still have the old one on keep it as Giveaways (old) in the module list. Its settings don't move across, so set up the new one from the start.