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: prize: minecraft_prize: duration: winners: command: requirements:
- 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.jarfrom GitHub Releases and place in/pluginsfolder. - 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.tokeninplugins/mGiveaway/config.yml
- Configure
config.ymlfor:prefix: In-game prefix.broadcast_interval&broadcast_message: Giveaway reminders.discord.botsettings (token, status, activity, channels, etc.) - Token & giveaway_channel REQUIRED.discord.bot.commandcustomization.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
/mgwreloador 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.ymlfile, remember to use/mgwreloadin-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,trueorfalse, defaults tofalse). Set totrueif you want to manually add requirements to the giveaway in theconfig.ymlbefore 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.ymlexample 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).
