mGiveaway is a plugin that allows you to create and manage Discord giveaways from Minecraft. It then automatically rewards the winners in-game. Uses slash commands for easy giveaway creation and button/modal interactions for user-friendly entry.
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.
Use /create_giveaway (default) to create giveaways.
/create_giveaway name: prize: minecraft_prize: duration: winners: command: requirements:
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:
{TIME-LEFT}, {END-TIME}, {ENTRIES}, {WIN-COUNT}, {PRIZE}, {WINNERS}
{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 ;)
mGiveaway-VERSION.jar from GitHub Releases and place in /plugins folder.config.yml:discord.bot.token in plugins/mGiveaway/config.ymlconfig.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./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>
2d 30m).%player% placeholder).true/false (if the giveaway start should wait for requirements)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:
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.
{TIME-LEFT}, {END-TIME}, {ENTRIES}, {WIN-COUNT},{PRIZE}, {WINNERS}{GIVEAWAY-NAME}, {ENTRIES-COUNT}, {PRIZE}, {COMMANDS},{WINNERS-MENTIONS}, {ENTRIES-LIST}
config.yml file, remember to use /mgwreload in-game to reload the plugin.
* 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.
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 or false, defaults to false). Set to true if you want to manually add requirements to the giveaway in the config.yml before it starts. If false, 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).config.yml example for detailed syntax and options for defining requirements, including value, 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).