Compatibility
Minecraft: Java Edition
Platforms
75% of ad revenue goes to creators
Support creators and Modrinth ad-free with Modrinth+Creators
Details
Boost your server community with exciting giveaways!
mGiveaway seamlessly integrates Discord and Minecraft,
allowing you to create engaging giveaways, set custom rewards,
and automatically deliver prizes to winners in-game.
mGiveaway - Discord Minecraft Giveaway Plugin
- Discord Integration: Slash commands for easy giveaway creation & management in Discord.
- Automated Giveaways: Schedule start/end times for fully automated giveaways.
- Configurable Requirements: Permissions, Groups/Roles (Vault), PlaceholderAPI values.
- In-Game Rewards: Automatic execution of commands for winners.
- Customizable Embeds: JSON configuration for rich Discord embed messages.
- Dynamic Placeholders: Embeds update with time left, entries, winners, etc.
- Giveaway Reminders: In-game broadcasts to notify players.
- Statistics Tracking: Track entries and wins.
- Extensive Text Config: config.yml for messages, UI text, etc.
- Update Checker: In-game notifications for new versions.
- Spigot: 1.17+ [Paper recommended]
- PlaceholderAPI: 2.11.6+
- Vault: 1.7+
- Download & Install: Get mGiveaway-VERSION.jar from GitHub Releases and place in /plugins folder.
- Restart your server
- Configure Discord Bot in config.yml:
- Create Bot at Discord Developer Portal.
- Get Bot Token ("Bot" tab).
- Paste Token into discord.bot.token in plugins/mGiveaway/config.yml
- Configure config.yml for:
- prefix: In-game prefix.
- broadcast_interval & broadcast_message: Giveaway reminders.
- discord.bot settings (token, status, activity, channels, etc.) - Token & giveaway_channel REQUIRED.
- discord.bot.command customization.
- discord.bot.giveaway_embed, giveaway_end_embed, log_embed: JSON Embed customization (use Discord Embed Builder).
- messages: All text messages.
- giveaways: Define giveaway settings & requirements.
- Reload Plugin: Use /mgwreload or restart server.
Use /create_giveaway (default) to create giveaways.
/create_giveaway name:<giveaway_name> prize:<prize_description> minecraft_prize:<minecraft_prize_placeholder> duration:<duration_string> winners:<number_of_winners> command:<reward_command> requirements:<true/false>
- name: REQUIRED: Internal giveaway name.
- prize: REQUIRED: Formatted prize description (Discord).
- minecraft_prize: REQUIRED: Plain-text prize (in-game broadcast).
- duration: REQUIRED: Duration string (e.g., 2d 30m).
- winners: REQUIRED: Number of winners.
- command: REQUIRED: First reward command (%player% placeholder).
- requirements: OPTIONAL: true/false (if the giveaway start should wait for requirements)
⚙️ Configuring Giveaways (config.yml - giveaways section):
See the example giveaway configuration (giveaways.5Diamonds) in the config.yml for a template. Key configuration options for each giveaway defined under the giveaways section:
- settings: - Settings for the giveaway
- scheduled_start: (Optional) Date and time to automatically start the giveaway at a future time. Format: dd/MM/yyyy HH:mm:ss (24-hour format). If not set, the giveaway starts immediately (or when manually forced).
- end_time: REQUIRED: Date and time to automatically end the giveaway. Format: dd/MM/yyyy HH:mm:ss (24-hour format).
- winners: REQUIRED: The number of winners for this giveaway.
- commands: REQUIRED: Reward commands (%player%).
- prize_formatted: REQUIRED: Discord prize description.
- minecraft_prize: REQUIRED: In-game prize text.
- requirements: (Optional)
- group: Vault Group/Role.
- <group_name>: value: true/false, formatted.
- permission: Vault Permission.
- <permission_node>: value: true/false, formatted.
- placeholder: PlaceholderAPI value.
- <placeholder_name>: over: <number> or under: <number>, formatted.
- group: Vault Group/Role.
For Giveaway and Giveaway End Embeds:
{TIME-LEFT}, {END-TIME}, {ENTRIES}, {WIN-COUNT}, {PRIZE}, {WINNERS}
For Log Embed:
{GIVEAWAY-NAME}, {ENTRIES-COUNT}, {PRIZE}, {COMMANDS}, {WINNERS-MENTIONS}, {ENTRIES-LIST}
After making any changes to the config.yml file, remember to use /mgwreload in-game to reload the plugin.
Sometimes, the plugin pauses itself because of runtime errors. To restart it just reload it ;)
- Vault: 1.7+
- Download & Install: Get
mGiveaway-VERSION.jar
from GitHub Releases and place in/plugins
folder. - Restart your server
- Configure Discord Bot in
config.yml
:- Create Bot at Discord Developer Portal.
- Get Bot Token ("Bot" tab).
- Paste Token into
discord.bot.token
inplugins/mGiveaway/config.yml
- Configure
config.yml
for:prefix
: In-game prefix.broadcast_interval
&broadcast_message
: Giveaway reminders.discord.bot
settings (token, status, activity, channels, etc.) - Token & giveaway_channel REQUIRED.discord.bot.command
customization.discord.bot.giveaway_embed
,giveaway_end_embed
,log_embed
: JSON Embed customization (use Discord Embed Builder).messages
: All text messages.giveaways
: Define giveaway settings & requirements.
- Reload Plugin: Use
/mgwreload
or restart server.
Use /create_giveaway
(default) to create giveaways.
/create_giveaway name:<giveaway_name> prize:<prize_description> minecraft_prize:<minecraft_prize_placeholder> duration:<duration_string> winners:<number_of_winners> command:<reward_command> requirements:<true/false>
- name: REQUIRED: Internal giveaway name.
- prize: REQUIRED: Formatted prize description (Discord).
- minecraft_prize: REQUIRED: Plain-text prize (in-game broadcast).
- duration: REQUIRED: Duration string (e.g.,
2d 30m
). - winners: REQUIRED: Number of winners.
- command: REQUIRED: First reward command (
%player%
placeholder). - requirements: OPTIONAL:
true
/false
(if the giveaway start should wait for requirements)
⚙️ Configuring Giveaways (config.yml
- giveaways
section):
See the example giveaway configuration (giveaways.5Diamonds
) in the config.yml
for a template. Key configuration options for each giveaway defined under the giveaways
section:
- settings: - Settings for the giveaway
scheduled_start
: (Optional) Date and time to automatically start the giveaway at a future time. Format:dd/MM/yyyy HH:mm:ss
(24-hour format). If not set, the giveaway starts immediately (or when manually forced).end_time
: REQUIRED: Date and time to automatically end the giveaway. Format:dd/MM/yyyy HH:mm:ss
(24-hour format).winners
: REQUIRED: The number of winners for this giveaway.commands
: REQUIRED: Reward commands (%player%
).prize_formatted
: REQUIRED: Discord prize description.minecraft_prize
: REQUIRED: In-game prize text.
requirements:
(Optional)group
: Vault Group/Role.<group_name>
:value: true/false
,formatted
.
permission
: Vault Permission.<permission_node>
:value: true/false
,formatted
.
placeholder
: PlaceholderAPI value.<placeholder_name>
:over: <number>
orunder: <number>
,formatted
.
For Giveaway and Giveaway End Embeds:
{TIME-LEFT}
,{END-TIME}
,{ENTRIES}
,{WIN-COUNT}
,{PRIZE}
,{WINNERS}
For Log Embed:
{GIVEAWAY-NAME}
,{ENTRIES-COUNT}
,{PRIZE}
,{COMMANDS}
,{WINNERS-MENTIONS}
,{ENTRIES-LIST}
- Paper server is required. This plugin won't work on Spigot
- After making any changes to the
config.yml
file, remember to use/mgwreload
in-game to reload the plugin. Sometimes, the plugin pauses itself because of runtime errors. To restart it just reload it ;)
*
discord.bot.activity
: Set the bot's activity type (e.g., PLAYING
, WATCHING
, LISTENING
, STREAMING
).
* discord.bot.activity_text
: Set the text for the bot's activity.
* discord.bot.activity_url
: Set the URL if using STREAMING
activity.
* discord.bot.giveaway_channel
: Enter the ID of the Discord text channel where giveaway embeds will be posted.
* discord.bot.log_embed_channel
: Enter the ID of the Discord text channel for giveaway end logs.
* discord.bot.log_embed_color
: Customize the color of the giveaway log embed.
* discord.bot.command.name
: Customize the Discord slash command name (default: create_giveaway
).
* discord.bot.command.description
: Customize the Discord slash command description.
* discord.bot.giveaway_embed
: Customize the JSON structure of the giveaway embed message. See example in config.yml
and placeholders below. (use this site for easier embed creation)
* discord.bot.giveaway_end_embed
: Customize the JSON structure of the giveaway end embed message. See example and placeholders.
* giveaways
: Configure your giveaways under this section. See example giveaway (10KluczyPodniebnych
) in config.yml
for details on setting up giveaway settings and requirements.
- Reload Plugin:
- Either use a plugin or restart your server
- Plugin example: PlugManX
Slash Command Usage (Discord):
Use the configured slash command (default: /reate_giveaway
) in your Discord server to create a giveaway.
-
/create_giveaway name:<giveaway_name> prize:<prize_description> prize_placeholder:<placeholder_text> duration:<duration_string> winners:<number_of_winners> command:<reward_command> requirements:<true/false>
name
: The name of the giveaway (used internally, e.g., in config).prize
: The formatted description of the prize to display in the Discord embed.prize_placeholder
: A short placeholder for the prize used in in-game broadcast messages.duration
: The giveaway duration (e.g.,1mo 2w 7d 5h 30m
). Units:mo
(months),w
(weeks),d
(days),h
(hours),m
(minutes),s
(seconds).winners
: The number of winners for the giveaway.command
: The first command to execute for each winner (use config for multiple commands). Placeholders:%player%
(winner's Minecraft username).requirements
: (Optional,true
orfalse
, defaults tofalse
). Set totrue
if you want to manually add requirements to the giveaway in theconfig.yml
before it starts. Iffalse
, the giveaway starts immediately after creation.
Configuring Giveaways (config.yml
- giveaways
section):
See the example giveaway configuration (giveaways.5Diamonds
) in the config.yml
for a template. Key configuration options for each giveaway:
settings.scheduled_start
: (Optional) Date and time to automatically start the giveaway (format:dd/MM/yyyy HH:mm:ss
). If not set, the giveaway starts immediately (or when forced).settings.end_time
: REQUIRED: Date and time to automatically end the giveaway (format:dd/MM/yyyy HH:mm:ss
).settings.winners
: REQUIRED: Number of winners.settings.commands
: REQUIRED: List of commands to execute for each winner. Placeholders:%player%
.settings.prize_formatted
: REQUIRED: Formatted prize description for Discord embed.settings.prize_placeholder
: REQUIRED: Short placeholder for prize in in-game broadcasts.requirements
: (Optional) Define requirements for giveaway entry:group
: Role/group based requirements (using Vault).permission
: Permission-based requirements (using Vault).placeholder
: PlaceholderAPI value-based requirements (numerical comparisons).- See
config.yml
example for detailed syntax and options for defining requirements, includingvalue
,formatted
(for display),over
/under
(for number placeholders).
Embed JSON Placeholders (discord.bot.giveaway_embed
, discord.bot.giveaway_end_embed
):
Use these placeholders in your embed JSON configurations to dynamically display giveaway information:
{TIME-LEFT}
: Time remaining until giveaway ends (Discord relative timestamp).{END-TIME}
: End time of the giveaway (formatted date and time).{ENTRIES}
: Number of current giveaway entries.{WIN-COUNT}
: Number of winners.{PRIZE}
: Formatted prize description.{WINNERS}
: (Giveaway end embed only) List of winners (Discord mentions and usernames).