Docs / Core Services / Giveaways
Built in Service id giveaway 10 commands 8 settings

Giveaways

Build a giveaway on the web in four steps. Members enter with a button or a reaction, and the bot draws the winners with randomness nobody can seed. Add rules for who can enter, extra chances, things to do, invite friends, prize codes and a Watch live page if you want one.

Turn it onDashboard, Services, Giveaways, switch to Enabled
First stepRun setup
PlanEvery feature included for every server

Set it up

The dashboard's health check expects: Giveaway channel. It shows a warning while one of these is missing or points at something deleted. The steps below say what each one does.

Nine steps take a server from nothing to its first winners. Each step names the page of the dashboard and the words on it, or what the bot replies. The service's menu is Home and Winners, then New giveaway and Templates, then History and Settings. "Find a setting" at the top of the menu finds any setting by name, the old names included.

  1. Turn the service on. On the Services page, switch on the Giveaways card, then click Open. Until it is on, /giveaway create answers "The Giveaways service is not enabled here."

  2. Run setup. On Settings, the last card is Setup. Before you press Run setup it says what a run would change. Setup keeps the giveaway channel picked on the page. If none is picked, or the picked one is gone or closed to the bot, it uses a channel named #giveaways, or creates #giveaways when there is none: everyone can read and react there, and writing is left to the bot. It keeps the role picked under "Who can run giveaways from Discord". With none picked, it looks for one by name (giveaway host, giveaways, giveaway, event host, moderator, mod, staff or admin) and picks the first match. Without a match, only people who can manage the server run giveaways from Discord. In a channel it has just created it posts a short "Giveaways are live!" welcome and tries to pin it, which needs the Pin Messages permission. Nothing else on the page changes.

  3. Check the basics. The basics card on Settings holds four things. The giveaway channel: the builder starts with it picked, and /giveaway create posts where it is typed. Who can run giveaways from Discord: people who can manage the server always can, and on the dashboard your Access roles decide. How people enter a new giveaway, with its reaction emoji (🎉 to start with). The time zone: it follows the server's time zone from the Bot settings page, or you pick "Use one just for giveaways". Under "More starting points" are "New giveaways allow drawing again" and "New giveaways get a Watch live page", both on to start with.

  4. Set the fair play rules, if you want them. The Fair play card on Settings: "Someone who won a giveaway here sits out the next" number of days (0 turns it off, up to 365) and the number a new giveaway's own wait starts with (7 days to start with). The longer of the two waits counts. "Roles that skip the entry rules" skip what a giveaway asks under Who can enter, but never the blocked list, the wait, things to do or an invite minimum. "Blocked from giveaways" lists everyone blocked: Block someone takes a role or a member, by name or Discord user ID. The What the bot says card holds the server's own replies for when someone enters, when someone cannot enter and the winner's DM.

  5. Make a giveaway. Click New giveaway. Start blank, from a quick start (Quick giveaway, First come, first served, Every week) or from a template. Four steps follow, with the post beside them as Discord will show it: "What are you giving away?" (the prize and how many win it, "Add a 2nd prize" up to 20 prizes, a headline and a few words under it), "When and where?" (the channel, "It starts" right away or at a set time, "It ends" after a while (1 hour, 24 hours, 3 days, 7 days or a length you type, at least 30 seconds) or on a date), "How do people enter?" (Enter button, A reaction, Either one or First come, first served, with the emoji to react with) and "Anything else?". The fourth step has one row each for Who can enter, Extra chances, Invite friends, Things to do, Prize codes, After the draw (Winners have to claim, a role for the winners, You can draw again, Watch live page), Look, What the bot says and Repeat. Click Post it now (Schedule it, when it starts at a set time) or Save draft. The bot posts within a few seconds. Save as a template keeps it to start from again.

  6. Or make one from Discord. In the channel where the post should appear, run /giveaway create with a title, a duration (30m, 2h, 1d) and either a prize with winners or tiers such as 1:1:RTX 4090|2:2:$50 card. Set drop to make it first come, first served. You need Manage Server or the host role, and the reply is "✅ Giveaway #12 started. Watch live page: ...", without the link when the server's new giveaways get no Watch live page.

  7. Let members enter. They react with the emoji or press Enter. The button replies "🎉 You're entered!", or the reason they were turned away. A second press says "You're already entered. Good luck!" and Leave says "You've left the giveaway." Reaction entries are silent when accepted. A refusal arrives by DM starting "Giveaway entry rejected:", and removing the reaction takes the entry back. The post's footer keeps a running count ("Giveaway #12 · 40 entries"), and a Watch live link opens the giveaway's public page when it has one. Home shows each running giveaway with its clock and who is in.

  8. The draw. A giveaway ends on its own at its end time; the bot checks about every 30 seconds. To end it early, run /giveaway end with its number or click End now and draw on the giveaway's page. Winners are drawn at random, weighted by extra chances, leaving out past winners who sit out, anyone blocked and anyone who has left the server. The post is replaced by the results, which ping the winners, and each winner is sent a DM. With fewer people who can win than winners to draw, nobody wins: the giveaway is cancelled and a notice is posted in its channel.

  9. After the draw. Winners lists everyone who won and whether the prize reached them. For 30 minutes after the draw, Draw again on the giveaway's page (or /giveaway reroll) replaces winners, unless You can draw again is off. A winner who had to claim and did not shows under Needs you on Home and Winners: Draw someone else picks a new winner from the people who entered and have not won, and Leave it keeps them listed. The giveaway's page also has the entries (add, remove, disqualify, download who entered), the prize codes, its setup and what happened.

1 optional features with their own switch
  • Who can run giveaways from Discord: giveaway host role

How it works

  1. Run setup. One press on the Settings page. Setup keeps the giveaway channel you picked, or uses #giveaways and makes it when there is none. It looks for a role that may run giveaways from Discord. In a channel it makes, it posts a short how-it-works message and tries to pin it.
  2. Build the giveaway. Four steps: what you give away, when and where, how people enter and anything else. The post shows beside the form as Discord will show it. Post it right away, set a time for it or save a draft.
  3. Members enter. One click on Enter or a reaction, whichever the giveaway uses. The post keeps count, and a Watch live page, when the giveaway has one, shows people as they enter.
  4. Winners are drawn. At the end time the bot draws, checks that each winner is still in the server, posts the results and sends every winner a DM. You can draw again for 30 minutes after, unless you turned that off.

Permissions the bot needs

Generated

The invite link grants these. If one is missing the service page in the dashboard shows a re-grant banner, and the affected commands say what they cannot do instead of failing silently. The Setup Check on the Bot page, or /yourbot check in Discord, lists everything the bot is missing across your services.

Add ReactionsView ChannelSend MessagesEmbed LinksRead Message HistoryPin Messages

Commands

GeneratedEvery command in detail
CommandWhat it doesWho by default
/giveaway createCreate a quick giveaway in this channel.Server managers
/giveaway endEnd a giveaway now and draw winners.Server managers
/giveaway rerollReroll a giveaway's winners.Server managers
/giveaway cancelCancel a giveaway without drawing.Server managers
/giveaway listActive giveaways in this server.Everyone
/giveaway infoDetails for a giveaway.Everyone
/giveaway blacklist addBlock a member or role from entering giveaways.Server managers
/giveaway blacklist removeLet a blocked member or role enter giveaways again.Server managers
/giveaway blacklist listShow who is blocked from entering giveaways.Server managers
/giveaway inviteGet your personal invite link for a giveaway.Everyone

Everything it does

How people enter

One pick. Everyone counts once however they enter.

An Enter button, a reaction or either one. Enter and Leave buttons under the post, or a reaction with the emoji you pick. With Either one, members use whichever they like. The emoji is 🎉 unless you pick another.
First come, first served. The first people to click Enter win on the spot, with no draw. The first to click get the 1st prize. A prize nobody takes stays open until the end time.
Leave before the draw. Until the draw, a member can back out with Leave or by taking their reaction off.

Prizes

Several prizes, codes the bot hands out and a role for the winners if you want one.

Up to 20 prizes. A 1st prize, a 2nd prize and so on, each with its own text and up to 100 winners.
Prize codes. Load keys, codes or links for each prize, one per line, with a name in front if you like. They are stored encrypted and never logged. The dashboard shows their names, never the codes.
Handed over once. Each winner gets the next unused code in their DM, or when they claim if winners have to claim. Sending again never uses up a second code. When the codes run out, the winner is told the host will deliver the prize.
When a DM does not get through. If a winner had a code or a claim waiting, the bot posts a Confirm prize button for them in the giveaway channel instead. Only they can use it.
A role for the winners. Give winners a role when they are drawn. When winners have to claim, they get it once they claim. First come, first served winners get it when the giveaway closes.

Who can enter and extra chances

Who may enter, and whose entry counts for more.

Account age and time in the server. Ask for a minimum Discord account age and a minimum number of days in the server.
Roles in, roles out. Ask for every role on one list, and turn away anyone who has a role from another.
Minimum messages. Ask for a number of messages over up to 365 days, counted by the Analytics service. While Analytics is off, this rule is skipped.
Extra chances. Give boosters and any role you pick extra chances. They add up: a member with 2 extra chances from a role and 1 for boosting is in the draw 4 times.
Roles that skip the entry rules. They skip account age, time in the server, roles and messages. They never get around the blocked list, the wait for past winners, things to do or an invite minimum.

Things to do and invite friends

Ask for something in return, or reward members who bring friends.

Things to do. A link to visit or something to do in your own words. One that is needed to enter keeps a member out until they mark it done, and any of them can add up to 100 extra chances. Members tick them off on the Watch live page after signing in with Discord, on trust. A giveaway with things to do always gets that page.
Personal invite links. Members get their own Discord invite from the My invite link button or /giveaway invite. The bot counts who joins the server through each link. It needs Create Invite in the giveaway channel and Manage Server for that.
Invite to win. Ask for a number of invited friends to be in the draw, and set how old a friend's account must be to count, 7 days to start with.
Extra chances per friend. Each friend who joins through a member's link adds the extra chances you set to that member's entry.

Fair draws

The part members care about most, so it is built to be boring.

Operating-system randomness. Winners are picked from the operating system's random source, weighted by extra chances. The stored animation seed only replays the reveal and cannot predict a draw.
Winners are checked again. A pick who has left the server, or who has a role that is blocked from giveaways, is replaced. The bot tries up to five rounds.
No short draws. If fewer people can win than there are winners to draw, nobody wins and the giveaway is cancelled with a notice, rather than drawn short.
Past winners sit out. Anyone who won a giveaway here in the last N days, up to 365, cannot enter or be drawn. Each giveaway has its own wait and so does the server: the longer one counts.
Draw again within 30 minutes. Drawing again never picks someone who already won this giveaway or anyone who sits out. If two draws start at the same moment, only one of them runs.
Winners have to claim, if you want. Ask winners to click Confirm prize in their DM within 1 to 168 hours. A prize nobody claimed waits on the Winners page until you draw someone else or leave it.

Scheduling and reuse

Set it up once, run it again.

Draft, schedule or post. Post it right away, set a time for it or keep it as a draft.
Repeat. Every day, every week or every month. When one ends and its winners are drawn, the next one starts with the same prizes and rules. Things to do carry over. Prize codes do not. A round that is cancelled, or that ends with too few people in it, ends the repeating. You can also stop it from the giveaway's page.
Templates. Save a giveaway as a template and start the next one from it. A template keeps the prizes, the rules, the look and the replies. Three quick starts are built in, and any giveaway can run again as a new draft.
What the bot says. Your own text for the reply when someone enters or cannot enter, and for the winner's DM, for one giveaway or for every giveaway on the server. Tags: {prize}, {title}, {host}, {link}, {user} and {reason}.

The Watch live page and the numbers

A page for members outside Discord, and numbers for you.

A Watch live page, if you want one. Each giveaway can have a public page, and the post links to it. New giveaways get one unless you switch that off in Settings, and the builder can switch it off for one giveaway before it is posted.
What it shows. No login. The prizes, the host, a live clock, who is in and how to enter. When time is up it plays the draw with confetti, and afterwards anyone can watch the draw again.
It closes. The page closes three days after the giveaway ends or is cancelled.
History and Insights. Every past giveaway with a search and dates. Insights counts the giveaways made and finished, entries over time, a typical giveaway's entries, who won the most and who ran the most.
Download who entered. A spreadsheet file of everyone who entered, with their chances, when they entered and whether they were disqualified. For managers only.

In the dashboard

Home What is running, with its clock and who is in. What needs you: a prize nobody claimed, a draw short of codes or people, a giveaway the bot could not post. Then what is coming up and quick starts.
Winners Everyone who won and whether the prize reached them: the DM, the code and the claim. For a prize nobody claimed, draw someone else or leave it.
New giveaway The builder: four steps beside the post as Discord will show it. The fourth holds the rest, one row each: who can enter, extra chances, invite friends, things to do, prize codes, after the draw, the look, what the bot says and repeat. The same page changes a giveaway. Once it runs, its words, end time, look and replies can still change.
Giveaway One giveaway's own page: where it stands, its winners and tabs for the draws, the entries, the prize codes, its setup and what happened. Post it, end it, draw again, cancel it or stop it from repeating. Add, remove or disqualify someone and download who entered.
Templates Your saved templates and three quick starts. Pick one and the builder opens filled in.
History Every giveaway that finished or was cancelled, with a search and dates. Run one again or download who entered.
Insights The numbers for the last 7, 30 or 90 days or all time: giveaways made and finished, entries by week or month, who won the most and who ran the most.
Settings The giveaway channel, who can run giveaways from Discord, how a new giveaway starts and the time zone. Fair play: the wait for past winners, roles that skip the entry rules and who is blocked. What the bot says for every giveaway, and Setup.

Settings

GeneratedAll 8 settings
Giveaway channel Giveaways, Settings, The basics. The builder starts with this channel picked for a new giveaway; each giveaway can pick another, and posts and announces its winners in its own channel. /giveaway create posts in the channel it is typed in. Run setup keeps the channel picked here; when none is picked, or the bot cannot use it, setup reuses #giveaways or creates it and fills this in. Unset by default; the service counts as set up once it is filled.
Who can run giveaways from Discord Giveaways, Settings, The basics. Members with this role can use /giveaway create, end, reroll and cancel without the Manage Server permission. People who can manage the server always can. On the dashboard it is your Access roles that decide.
How people enter, for new giveaways Giveaways, Settings, The basics. The way to enter a new giveaway starts with, in the builder and with /giveaway create unless its drop option says otherwise. Default the Enter button. Each giveaway can pick its own.
The reaction emoji a new giveaway starts with Giveaways, Settings, The basics. The emoji a new giveaway starts with for reaction entry, in the builder and with /giveaway create. Default 🎉.
Starting wait for past winners Giveaways, Settings, Fair play. The number a new giveaway's Past winners sit out starts with, in the builder and with /giveaway create. Default 7 days, 0 to 365. A member who won any giveaway in this server inside a giveaway's wait cannot enter it and is skipped when it draws. The longer of the giveaway's own wait and the server's wait applies, up to 365 days.
New giveaways allow drawing again Giveaways, Settings, More starting points. A new giveaway starts with You can draw again on, in the builder and with /giveaway create. Default on. Each giveaway's own switch decides whether /giveaway reroll and Draw again on its page work, and only for 30 minutes after the draw. A prize nobody claimed can always be drawn again from Winners.

Runs on its own

A 10-second scheduler. Posts scheduled giveaways, draws finished ones within about 30 seconds of their end time, posts the results and DMs the winners.
A claim that runs out is marked within a minute. Nothing more happens to that prize until you draw someone else or leave it.
Repeats make their next round on their own. The next round is made within about a minute of the last one being drawn, and starts at the time the last one was set to end.
Crash recovery. A draw stuck for about 16 minutes is started again by a sweep that runs every five minutes.
Instant wake-up. Posting from the dashboard wakes the scheduler at once instead of waiting for the next tick.
A reveal that fits. The animated reveal is paced to finish inside 10 minutes whatever the size of the draw.

Limits

WhatValueNotes
Prizes per giveaway20
Winners per prize100
Giveaways live at once25Live, scheduled or being drawn. An anti-abuse cap, not a plan limit.
Giveaways made per day50Rolling 24 hours.
Drawing again30 minutesAfter the draw. Up to 50 new winners at a time. A prize nobody claimed can be drawn again later.
Time to claim1 to 168 hoursDefault 24.
Past winners sit outup to 365 daysFor the server and for each giveaway. The longer one counts.
Message-count windowup to 365 daysDefault 30. Needs Analytics.
What the bot says1,500 charactersPer message.
Prize codes200 at a timePer prize, one per line.
Extra chances per thing to doup to 100
Watch live page after the end3 days

What it watches

Generated

The Discord events Giveaways reacts to while it is enabled. It does not read history from before it was turned on.

Members joining

Safety

Blocked from giveaways. Block members or roles from Discord or the Settings page. A blocked member cannot enter and is never drawn, even with an entry from before the block. Blocking @everyone is refused.
Prize codes stay secret. Codes are encrypted with your server's key and never logged. A code is only read back for the winner it belongs to.
Channels and images are checked. The giveaway channel must belong to your server, and banner images must be https and not point at private addresses.
Every change is on record. Each giveaway's page lists who made, changed, posted, ended or cancelled it, who drew again and who was added, removed or disqualified. Who claimed a prize and every prize code added or removed are listed too.
Manual control when you need it. Add someone by hand or remove an entry. Disqualify someone and they stay on the list crossed out. They cannot enter again or win.
A dead channel is reported. If the giveaway channel is deleted or the bot loses access, the server's owner and managers get a notice on the dashboard. A giveaway the bot could not post shows under Needs you on Home.

What it does not do

  • No paid or currency entries. Entries are free, with extra chances from roles, boosting, things to do and invited friends.
  • No level or XP rule. Who can enter goes by account age, time in the server, roles and Analytics message counts.
  • No public cryptographic proof of the draw. Fairness rests on operating-system randomness and each giveaway's record.
  • No cross-server giveaways.
  • No captcha. Protection against bots is account age, time in the server and the blocked list.
  • Prize codes are text only. No files or images.
  • Repeat is every day, every week or every month only. A month is 30 days.
  • Drawing again works for 30 minutes after the draw. After that only a prize nobody claimed can be drawn again.
  • Things to do run on trust. The bot cannot check a follow or a visit.

Questions

How are winners picked?

By a weighted random draw from the operating system's random source, so extra chances count. A winner who left the server or is blocked from giveaways is replaced. If too few people can win, nobody wins and the giveaway is cancelled rather than drawn short.

Can I require people to follow us somewhere first?

Add it under Things to do and tick Needed to enter. Members tick it off on the Watch live page after signing in with Discord. It works on trust, because the bot cannot check the follow itself.

What if a winner never responds?

Turn on Winners have to claim. If they do not click Confirm prize in time, the prize shows under Needs you on Home and Winners. You choose: draw someone else, or leave it.

Can members enter more than once?

No. One entry per member, and extra chances from roles, boosting, things to do and invited friends add to it.

Can people outside the server watch?

Yes, while the giveaway's Watch live page is on, as it is unless you switch it off. It needs no login and closes three days after the giveaway ends.

Can I run the same giveaway every week?

Set Repeat to Every week. When one ends and its winners are drawn, the next one starts with the same prizes and rules. Stop it from the giveaway's page whenever you like.

YourBot docs Reference tables are generated from the code that is running. Ask in Discord Suggest a correction