Giveaways
Easily create a giveaway in your server.
Features
- Run sweepstakes and raffles on your server.
- Require members to send a specified amount of new messages to enter a giveaway (you can also white- / blacklist channels in which messages count).
- Require your members to have specified roles to enter a giveaway.
- Let users with configured roles skip the requirements of giveaways.
- Grant additional entries to members with configured roles.
Setup
- Please set up permissions for the
/gmanage
commands to avoid unauthorized usage of them. - Make sure that the bot has the
View channels
,Manage messages
,Embed links
&Send messages
permissions on every channel that giveaways will be created in. - Giveaways can't be started in Announcement channels.
Usage
As a giveaway manager, you can:
- Create a new giveaway with
/gmanage start
. - End a giveaway early with
/gmanage end
. - Randomly select new winners for an already ended giveaway with
/gmanage reroll
.
Your users can view their current progress towards giveaway message requirements with /gmessages
.
Giveaway requirements (like role or new message count requirements) are evaluated at the time of join and displayed to users. When drawing winners, requirements are always reevaluated again, meaning that users who have - for example - lost their role after joining the giveaway, won't be able to win.
Commands
name:<Type>
is an option of a slash-command with name name
and the type Type
. Options that not required, are described as [name:<Type>]
. If the action of a command is vastly different between required and not-required options, we might list them separately.Examples
/moderate ban user:<Member>
: This command (/moderate ban) has an required option with the name "user" that only accepts one member as a value./moderate ban victim:<Member> reason:<Text>
: This command (/moderate ban) has an required option with the name "victim" that only accepts one member as a value and another required option with the name "reason" that accepts any text as an value./moderate ban victim:<Member> reason:<Text> [proof:<Attachment>]
: This command (/moderate ban) has an required option with the name "victim" that only accepts one member as a value, another required option with the name "reason" that accepts any text as an value and a not-required option with the name "proof" which allows one attachment as its value.
Command | Description |
---|---|
/gmessages | Using this command, your users can view their progress towards current message requirements of currently running requirements. |
/gmange start channel:<Channel> price:<Text> duration:<TimeDuration> winner-count:<Number> [required-messages:<Number>] [required-role:<Role>] [sponsor:<Text>] [sponsorlink:<Text>] | Starts a new giveaway. Please make sure that the channel you want is set up correctly. The price can be anything you want, but please make sure you comply with your applicable laws and regulation. Next, you'll need to input the amount of users that will be drawn randomly. We recommend starting multiple giveaways for multiple prices. Next, enter a duration. Once this duration has passed, the winners will be drawn automatically and the giveaway will end. You can enter the duration in the duration format. Use optional parameters to add requirements to your giveaway:
|
/gmanage end msg-id:<GiveawayMessageID> | Ends a currently active giveaway early, drawing the winners after execution of the command. |
/gmanage reroll msg-id:<GiveawayMessageID> [winner-count:<Number>] | Selects a specified amount of new winners for giveaway that has already ended. Please note that users that have already won in the original drawing (or in another execution of this command) can be selected randomly again. |
Configuration
This module has multiple configuration files. Please review them below.
Module configuration
Rewarding users for invites using multiple entries to giveaways is in violation of Discord's Developer Policy and our Terms of Service; violations will lead to your server (and your account) being banned from SCNX. Report abuse to [email protected].
In this configuration file, you can configure the functionality of this module. Open it in your dashboard.
Field | Description |
---|---|
Giveaway Requirement Bypass Roles | Users with these roles will be able to bypass requirements for giveaways and join any giveaway on your server. |
Message Count Mode | Mode in which messages for giveaway requirement should get counted.
|
Blacklist | This field will only work if "Message Count Mode" was set to "blacklist". Messages sent in one of these channels won't be counted towards the message count requirement of a giveaway. |
Whitelist | This field will only work if "Message Count Mode" was set to "whitelist". Only messages sent in these channels will be counted towards the message count requirements of a giveaway. |
Multiple entries | For every role configured here (that a user has) they will receive additional entries. By default, every user has one entry. For every one of their roles configured here, they can recive additional entries, depending on this configuration.
|
Send DM-Message to winner | If enabled, winners will receive a DM in addition to a ping in the giveaway channel when they win. You can configure the message in the [module messages](#configuration-strings} configuration file. |
Module messages
In this configuration file, you can configure how messages from this module should appear. Open it in your dashboard.
Field | Description |
---|---|
Giveaway-Message | This message will be sent, when a new giveaway is started without any requirements. A button to join the giveaway will be added below the giveaway message. You can find all available parameters in your dashboard. |
Giveaway-Message with requirements | This message will be sent, when a new giveaway is started with requirements (such as required roles or required messsage count). A button to join the giveaway will be added below the giveaway message. You can find all available parameters in your dashboard. |
Requirement not passed message | This message will be sent to a user that tries joining a giveaway but does not meet the requirements (such as required roles or required messsage count) to join. You can find all available parameters in your dashboard. |
Giveaway-Message after the giveaway ended | The original giveaway message will be edited to this one when the giveaway has ended. You can find all available parameters in your dashboard. |
Win message | This message will be sent when a giveaway ends and will include the winners of the giveaway. You can find all available parameters in your dashboard. |
No winners message | This message will be sent when a giveaway ends, but there aren't any eligible winners. |
Confirmation message | This message will to an user when they join a giveaway and confirms their entry. You can find all available parameters in your dashboard. |
Already entered message | This message will to an user when a user tries joining a giveaway, but they already entered before. A button to leave the giveaway will be attached. You can find all available parameters in your dashboard. |
Button content | This is the content of the button displayed below giveaway messages. Clicking on this button allows users to join the giveaway. |
Winner DM Message | This will only work, if you have enabled the "Send DM-Message to winner" configuration option in the module configuration configuration file. This message will be sent to the winners via DM. You can find all available parameters in your dashboard. |
Troubleshooting
The messages for entry requirements are not being calculated correctly
- Make sure that you have configured the counting mode correctly.
- If you set "blacklist" as the counting mode: Make sure the channel you want messages to be counted in isn't blacklisted.
- If you set "whitelist" as the counting mode: Make sure the channel you want messages to be counted in is configured in the whitelist.
- Make sure the bot has
Read messages
andView message history
permissions on the channel you want messages to be counted in.
Additional entries are not working correctly (/ entries are calculated wrongly)
First, Make sure that you have configured additional entries correctly.
Every user starts with one entry by default. For every role configured in the additional entries field they will receive additional entries. The amount received depends on your configuration. It's currently not possible to grant less than one additional entry to users.
How does SCNX determine who wins? / Can I get a certificate of Authenticity? / Can giveaways be rigged?
When a giveaway ends (or a reroll is triggered) your bot will first evaluate the requirements (and with that recalculate their entries), ensuring that every user still meets.
Every eligible user will then be added into a digital equivalent of a box. Users with multiple entries will be added to this box multiple times, depending on the amount of their entries.
Next, we will draw a user from the box. If this user already won in this drawing, we'll redraw until the amount of winners is correct.
As server admins can manipulate winning changes, requirements and more, we're unable to generate a certificate of Authenticity or similar documentation. The giveaway organizer is required to comply with local laws and regulation, including our own Terms of Service. If you
think that a specific server is using our offering in a way that is not compliant, please report it to [email protected] and we will take appropriate action.
Stored data
For every giveaway the following data will be saved:
- An unique integer identifying the database entry
- The ID of the giveaway message
- The ID of the channel the giveaway has been started in, based on the
channel
command parameter - The exact time the giveaway will end / has ended, based on the
duration
command parameter - Whether the giveaway has ended yet
- The price of the giveaway, based on the
price
command parameter - The requirements of the giveaway (like which roles and how many messages are required, if enabled), based on your command parameters
- If the giveaway requires new messages for entry:
- The amount of messages sent by every user after the giveaway has started
- Data about every valid entry to the giveaway:
- ID of the user who entered the giveaway
- The amount of entries they entered the giveaway with, based on your configuration
- Whether they entered the giveaway using the requirement skip configuration option
- The User ID of the sponsor (if not specified the creator) of the giveaway
- The provided link to the sponsor's website, based on the
sponsor-url
command parameter - The amount of winners, based on the
winner-count
command parameter - Metadata about the entry (date when created and last updated)
There is no way to remove a giveaway from the database (you can always delete the giveaway-message regardless). To remove all giveaways, purge the module database.