Skip to main content

Giveaways

Easily create a giveaway in your server.

Giveaways
Easily create a giveaway in your server
This module is open-source.
This module is storing data in your bot's database.
This module creates 2 top-level Slash-Commands on your server.
This module has 2 configuration files.
This module is being actively used on over 6.2K other servers on SCNX.
This module is included for free in every plan. Learn more about prices.

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:

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

Understand the documentation
In these docs, 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.
CommandDescription
/gmessagesUsing 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:
  • With required-messages you can require users to send a configured amount of messages before they can enter the giveaway.
  • Require users to have a role using required-role - users without this role won't be able to join the giveaway.
  • Use sponsor and sponsor-link to display an optional sponsor in the giveaway - you can always change your configuration to influence how giveaway messages will appear.
/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

caution

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.

FieldDescription
Giveaway Requirement Bypass RolesUsers with these roles will be able to bypass requirements for giveaways and join any giveaway on your server.
Message Count ModeMode in which messages for giveaway requirement should get counted.
  • all: In this mode, every message on your server will be counted toward giveaway requirements.
  • whitelist: In this mode, only messages sent in configured channels (in the "Whitelist" field) will be counted towards requirements.
  • blacklist: In this mode, messages will be counted in every channel on your server, unless the channel is configured in the blacklist configuration field.
BlacklistThis 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.
WhitelistThis 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 entriesFor 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.
  • First field: Role ID
  • Amount of additional* entries members with this role will receive.
Send DM-Message to winnerIf 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.

FieldDescription
Giveaway-MessageThis 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 requirementsThis 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 messageThis 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 endedThe original giveaway message will be edited to this one when the giveaway has ended.
You can find all available parameters in your dashboard.
Win messageThis 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 messageThis message will be sent when a giveaway ends, but there aren't any eligible winners.
Confirmation messageThis 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 messageThis 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 contentThis is the content of the button displayed below giveaway messages. Clicking on this button allows users to join the giveaway.
Winner DM MessageThis 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 and View 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.