Giveaways
Feature-complete giveaway system with entry requirements, bonus entries, scheduling, templates, and winner management.
Zagreus includes a powerful giveaway system that goes far beyond simple random drawings. With granular entry requirements, bonus entry multipliers, scheduling and recurrence, reusable templates, winner claim workflows, and full web dashboard management — it is designed for communities that run giveaways seriously and frequently.
All giveaway actions from the web dashboard update the Discord embed in real-time. When you edit a giveaway's settings, duration, or requirements from the browser, the embed in Discord reflects the changes immediately.
How It Works
Create a giveaway
A moderator or admin creates a giveaway using /giveaway create or through the web dashboard. They configure the prize, duration, winner count, entry requirements, and optional customization.
The embed is posted
Zagreus posts a rich embed in the specified channel with the prize description, entry requirements, end time countdown, and a Join Giveaway button. Members can see exactly what is required to enter.
Members enter
Eligible members click the button to enter. The bot validates all entry requirements in real-time — if a user does not meet the criteria, they receive an ephemeral message explaining what they are missing.
The giveaway ends
When the timer expires (or a moderator ends it early), Zagreus randomly selects winners from the pool of valid entries. Bonus entry multipliers are factored into the random selection, giving higher-weighted users proportionally better odds.
Winners are announced
The embed is updated with the winner list, winners are pinged in the channel, and optionally assigned a winner role. If a claim system is configured, winners must claim their prize within the deadline or face automatic reroll.
Commands
| Command | Description |
|---|---|
/giveaway create | Opens the giveaway creation flow. Configure prize, channel, duration, winner count, requirements, bonus entries, and embed customization interactively. |
/giveaway end <id> | Immediately ends an active giveaway and selects winners. The giveaway ID is shown in the embed footer. |
/giveaway cancel <id> | Cancels an active giveaway without selecting winners. The embed is updated to show the giveaway was cancelled. |
/giveaway reroll <id> [count] | Rerolls one or more winners for a completed giveaway. Selects new winners from the remaining entry pool excluding previous winners. |
/giveaway list | Lists all active and recently completed giveaways in the server with their IDs, prizes, and status. |
/giveaway info <id> | Shows detailed information about a specific giveaway — entries, requirements, winners, and configuration. |
Entry Requirements
Giveaways support a comprehensive set of entry requirements. All requirements are optional — a giveaway with no requirements is open to everyone in the server.
Required Roles
Restrict entry to members who hold specific Discord roles.
- Any mode: The member must have at least one of the specified roles to enter
- All mode: The member must have every specified role to enter
- Supports up to 10 required roles per giveaway
Use "any" mode to allow entry from multiple team roles (e.g., any of Red Team, Blue Team, Green Team). Use "all" mode when you want to require a combination (e.g., both Verified and Level 10).
Blacklist Roles
Prevent members with specific roles from entering. Useful for excluding staff, bots, or previously penalized members.
- Members with any blacklisted role are blocked from entry
- Blacklisted users see an ephemeral message explaining they are ineligible
Blacklist Users
Block specific users from entering a giveaway by Discord user ID. This is applied on top of role-based restrictions.
Bypass Roles
Members with a bypass role skip all requirement checks and can always enter. This is useful for:
- Server boosters who should always be eligible
- Staff members testing the giveaway
- VIP roles that override restrictions
Account Age
Set a minimum Discord account age for entry. Helps prevent alt account abuse.
- Configured in days (e.g., account must be at least 30 days old)
- Checked at the moment of entry, not at giveaway creation
Server Age
Set a minimum server membership duration for entry. Ensures only established members can participate.
- Configured in days (e.g., must have been in the server for at least 7 days)
- Uses the member's join date, not when they were first seen by the bot
Message Count
Require a minimum number of messages sent in the server before entry is allowed.
| Period | Description |
|---|---|
| Day | Messages sent in the last 24 hours |
| Week | Messages sent in the last 7 days |
| Month | Messages sent in the last 30 days |
| All | Total messages sent since the bot started tracking |
Message count requirements depend on the bot being present in the server and tracking messages. Counts are not retroactive — only messages sent while the bot is active are counted.
Server Boost
Require that the member is currently boosting the server with Discord Nitro.
Prior Win Limit
Limit how many times a user can win giveaways within a time window. Prevents the same users from winning repeatedly.
| Period | Description |
|---|---|
| Week | Maximum wins allowed in the last 7 days |
| Month | Maximum wins allowed in the last 30 days |
| All | Maximum wins allowed all-time in this server |
Bonus Entries
Bonus entries give certain members a higher chance of winning without guaranteeing a win. They work as weighted multipliers in the random selection pool.
How Bonus Entries Work
- Each eligible member starts with 1 base entry
- Bonus entries are configured per-role: assign a multiplier to any Discord role
- If a member has a role with a 3x bonus, they effectively have 3 entries in the drawing pool
- Multiple bonus roles stack additively: a member with a 2x role and a 3x role has 5 total entries (1 base + 1 bonus from 2x + 3 bonus from 3x... actually 2 + 3 = 5 entries)
Configuration
- Add bonus roles during giveaway creation or via the dashboard
- Each role is assigned a multiplier (2x through 10x)
- Up to 10 bonus roles per giveaway
- Bonus entries are shown in the giveaway embed so members know the odds
Use bonus entries to reward server boosters, active members, or long-time community members with better giveaway odds without fully restricting entry.
Winner Management
Winner Count
Each giveaway can have between 1 and 50 winners. All winners are selected simultaneously when the giveaway ends.
Winner Role
Optionally assign a Discord role to all winners. This is useful for:
- Granting access to a winners-only channel
- Visually distinguishing winners in the member list
- Triggering other bot automations based on role assignment
The role is assigned immediately when winners are announced.
Claim System
The claim system adds accountability to giveaways by requiring winners to actively claim their prize.
- Claim deadline: Set a time limit (e.g., 24 hours) for winners to claim by clicking a "Claim Prize" button on the embed
- Claim notification: Winners receive a DM with claim instructions and deadline
- Claim tracking: The embed updates in real-time as winners claim their prizes
Auto-Reroll
When the claim system is enabled, unclaimed prizes are automatically rerolled:
- After the claim deadline passes, any unclaimed winner slots are rerolled
- New winners are selected from the remaining entry pool
- The reroll process repeats until all prizes are claimed or the entry pool is exhausted
- Rerolled winners also receive the claim deadline and notification
Scheduling
Scheduled Start
Giveaways can be scheduled to start at a future date and time:
- Set a start date/time during creation
- The giveaway embed is posted when the scheduled time arrives
- Useful for coordinating giveaways across time zones or events
- The duration countdown begins when the giveaway actually starts, not when it is created
Recurring Giveaways
Set up giveaways that automatically repeat on a schedule:
| Frequency | Description |
|---|---|
| Daily | A new giveaway is created every day at the same time |
| Weekly | A new giveaway is created every week on the same day |
| Biweekly | A new giveaway is created every two weeks |
| Monthly | A new giveaway is created on the same day each month |
Recurrence Limit
Set a maximum number of recurrences to prevent indefinite repetition:
- After the limit is reached, no new giveaways are created
- The final giveaway runs to completion normally
- If no limit is set, the giveaway recurs indefinitely until manually cancelled
Recurring giveaways inherit all settings from the original — requirements, bonus entries, winner count, embed customization, and channel. Each recurrence is an independent giveaway with its own entry pool and winners.
Templates
Templates let you save giveaway configurations for reuse. Instead of configuring requirements, bonus entries, and customization from scratch every time, save a template and create giveaways from it instantly.
Template Commands
| Action | Description |
|---|---|
| Save | Save the current giveaway configuration as a named template |
| Load | Load a saved template and use it as the starting point for a new giveaway |
| Delete | Remove a saved template |
| Create from template | Create and immediately start a giveaway from a saved template, only specifying the prize and duration |
Templates store everything:
- Entry requirements (roles, age, messages, boost, win limits)
- Bonus entry configuration
- Winner count and claim settings
- Embed customization (color, thumbnail, footer, messages)
- Channel preference
Embed Customization
Every giveaway embed can be visually customized to match your server's branding.
| Option | Description |
|---|---|
| Color | Set the embed sidebar color using a hex code (e.g., #FF5733) |
| Thumbnail | Add a small image in the top-right corner of the embed (URL to an image) |
| Footer | Custom footer text displayed at the bottom of the embed |
| Winner Message | Custom message included when winners are announced (supports {winners} and {prize} placeholders) |
| Entry Confirmation | Custom ephemeral message shown to users when they successfully enter the giveaway |
Use the web dashboard's live embed preview to see exactly how your customization will look before publishing the giveaway.
Web Dashboard Management
The web dashboard provides a visual interface for complete giveaway management.
Creating Giveaways
- Full form-based creation with dropdowns, toggles, and text fields
- Live embed preview updates as you configure settings
- Role pickers with search for requirements and bonus entries
- Date/time pickers for scheduling
Editing Active Giveaways
- Modify prize text, duration, requirements, and customization while the giveaway is running
- Changes are reflected in the Discord embed immediately
- Cannot reduce winner count below the number of current entries
- Edit history is logged for audit purposes
Managing Completed Giveaways
- View winner list and claim status
- Manually reroll specific winner slots
- End or cancel active giveaways
- View entry list with requirement validation details
Template Management
- Create, edit, and delete templates from the dashboard
- Preview template configuration before using it
- Duplicate and modify existing templates
Limits
| Limit | Value |
|---|---|
| Maximum winners per giveaway | 50 |
| Minimum duration | 30 seconds |
| Maximum duration | 90 days |
| Maximum active giveaways per server | 25 |
| Maximum required roles | 10 |
| Maximum blacklist roles | 10 |
| Maximum bonus entry roles | 10 |
| Maximum bonus multiplier | 10x |
| Maximum templates per server | 25 |
Reaching the 25 active giveaway limit will prevent new giveaways from being created. End or cancel existing giveaways to free up slots.