Giveaways
Run giveaways your members enter with a button, then let SnowstormBot pick the winners for you, fairly and automatically. A host builds a giveaway with the /giveaways wizard (no long command to remember), the bot posts it with an Enter button, and when the timer runs out it draws the winners and announces them. Every draw keeps a provably-fair record you can review and download.
The Giveaways feature is off by default and depends on your plan. Turn it on from the Features page, then open Giveaways in the sidebar to choose who can host.
Who can host
Hosting is controlled by a role allow-list, not a Discord permission. On the Giveaways dashboard page, pick the roles whose members may create and manage their own giveaways. The server owner can always host, and can manage anyone's giveaway from the dashboard. With no roles selected, only the owner can host.
Creating a giveaway
A host runs:
/giveawaysThis opens a private builder panel. Click New giveaway, then set each part with its own button:
- Title & details — the prize, an optional description, and how many winners.
- End date — how long it runs, like
12h,2d, or1d12h(up to 14 days), counted from when you press Start. - Required roles (optional) — opens a role picker; a member must have at least one of the chosen roles to enter.
- Excluded roles (optional) — opens a role picker; a member with any of the chosen roles can't enter.
The role pickers each hold up to 100 roles across several dropdowns, so you can do things like "required: @giveaways-join, excluded: @admins". When you've set at least a title and an end date, click Start and SnowstormBot posts the giveaway (with an Enter button) to the channel you ran the command in. Discard throws the draft away.
Entering
Members click the Enter button on the giveaway message. If you set required or excluded roles, the bot checks them on entry and privately tells anyone who doesn't qualify. Each member can enter once.
Winners
When the timer ends, SnowstormBot draws the winners and posts an announcement that pings them. You can also manage a running giveaway from My giveaways in the /giveaways panel, or from the dashboard:
- End now & draw — end early and pick winners immediately.
- Stop — abort a running giveaway without drawing anyone.
- Re-draw — after a giveaway has ended, draw fresh winners (skipping everyone who already won); there's a quick "are you sure?" step first.
Limits
- Each host can run a set number of giveaways at the same time, depending on the server owner's plan.
- A server can have at most 10 giveaways running at once, no matter how many different people are hosting.
If your plan includes zero giveaways, the feature shows Requires plan upgrade on the Features page and can't be turned on. See Plans & limits.
The dashboard
Open the Giveaways page in the dashboard to:
- Choose who can host.
- See every running and past giveaway (prize, host, status, entries).
- Open a giveaway for full detail: the participant list with ticket numbers, who won, and the randomization audit for each draw.
- Download the participants as CSV. A username that starts with
=,+,-or@gets a'in front of it in the file, so a spreadsheet app shows it as plain text instead of running it as a formula.
How the draw is fair
Every entrant is given a ticket number in the order they entered. When the draw runs, SnowstormBot generates a random seed, records it, and uses it to roll the winning ticket numbers. Because the seed, the ticket assignments, and the rolled numbers are all saved, anyone can see exactly how the winners were chosen, and the same seed always produces the same result. All of this is shown on the giveaway's detail page.
Requirements and permissions
In the channel where a giveaway is posted, SnowstormBot needs:
- View Channel
- Send Messages
- Embed Links
Without these, the bot can't post the giveaway or announce the winners.