Everything the bot does.
Add it, then run one. There is no dashboard to configure and no setup step, and the invite asks for four permissions with no privileged intents. A giveaway posts, counts entries on its own, ends on time whether or not the bot was restarted in between, and draws winners who are verified one by one before anything is announced.
/gstart duration:24h winners:2 prize:5x ISP ProxiesThat is a complete giveaway. Everything below is optional.One giveaway, two servers.
A giveaway is usually posted in one community on behalf of another. The server it is posted in is the audience. The server it is for is whoever provides the prize and wants the members.
The second one is named with join, as an ordinary invite link. The bot resolves it once when the giveaway starts and turns it into a button beside Enter, carrying the server's real name. That replaces the follow up message somebody used to post underneath by hand, and it is what tells the reporting which brand a giveaway ran for.
Adding require-join turns it into a condition rather than an invitation. That only filters if the bot is also in that server, because Discord tells nobody from the outside who is a member where. When it is not, the bot says so as the giveaway starts instead of pretending the rule applies.
Commands.
Every command works only inside a server. Anyone with Manage Server can use them, and that can be handed to a role with /gsettings set manager-role.
/gstartStart a giveaway in one line. The fastest way in.- duration
- Required. 30s, 10m, 2h, 3d, 1w, or combined like 1d12h.
- winners
- Required. How many people win, 1 to 20.
- prize
- Required. What is being given away.
- channel
- Where to post it. Defaults to the channel you are in.
- sponsor
- Shown under the prize, as Name | https://link.
- join
- Invite of the server the giveaway is for. Becomes a button next to Enter.
- require-join
- Only members of that server may enter.
/gcreateThe same thing as a form, for when there is more to fill in.- channel
- Where to post it. Defaults to the channel you are in.
- image
- Shown at the bottom of the giveaway.
- required-role
- Only members with this role may enter.
- account-age
- Minimum age of the Discord account, in days.
- member-days
- Minimum time in this server, in days.
- ping-role
- Pinged once when the giveaway starts.
- join
- Invite of the server the giveaway is for.
- require-join
- Only members of that server may enter.
The form itself asks for prize, duration, winners, description and sponsor. Everything above is set on the command before you send it.
/glistEvery giveaway currently running in this server, with a link, the deadline and the entry count.Only you can see the answer.
/gendEnd a giveaway now and draw the winners.- id
- Required. Pick it from the list as you type.
/gdeleteCall a giveaway off without drawing anyone.- id
- Required. Pick it from the list as you type.
The message is removed. The entries are kept, so the export still works afterwards.
/grerollDraw a replacement, for a winner who never claimed.- id
- Required. Pick it from the list as you type.
- count
- How many replacements to draw. Defaults to one.
Everyone who already won that giveaway is out of the pool. You can also right click the giveaway message, Apps, Reroll Giveaway.
/gexportEntrants and winners as a CSV, for the brand sponsoring the prize.- id
- Required. Pick it from the list as you type.
Only you receive the file. IDs stay full length in Excel and names that begin with a formula character are neutralised.
/gsettingsDefaults for this server: show, set and reset.- color
- Accent colour of a running giveaway.
- button-label
- Text on the entry button.
- button-emoji
- Emoji on the entry button.
- ping-role
- Default role to ping when a giveaway starts.
- manager-role
- Role allowed to run giveaways without Manage Server.
- invite
- Invite used in the claim instructions for winners.
/ghelpThe short version of this page, inside Discord./gaboutVersion, uptime and who runs the bot.Who may enter.
All optional, all set per giveaway, and all stated on the giveaway itself so nobody presses Enter only to be turned away. Everything except the last one is answered from what Discord already sends with the click, which is why the bot needs no privileged intents.
A role
Only members holding it may enter. Checked again when winners are drawn, so a role removed in the meantime still counts.
Account age
A minimum age for the Discord account itself, in days. The usual answer to accounts made for one giveaway.
Time in the server
A minimum number of days since joining. If Discord does not report a join date, the condition passes rather than turn away a real member.
Membership of another server
The server the giveaway is for. Checked when somebody presses Enter and again when winners are drawn, so leaving in between does not win.
Four permissions.
View Channel, Send Messages, Embed Links and Read Message History. Nothing else, and no privileged intents at all. Only the first three can stop a giveaway from starting; without the fourth the winner announcement simply sits below the giveaway instead of replying to it.
A private channel is the one case that needs a hand. Discord hides such a channel from the bot completely, and no permission granted on the invite can override that. When it happens the bot says which permission is missing and, where one exists, names a role in that server which already has everything needed in that exact channel. Giving the bot that role is usually the whole fix.
Limits.
- Duration
- 30 seconds to 60 days
- Winners
- 1 to 20
- Prize
- 200 characters
- Description
- 1000 characters
- Entry data kept for
- 90 days after the giveaway ends
One giveaway per channel, each with its own entries. The same prize across five communities is five giveaways carrying the same sponsor.
When something fails.
The bot was offline at the deadline
Deadlines live on disk, not in memory. The giveaway ends as soon as the bot is back and says in the announcement that it ran late. Entries are untouched.
Discord fails while drawing
Nothing is announced and nothing is written down. It is retried a minute later. A giveaway never reports that nobody entered when people did.
A winner left the server
Every drawn winner is verified individually before anything is posted. Anyone who left, or who no longer meets a condition, is skipped and the next name is drawn.
The channel was deleted
The draw still happens and the organiser receives the winners by direct message, rather than the giveaway retrying forever against a channel that is gone.
What is stored.
Entering records a Discord user ID, the username at that moment, and the time. Nothing else, no message content, and no privileged intents that would allow reading any. Entries are removed 90 days after a giveaway ends.
Privacy policy