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

Giveaways

Build a giveaway from a form on the web, let members enter with a button or a reaction, and draw winners with randomness nobody can seed. Add requirements, bonus entries, tasks, referrals, a prize vault, and a public page anyone can watch.

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: Announcement channel. It shows a warning while one of these is missing or points at something deleted. The steps below say what each one does.
  1. Turn the service on. On the dashboard Services page, switch the Giveaways card to Enable. Until then /giveaway create answers "The Giveaways service is not enabled here."

  2. Run Setup. Open Giveaways, then Setup, and press Run Setup. It creates a #giveaways channel if the server has none (everyone can view and react, only the bot posts), picks a host role by name if one exists (giveaway host, mod, staff, admin and similar) and otherwise falls back to Manage Server, saves the defaults (button entry, 7-day dedup window, rerolls on, spectator page on), and posts and pins a "How giveaways work" message in a channel it created. Re-running it only fills in missing pieces.

  3. Check the summary and the timezone. The Setup page then shows the Announcement channel, Host role (Manage Server when none is set), Entry method, Dedup window, Reroll, Spectator page, and Timezone. In the Timezone box pick a zone or Follow server timezone; the server timezone itself is set on the Bot settings page. Times on the giveaway pages and the date pickers use this zone.

  4. Set the entry policy, if you want one. Further down the Setup page: Winner cooldown (days) keeps anyone who won here recently from entering another giveaway and out of its draw, Bypass roles skip a giveaway's account age, tenure, role and message requirements, and Default messages replace the built-in entry confirmed, entry denied, and winner DM texts. Press Save policy.

  5. Decide how members enter. On the New Giveaway form the Entry method is Reaction only (classic), Button only, Both reaction and button, or Drop (first to click wins), with the Entry emoji next to it. The server default from Setup is pre-selected. A giveaway started with /giveaway create always uses a 🎉 reaction, or a drop when drop is set.

  6. Create the giveaway. By command: in the channel where the post should appear, run /giveaway create with title, duration (30m, 2h, 1d), and either prize plus winners or tiers such as 1:1:RTX 4090|2:2:$50 card. You need Manage Server or the host role, and the reply is "✅ Giveaway #12 started. Spectator page: ...". On the dashboard: Giveaways, then + New Giveaway. Give it a title and channel, choose Duration or Pick dates (a Starts at in the future saves it as scheduled and it posts itself at that time), add prize tiers, pick the entry method and emoji, and open the optional sections for requirements, weighted entries, the dedup window, messages, referral entries, tasks, and winner confirmation. The bot posts a dashboard-created giveaway within about ten seconds.

  7. Let members enter. They react with the emoji or press Enter. The button replies "🎉 You're entered!" (or the reason they were refused), 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 withdraws the entry. The post's footer keeps a running count ("Giveaway #12 · 40 entries") and the Watch live link opens the public spectator page.

  8. End, or cancel. The giveaway ends on its own at its end time; the bot checks about every 30 seconds. To end early, run /giveaway end with the giveaway number, or use End on the giveaway's dashboard page. Winners are drawn at random, weighted by bonus entries, skipping recent winners and anyone who has left the server. The post is replaced by a results message that pings the winners and each winner gets a DM. With too few eligible entrants the giveaway is cancelled instead and a "Not enough entries" notice is posted. To close a giveaway without a draw, run /giveaway cancel.

  9. Reroll and block. If a winner never claims, run /giveaway reroll with the giveaway number, optionally count and rank, within 30 minutes of the draw; earlier winners are excluded. The same Reroll is on the giveaway's dashboard page. To keep someone out of every giveaway, run /giveaway blacklist add with a member or role and an optional staff-only reason, /giveaway blacklist remove to undo it, and /giveaway blacklist list to review. The same list is on the Setup page under Blocked from giveaways, where you can block by user ID or role and press Unblock. These need Manage Server.

1 optional features with their own switch
  • Host role: giveaway host role

How it works

  1. Run setup. The wizard creates #giveaways, finds a host role, saves defaults and pins a short how-it-works post.
  2. Build the giveaway. Title, prize tiers, entry method, requirements, bonus weights, tasks, referrals, vault items, confirmation and recurrence. Publish now, schedule it, or keep it as a draft.
  3. Members enter. One click on Enter, a reaction, or both. Anyone can watch the live entry count on the public page.
  4. Winners are drawn. At the end time the bot draws, re-checks that winners are still in the server, announces them and DMs them. Reroll within 30 minutes if you need to.

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.

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

Entry methods

Pick how people get in. The rest of the setup works the same either way.

Button, reaction, or either. Enter and Leave buttons, a configurable emoji with 🎉 as the default, or both on the same giveaway.
Drop mode. The first people to click win instantly, one per slot, with no draw. Unfilled slots stay open until the end time.
Leave any time. A member can withdraw while the giveaway is active.

Prizes

Tiers, a vault for the codes, and a role for the winners if you want one.

Up to 20 tiers. Each tier has its own prize text and winner count, up to 100 winners per tier. Rank 1 fills first when entries are scarce.
A prize vault. Store keys, codes or links per tier, one per line, with an optional label. Items are encrypted, never logged, and only the labels show on the dashboard.
Delivered once. The next unused item is reserved for the winner and sent by DM once. A retry sends the same item rather than burning another.
A winner role. Give winners a role at draw time, or only once they confirm.

Requirements and weighting

Who may enter, and whose entry counts for more.

Account age and tenure. Require a minimum Discord account age and a minimum number of days in the server.
Roles in, roles out. Require every role in one list, and reject anyone holding a role from another.
Minimum messages. Require a message count over a window of up to 365 days, counted by the Analytics service. If Analytics is off, this check is skipped.
Bonus entries by role. Each role adds a weight you choose, and boosters can get their own bonus. Weights add up.
Bypass roles. Roles that skip every requirement. They never skip the blocklist or the winner cooldown.

Tasks and referrals

Ask for something in return, or reward people for bringing friends.

Entry tasks. A link task or a free-text instruction. A required task blocks entry until it is marked done, a bonus task adds up to 100 weight. Members mark tasks on the public page after signing in with Discord, on their honour.
Personal invite links. Members get their own Discord invite from the My invite link button or /giveaway invite. Joins are credited to the referrer by invite usage.
Invite to win. Require a minimum number of referrals to be eligible, and set a minimum account age for a referred join to count, 7 days by default.
A referral bonus. Extra weight per referred member, counted the moment they enter.

Fair draws

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

Operating-system randomness. Winners are sampled from the OS entropy source, weighted by entries. The stored animation seed only replays the reveal and cannot predict a draw.
Winners are re-checked. A picked winner who has left the server is replaced, up to five rounds.
No partial draws. If there are fewer eligible entries than slots, the giveaway is cancelled with a notice instead of quietly under-filling.
A winner cooldown. Anyone who won in the last N days, up to 365, cannot enter or be drawn. A per-giveaway window and a server-wide one both apply.
Reroll within 30 minutes. Rerolls exclude every previous winner and anyone in a cooldown, and two rerolls at once are run one after the other.
Confirmation with a deadline. Ask winners to click Confirm prize in their DM within 1 to 168 hours. An expired slot gets its own Reroll slot button on the dashboard.

Scheduling and reuse

Set it up once, run it again.

Draft, schedule or publish. Post now, post at a set time, or keep it as a draft.
Recurring giveaways. Daily, weekly or monthly. When one completes, the next is created with fresh dates and the same settings. Cancelling one stops the chain.
Templates. Save any configuration as a server template and start the next giveaway from it, or duplicate any giveaway as a draft.
Custom copy. Your own text for entry confirmed, entry denied and the winner DM, per giveaway or as a server default, with {prize}, {title}, {host}, {link}, {user} and {reason}.

The public page and stats

Members outside Discord, and numbers for you.

A page anyone can watch. No login. Title, prizes, host, a live countdown and entry count, the entries grid, and an animated reveal with confetti when the draw runs. Updates stream live.
It expires. The page disappears three days after the giveaway ends or is cancelled.
Stats and history. Totals, entry averages, completion rate, activity over time, top winners and top hosts, plus a searchable history with date filters.
CSV export. Every participant with their weight, entry time and disqualification status.

In the dashboard

Giveaways Cards for every giveaway by status: active, scheduled, drawing, completed, cancelled and draft.
New giveaway Title, description, channel, start and end or duration, prize tiers, entry method and emoji, banner image and accent colour, sponsor line, requirements, role and booster weights, the cooldown window, custom copy, referral settings, tasks, rerolls, winner confirmation and its window, winner role, recurrence, and how to publish.
Giveaway detail Entries with disqualify and remove, drop slots, tasks, the prize vault, draw history, add an entry by hand, winner confirmations with per-slot reroll, the activity log, and CSV export.
Templates Saved configurations for this server. Use one or delete it.
History and Stats The archive with status, search and date filters, and the totals, activity chart, top winners and top hosts.
Setup The one-click wizard, then the server settings: time zone, winner cooldown in days, bypass roles, default copy for the three messages, and block a member or a role.

Settings

GeneratedAll 8 settings
Announcement channel The channel Run Setup creates or reuses (#giveaways). Unset by default; the service counts as set up once it is filled. Each giveaway posts, and announces its winners, in the channel it was created in. This channel is only offered on the New Giveaway form as a fallback when the channel list cannot be loaded.
Host role Members with this role can create, end, reroll and cancel giveaways without being server managers.
Entry method The entry method pre-selected on the New Giveaway form. Default button. button puts Enter and Leave buttons on the post; reaction counts a reaction with the emoji below. The form can still pick either, or drop, for one giveaway. /giveaway create ignores this and always uses reaction entry (or a drop).
Entry emoji The emoji pre-filled on the New Giveaway form for reaction entry. Default 🎉. /giveaway create always uses 🎉.
Recent-winner window Pre-fills the Dedup window on the New Giveaway form. Default 7 days, 0 to 365. A member who won any giveaway in this server inside a giveaway's window is refused when they try to enter it and skipped when it draws or rerolls. The larger of the giveaway's window and the server-wide Winner cooldown on the Setup page applies. Giveaways started with /giveaway create have no window of their own, so only the Winner cooldown applies to them. 0 turns the pre-fill off.
Allow rerolls Pre-ticks Allow rerolls on the New Giveaway form. Default on. Each giveaway's own box decides whether /giveaway reroll and the dashboard Reroll work, and only within 30 minutes of the draw. Giveaways started with /giveaway create always allow rerolls.

Runs on its own

A 10-second scheduler. Posts scheduled giveaways, draws finished ones within about 30 seconds of their end time, announces the results and DMs the winners.
Expired confirmations swept every minute. The slot is marked expired and waits for your reroll.
Recurring giveaways spawn on their own. The next instance is created about a minute after the previous one completes.
Crash recovery. A draw stuck for about 16 minutes is recovered by a five-minute sweep.
Instant wake-up. Publishing 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
Prize tiers per giveaway20
Winners per tier100
Giveaways active at once25Active, scheduled or drawing. An anti-abuse cap, not a plan limit.
Giveaways created per day50Rolling 24 hours.
Reroll window30 minutesAfter the original draw. Up to 50 winners per reroll.
Confirmation window1 to 168 hoursDefault 24.
Winner cooldownup to 365 daysServer-wide. A per-giveaway window can be longer.
Message-count windowup to 365 daysDefault 30. Needs Analytics.
Custom copy1,500 charactersPer message.
Vault items200 per add, 2,000 characters each
Bonus per taskup to 100
Public 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

A blocklist. Block members or roles from entering, from Discord or the dashboard. Blocking everyone is refused.
Prizes stay secret. Vault items are encrypted, decrypted once inside the winner's DM, and never logged.
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 action is logged. Create, end, reroll, cancel, blocklist changes and confirmations all show on the giveaway's activity log.
Manual control when you need it. Add an entry by hand, disqualify while keeping the record, or remove an entry entirely.
A dead channel is reported. If the giveaway channel is deleted or the bot loses access, the owner is notified once a day.

What it does not do

  • No paid or currency entries. Entries are free and weighted by roles, boosts, tasks and referrals.
  • No level or XP requirement. Gates are account age, tenure, roles and Analytics message counts.
  • No public cryptographic proof of the draw. Fairness rests on OS randomness and the audit log.
  • No cross-server giveaways.
  • No captcha. Anti-bot protection is account age, tenure and the blocklist.
  • Prizes are text only. No files or images in the vault.
  • Recurrence is daily, weekly or monthly only.
  • Rerolls are limited to 30 minutes after the draw.

Questions

How are winners picked?

By weighted random sampling from the operating system's entropy source. Winners who left the server are replaced, and if there are not enough eligible entries the draw is cancelled rather than under-filled.

Can I require people to follow us somewhere first?

Add a link task and mark it required. Members tick it on the public 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 winner confirmation. If they do not click Confirm prize within the window you set, the slot shows as expired on the dashboard with a Reroll slot button.

Can members enter more than once?

No. One entry per member, but roles, boosts, tasks and referrals add weight to it.

Can people outside the server watch?

Yes. The public page needs no login. It disappears three days after the giveaway ends.

Can I run the same giveaway every week?

Set the recurrence to weekly. When one finishes, the next is created with the same settings and a new page.

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