Run Discord giveaways with entry requirements
The Giveaways module posts a giveaway, counts 🎉 reactions as entries and draws random winners when the timer runs out. This guide sets the entry requirements in the dashboard, starts a giveaway from Discord and covers ending, rerolling and pausing it. It finishes with a one-minute test that you can run before announcing a real prize. Giveaways is a Pro module, so new accounts can use it during the 14-day Pro trial.
Start free, 14 days of Pro, no cardBefore you start
- An online bot in your server, on Pro or on the 14-day Pro trial that new accounts start with.
- Manage Messages on your own account for the giveaway commands, plus Manage Server if you want to change the ping role or embed color with gconfig.
- In the giveaway channel, the bot must be able to view the channel, send messages, embed links, add reactions and read message history. Manage Messages lets it take away entries from members who miss a requirement.
Know how entries and winners work
A giveaway is a message from the bot that shows the prize, the number of winners, the end time and the host. The bot adds a 🎉 reaction, and members enter by clicking it; reactions from bots never count. When time is up, the bot edits the message to name the winners and the number of valid entries, then posts a congratulations message that mentions them. Winners are drawn at random, and if fewer members entered than there are winners, every eligible entrant wins.
Giveaways are stored in the bot’s own database, so a restart does not lose them. One that should have ended while the bot was offline ends as soon as the bot is back, and the bot also looks for overdue giveaways every 30 seconds. If nobody eligible entered, the message changes to say there were no valid entries and nobody is announced. The bot only picks winners; delivering the prize is up to you.
Set entry requirements before you start
Turn on Giveaways in your bot’s Modules tab, click its gear button titled Settings and pick your server. Default Required Role limits entry to members who hold that role. Enable Account Age Requirement and Enable Server Join Requirement each reveal an hours field, Minimum Account Age (hours) and Minimum Join Time (hours), which accept 1 to 8760, or one year. Switching either one on starts it at 24 hours. All three requirements are empty by default, so anyone can enter.
These values are defaults that the bot copies into each giveaway at the moment it starts. Changing them later does not affect a giveaway that is already running, so save them first. From Discord, grequire sets the same defaults: follow it with role and a role mention, with age or jointime and a duration such as 7d, or with clear to remove all three. On its own, grequire shows the current values.
When someone clicks 🎉 on a giveaway with requirements, the bot checks them at once. A member who fails loses the reaction and gets a direct message naming the requirement they missed, if their DMs are open. At the draw, and again on a reroll, entrants are checked a second time. With a role or join-time requirement set, that check uses their current roles and membership, so a member who dropped the role or left the server after entering cannot win.
Add a ping role and choose a color
Giveaway Ping Role is optional. When it is set, the bot mentions that role right after posting a new giveaway and deletes the mention three seconds later, so members are notified without a leftover message. Embed Color sets the color of a running giveaway, gold (#FFD700) by default. Ended giveaways turn green, or red when there were no valid entries. From Discord, gconfig followed by ping and a role mention, ping off, or color and a hex code changes the same settings, and it needs Manage Server.
Start a giveaway from Discord
Giveaways are started in Discord, not from the dashboard. Click Save Settings and wait for Saved ✓, restarting the bot from its page if the dialog says live sync to the bot runtime failed. Then, in the channel where the giveaway should appear, send the giveaway command with a duration, the number of winners and the prize, for example giveaway 3d 2 Discord Nitro. The names gstart and gcreate do the same thing.
The duration is a whole number followed by one unit, s, m, h, d or w, such as 30m, 12h or 1w. Combined values such as 1h30m are refused; write 90m instead. Winners must be between 1 and 20, and everything after the winner count becomes the prize text. The bot deletes your command message, posts the giveaway with any requirements listed under it and adds the 🎉 reaction. Giveaways that run for several weeks still end on time.
End, reroll, pause and list giveaways
Most management commands need the giveaway’s message ID. Turn on Developer Mode in Discord’s Advanced settings, then right-click the giveaway and choose Copy Message ID. gend with that ID ends the giveaway now and draws winners as if its time had expired. It replies Giveaway ended! even when the ID does not match a running giveaway, so check that the message itself changed. glist, alias giveaways, lists every unfinished giveaway in the server with a link to it.
greroll, alias giveawayreroll, draws new winners for an ended giveaway and posts them in the channel where you run it. It draws one winner unless you add a count, and it skips the original winners. Rerolls are not saved, so a second reroll can pick the same member as the first. gpause freezes the timer and marks the message as paused, and gresume restarts it with the time that was left. A paused giveaway still accepts 🎉 entries. The paused and resumed message also stops listing the requirements, although they are still enforced.
Run a one-minute test
Before you announce a real prize, test in a staff-only channel. Send giveaway 1m 1 Test prize, react with 🎉 from a second account that meets your requirements, and wait. Within about a minute the message should turn green, name the winner and report one entry, followed by a congratulations message. If you set a requirement, also try to enter from an account that does not meet it; its reaction should vanish.
If the giveaway never ends, check that the Giveaways module is still switched on and that the bot can read the channel’s message history. A reroll that answers Could not find giveaway message. usually means the ID is wrong. Delete the test giveaway afterwards so that nobody mistakes it for a prize that is still on offer.
Plans and the end of a trial
Giveaways is one of the Pro modules; the Free plan does not include it. New accounts can run giveaways throughout the 14-day Pro trial. If the trial ends and the account stays on Free, the module is turned off on its bots, so nobody can start a new giveaway. The saved requirements, ping role and color remain, and upgrading to Pro within 30 days of the trial’s end turns Giveaways back on.
Frequently asked questions
Can I start a giveaway from the dashboard?
No. The dashboard stores the defaults: requirements, ping role and embed color. A member with Manage Messages starts each giveaway in Discord, in the channel where it should appear.
Why did a member’s 🎉 reaction disappear?
The giveaway has an entry requirement they do not meet: a role, a minimum account age or a minimum time in the server. The bot removes the reaction and tries to send them a direct message explaining which one.
Do new requirements apply to a giveaway that is already running?
No. Each giveaway keeps the requirements that were saved when it started. Change the defaults first, then start a new giveaway.
