★ VoidGiveaway – Scheduled Giveaways, BossBar, MySQL, Webhooks & Requirements ★ icon

★ VoidGiveaway – Scheduled Giveaways, BossBar, MySQL, Webhooks & Requirements ★ -----

The ultimate giveaway plugin for Minecraft 1.12 – 1.21.8 with GUI History, PlaceholderAPI support



[​IMG]
The Ultimate Custom Giveaway System for Spigot & Paper Servers

Tired of boring, unorganized giveaways? With VoidGiveaway, you can finally bring
a
professional, configurable, and fun giveaway experience to your server.


From player-driven item giveaways to admin-hosted reward events.

VoidGiveaway makes rewarding your community simple and engaging!



[​IMG]
  • ✔ Player Giveaways – Any player can start a giveaway with the item in their hand. Perfect for community events!
  • ✔ Admin Giveaways – Start giveaways with predefined rewards: items, ranks, economy money, or messages.
  • ✔ Vault & Economy Integration – Charge entry fees and reward money automatically. Built-in fallback if Vault is missing.
  • ✔ Predefined Rewards – Create unlimited “reward packages” in the config (items, commands, messages).
  • ✔ Broadcast Announcements – Automatic broadcasts with placeholders: %player%, %item%, %winner%, %time%.
  • ✔ Fully Configurable – Customize participant limits, durations, cooldowns, entry costs, and messages.
  • ✔ Player-Friendly – Clear commands and error handling like “already joined” or “inventory full.”
  • ✔ Multi-Version Support – Compatible from 1.12 to 1.21+.
  • ✔ PlaceholderAPI – Full support for custom placeholders.
  • ✔ Rolling Titles – Participant names roll across the screen before revealing the winner!
  • ✔ Discord Webhook Integration – Send giveaway announcements, countdowns, winners, and cancellations directly to a Discord channel.
  • ✔ Safe Reload – Reloading the plugin during an active giveaway will not cause players to lose rewards.
  • ✔ Giveaway Top – Show the top 10 players with the most wins and participations.
  • ✔ Player Statistics – Players can view their own wins, participations, and last win date.
  • ✔ MySQL & SQLite Support – Store all player stats in either a MySQL database or a local SQLite file.
  • ✔ BossBar – Show live giveaway countdowns and prize info in the BossBar, fully customizable in config.yml.
  • ✔ ActionBar – Show live giveaway countdowns and participant info in the ActionBar, fully customizable in config.yml.
  • ✔ Admin Toggle Command – Disable or enable player-started giveaways anytime with /admingiveaway toggle.
  • ✔ History – Browse all past giveaways in a GUI with details about host, reward, winner, and date (admin only).
  • ✔Blocked Items – Prevent specific items from being used in giveaways by blocking them via material, custom name, or enchantments (with level conditions).
  • ✔ Scheduled Giveaways – Automatically start giveaways at set times (with timezone support), send pre-start countdown announcements & titles, and fully customize reward and duration.


[​IMG]

  • /giveaway join – Join the current giveaway
  • /giveaway start – Start your own giveaway with the item in your hand
  • /giveaway help – Show the help menu for players
  • /giveaway stats – View your personal giveaway statistics such as wins, participations, and last win date
  • /giveaway top – Display the top 10 players with the most giveaway wins and participations

  • /admingiveaway start item – Start a giveaway with the item in your hand
  • /admingiveaway start <id> – Start a predefined giveaway from config
  • /admingiveaway stop – Stop the current giveaway
  • /admingiveaway reload – Reload the plugin configuration
  • /admingiveaway history – View all past giveaways in a history GUI
  • /admingiveaway toggle - Toggle if players can start giveaways.
  • /admingiveaway information – Shows information of the current giveaway.
  • /admingiveaway help – Show the admin help menu



[​IMG]

Code (YAML):

voidgiveaway.admin.stop
voidgiveaway.admin.access
voidgiveaway.admin.information
voidgiveaway.admin.reload
voidgiveaway.admin.toggle
voidgiveaway.admin.history
voidgiveaway.admin.start
voidgiveaway.player.start
voidgiveaway.use
voidgiveaway.stats
voidgiveaway.top
voidgiveaway.bypass.cooldown
voidgiveaway.bypass.cost


[​IMG]

Define your giveaways in config.yml and messages in messages.yml.
Here’s the original config.yml and message.yml:


Code (YAML):
# VoidGiveaway Configuration

# General Giveaway Settings
giveaway
:
  # Maximum number of players allowed to join a giveaway. Set to 0 for unlimited.
  max-participants
: 50
  # Duration in seconds that players have to join the giveaway.
  duration
: 60
  # Entry cost to join a giveaway. Requires Vault and an economy plugin. Set to 0 or less to disable.
  entry-cost
: 0
  # If true, players CANNOT join giveaways that have a cost > 0 if Vault/Economy is missing or broken.
  # If false, players can join for free in that scenario (a warning will be logged).
  economy-required
: false # Set to true if you strictly require economy for paid giveaways.
  # Cooldown in seconds before another giveaway can be started.
  cooldown
: 300
  # When a giveaway is ending with no participants should the host get the item back.
  refund-without-participants
: true
  # Save the data from players: wins and participants
  # SQLite is the normal data saving, mysql is faster but requires a database.
  storage
:
    type
: "sqlite"   # "sqlite" = default (file-based), "mysql" = external DB (faster)
  mysql
:
    host
: "localhost"   # MySQL server address
    port
: 3306         # MySQL server port
    database
: "voidgiveaway" # Database name
    username
: "root"   # Database user
    password
: "password" # Database password
  discord
:
    webhook-url
: "https://discord.com/api/webhooks/XXXXX/XXXXX"
    enabled
: false                 # true = enable Discord messages
    send-countdown-updates
: true   # true = send countdown messages
    messages
:
      giveaway-start
: " **New Giveaway!** Host: %host% | Prize: %prize% | Time: %time%s"
      # %host% = giveaway host, %prize% = reward, %time% = duration (s)
      countdown
: "⏳ %prize% – %time%s left"
      # Sent during countdown if enabled
      winner
: " Prize: %prize% | Winner: %winner%"
      # %winner% = player who won
      no-winner
: " No one joined the giveaway for %prize%"
      cancelled
: "❌ Giveaway for %prize% was cancelled"
  # Blocked Items – Players cannot use these items to start giveaways.
  # You can block items by:
  # - Material (e.g. DIAMOND_PICKAXE)
  # - Display name (optional, must match exactly with colors)
  # - Enchantments with conditions (e.g. >=, <=, >, <, or exact number)
  #
  # Examples:
  blocked-items
:
    1
:
      material
: DIAMOND_PICKAXE
      name
: "&bSuper Pickaxe"
    2
:
      material
: NETHERITE_SWORD
    3
:
      material
: DIAMOND_SWORD
      enchantments
:
        DAMAGE_ALL
: ">=5"
        FIRE_ASPECT
: "<=1"




history
:
  gui
:
    title
: "&bGiveaway History"
    size
: 54 # Always multiple of 9 (27, 36, 45, 54)
    # How many history entries should be shown per page
    per-page
: 21
    # Item template for history entries
    entry-item
:
      material
: PAPER
      name
: "&eGiveaway #%id%"
      lore
:
        - "&7Host
: &f%host%"
        - "&7Winner
: &a%winner%"
        - "&7Prize
: &b%reward%"
        - "&7Date
: &f%date%"
    # Navigation Items
    navigation
:
      previous-page
:
        material
: ARROW
        name
: "&ePrevious Page"
        slot
: 45
        persistent-key
: "voidgiveaway:prev"
      next-page
:
        material
: ARROW
        name
: "&eNext Page"
        slot
: 53
        persistent-key
: "voidgiveaway:next"
      close
:
        material
: BARRIER
        name
: "&cClose"
        slot
: 49
        persistent-key
: "voidgiveaway:close"




visuals
:
  actionbar
:
    enabled
: true
    # Whether the Action Bar is enabled during giveaways.
    # If true, players will see live giveaway updates in their Action Bar.
    show-to-all
: false
    # Who should see the Action Bar:
    # true  = all online players
    # false = only participants who joined the giveaway
    interval
: 20
    # How often the Action Bar updates (in ticks).
    # 20 ticks = 1 second.
    format
: "&a%joined% players entered &8| Ends in &f%time%"
    # The text shown in the Action Bar.
    # Placeholders:
    #   %time%   = Time left until the giveaway ends (seconds)
    #   %joined% = Number of players who joined
    #   %reward% = Reward name
  bossbar
:
    enabled
: true
    # Whether the Boss Bar is enabled during giveaways.
    # If true, players will see a Boss Bar at the top of their screen.
    show-to-all
: true
    # Who should see the Boss Bar:
    # true  = all online players
    # false = only participants who joined the giveaway
    color
: GREEN
    # Default Boss Bar color. Options: BLUE, GREEN, PINK, PURPLE, RED, WHITE, YELLOW.
    style
: SOLID
    # Boss Bar style.
    # Options: SOLID, SEGMENTED_6, SEGMENTED_10, SEGMENTED_12, SEGMENTED_20.
    countdown
: true
    # If true, the Boss Bar will act as a countdown (progress decreases as time runs out).
    text
: "&6Win %reward%! &e%joined% players &8– Ending in &c%time%"
    # The text shown in the Boss Bar.
    # Placeholders:
    #   %time%   = Time left until the giveaway ends (seconds)
    #   %joined% = Number of players who joined
    #   %reward% = Reward name



placeholders
: # Default values when no giveaway is currently running
  name
: "&cNo Giveaway Running"
  # Placeholder: %voidgiveaway_name%
  # → Displays the name of the current giveaway reward.
  # If no giveaway is running, this fallback text is shown.
  host-name
: "&cx"
  # Placeholder: %voidgiveaway_host_name%
  # → Shows the name of the player who started the giveaway.
  # If no giveaway is running, this fallback text is used.
  time-left
: "&cx"
  # Placeholder: %voidgiveaway_time_left%
  # → Shows the remaining time until the giveaway ends (in seconds).
  # If no giveaway is running, this fallback text is shown.
  current-entries
: "&ax"
  # Placeholder: %voidgiveaway_current_entries%
  # → Number of players who joined the current giveaway.
  # If no giveaway is running, this fallback text is shown.

# --- Available Placeholders ---
# %voidgiveaway_name%            → Name of the giveaway reward
# %voidgiveaway_max_entries%     → Maximum number of allowed participants
# %voidgiveaway_time_left%       → Remaining time (in seconds)
# %voidgiveaway_cost%            → Entry cost to join the giveaway
# %voidgiveaway_host_name%       → Name of the host (player who started it)
# %voidgiveaway_current_entries% → Current number of participants

rolling-animation
:
  enabled
: true       # Enables or disables the rolling animation when choosing the winner.
  # If set to "false", the winner will be shown instantly without animation.
  rolling
:
    title
: "&b&lRolling..."     # The title shown to ALL players while the plugin is "rolling" through names.
    # Usually something suspenseful like "Rolling..." or "Choosing Winner...".
    subtitle
: "&e%name%"         # The subtitle where random participant names appear.
    # %name% changes every few ticks until the winner is finalized.
  winner
:
    title
: "&a&lCongratulations!" # The final title once the actual winner is selected.
    # Example: "Congratulations!" or "Winner!".
    subtitle
: "&e%name%"           # Displays the REAL winner's name here.
    # %name% is replaced with the actual winning player.


timezone
: "Europe/Berlin"

scheduled-giveaways
:
  '1'
:
    time
: '11:15'
    reward
: diamond_pack
    duration
: 3m
    announcements
:
      '1'
:
        before
: 2m
        message
: '&eThe &bDiamond Giveaway &estarts in 2 minutes!'
        title
:
          main
: '&bDiamond Giveaway'
          sub
: '&eStarting soon'
      '2'
:
        before
: 30s
        message
: '&cOnly 30 seconds until the Diamond Giveaway!'
        title
:
          main
: '&cGet ready!'
          sub
: '&e30 seconds left'



# Broadcast Settings
broadcast
:
  # Enable automatic broadcasts about the active giveaway.
  enabled
: true
  # Interval in seconds between broadcasts. Must be less than giveaway.duration.
  interval
: 15


# Predefined Item Giveaways (for /giveaway admin start <id>)
# You can define rewards here that admins can start giveaways for.
# Rewards can include an item, commands to run for the winner (run from console),
# and messages to send directly to the winner. At least one must be defined.
# Placeholders for commands/messages: %player% (winner's name), %uuid% (winner's UUID)


predefined-giveaways
:
  # Example 1: Item only
  diamond_pack
:
    name
: "&b&lShiny Diamonds!" # Overall name for the reward package (used if no item, or as default item name)
    material
: DIAMOND
    amount
: 16
    item-name
: "&b&l16 Shiny Diamonds" # Optional: Specific name for the item itself
    lore
:
     - "&7A special giveaway item."
      - "&eGet them while they're hot!"

  # Example 2: Item and Commands
  god_sword
:
    name
: "&c&lBlade of the Void Package" # Overall name
    material
: NETHERITE_SWORD
    amount
: 1
    item-name
: "&c&lBlade of the Void" # Specific item name
    lore
:
     - "&4A powerful weapon"
    # enchantments: # You would need to add enchantment parsing back to ConfigManager if needed
    #   DAMAGE_ALL: 5
    #   FIRE_ASPECT: 2
    commands
: # List of commands to run (from console) for the winner
      - "say Congratulations %player% on winning the God Sword giveaway!"
      - "lp user %player% parent addtemp godly 1d" # Example: Give temp rank
      - "eco give %player% 500" # Example: Give economy money

  # Example 3: Commands and Messages only (no item)
  vip_rank
:
    name
: "&a&l[VIP] Rank Trial (7 Days)" # Overall name for this reward
    # No material/amount/item-name/lore
    commands
:
     - "lp user %player% parent settrack default vip" # Set track to grant VIP
      - "lp user %player% parent addtemp vip 7d" # Add VIP for 7 days
      - "broadcast &e%player% &ahas just won a 7-day VIP trial!"
    messages
: # List of messages to send directly to the winner
      - "&aCongratulations! You've won a 7-day VIP trial!"
      - "&aUse /ranks to see your new perks."
      - "&7Your trial expires in 7 days."

  # Example 4: Messages only (no item or commands)
  welcome_message
:
    name
: "&eSpecial Welcome Message"
    messages
:
     - "&eWelcome %player%! We're glad to have you!"
      - "&eThanks for participating in the giveaway!"

# Settings related to messages can be found in messages.yml


Code (YAML):
# VoidGiveaway Messages - Use '&' for color codes.
# %player% = player name, %item% = reward description (item name, configured name, or fallback),
# %time% = time remaining/cooldown, %cost% = entry cost, %winner% = winner name.
# %prefix% is added automatically by most message functions. Don't add it manually unless specified (like broadcast-message).

prefix
: "&8[&bVoidGiveaway&8] &r"

# General Messages
no-permission
: "&cYou do not have permission to use this command."
player-only
: "&cThis command can only be run by a player."
reload-success
: "&aConfiguration and messages reloaded successfully."
reload-fail
: "&cFailed to reload configuration. Check console for errors."
# Updated invalid command messages
invalid-player-command
: "&cInvalid command usage. Use &e/giveaway help&c."
invalid-admin-command
: "&cInvalid command usage. Use &e/admingiveaway help&c."
invalid-admin-command-usage
: "&cInvalid usage: &e%usage%&c." # Specific usage error for admin commands
generic-error
: "&cAn unexpected error occurred. Please contact an administrator."
giveaway-cancelled
: "&cThe current giveaway for &b%item%&c has been cancelled."

# Giveaway Status
no-giveaway-active
: "&cThere is no giveaway currently active."
giveaway-already-active
: "&cA giveaway is already in progress!"
giveaway-cooldown
: "&cYou must wait %time% seconds before starting another giveaway."
not-enough-space
: "&cYour inventory was full! Some or all of the item reward was dropped at your location."

# Player Starting Giveaways (/giveaway start)
giveaway-start-player
: "&aYou have started a giveaway for %item%&a! Players have %time% seconds to join."
player-start-broadcast
: "&e%player%&e has started a giveaway for &b%item%&e! Type &a/giveaway join&e to enter! Ends in &b%time%&e seconds."
must-hold-item
: "&cYou must be holding an item in your main hand to start this type of giveaway."

# Giveaway Top
top-header
: "§a Top %limit% Giveaway Winners:"
top-empty
: "§e⚠ No stats available yet."
top-line
: "§7%rank%. §f%name% §8- §aWins: %wins% §7| Participated: %participated%"

# Admin Toggle Giveaways (/admingiveaway toggle)
giveaways-enabled
: "&aGiveaways are enabled for all players."
giveaways-disabled
: "&cGiveaways are disabled for all players."

# Admin Starting Giveaways (/admingiveaway start)
giveaway-start-admin
: "&aYou have started an admin giveaway for %item%&a! Players have %time% seconds to join."
admin-start-broadcast
: "&dAn admin&d has started a giveaway for &b%item%&d! Type &a/giveaway join&d to enter! Ends in &b%time%&d seconds."
predefined-not-found
: "&cCould not find a predefined giveaway with the ID '&e%id%&c'."
predefined-item-invalid
: "&cThe reward configuration for '&e%id%&c' is invalid or empty. Check console/config."
player-only-admin-item
: "&cYou must be a player to start an admin giveaway using the 'item' type."
must-hold-item-admin
: "&cYou must be holding an item to start an admin 'item' giveaway."
giveaway-start-failed
: "&cFailed to start the giveaway. Check configuration and console logs."

# Admin Stopping Giveaways (/admingiveaway stop)
giveaway-stop-admin
: "&aYou have stopped the current giveaway."
no-giveaway-to-stop
: "&cThere is no giveaway currently active to stop."

# Joining Giveaways (/giveaway join)
giveaway-join-success
: "&aYou have joined the giveaway for %item%&a!"
giveaway-join-success-cost
: "&aYou have joined the giveaway for %item%&a! &e%cost%&a has been deducted from your account."
already-joined
: "&cYou have already joined this giveaway."
giveaway-full
: "&cSorry, the giveaway is full."
not-enough-money
: "&cYou need at least &e%cost%&c to join this giveaway."
join-cost-info
: "&eJoining this giveaway costs &b%cost%&e."
economy-disabled
: "&cJoining failed: This giveaway requires payment, but the economy system is unavailable."

# Blocked Item
blocked-item
: "&cThis item is not allowed to be used in giveaways!"

# Scheduled Giveaways
scheduled-start
: "&aA scheduled giveaway has started! Reward: %item% &7(Duration: %time%)"
scheduled-broadcast
: "%prefix%&eThe &6&lDaily Keyall &eis active! Type &6&l/giveaway join&e to enter! Ends in &6&l%time%&e."

# Giveaway End/Win
giveaway-ended-no-participants
: "&cThe giveaway for %item%&c ended with no participants."
giveaway-winner-broadcast
: "&aThe giveaway for &b%item%&a has ended! Congratulations to &e%winner%&a!"
giveaway-win-message
: "&aYou won the giveaway for &b%item%&a!" # Base message, specific reward messages/commands are separate

# Broadcast Messages
# %item% here will use the reward description from GiveawayManager.getRewardDescription()
broadcast-message
: "%prefix%&eA giveaway for &b%item%&e is active! Type &a/giveaway join&e to enter! Ends in &b%time%&e."

# Stats messages
no-stats
: "&cYou dont have any stats."

# Top Message (/giveaway top) - Player Focused
top-message
:
 - "&b==== Top %limit% Giveaway Winners ===="
  - "%rank%. &e%name% &7- Wins: &f%wins% &7| Participated: &f%participated%"
  - "&7-----------------------------------"
  - "&7Use &f/giveaway top <page> &7for more."

# Stats Message (/giveaway stats) - Player Focused
stats-message
:
 - "&b&lGiveaway Stats for %name%"
  - "&f"
  - "&fWins
: &a%wins%"
  - "&fParticipated
: &2%participated%"
  - "&fLast Win
: &e%last_win%"
  - "&7&oJoin more giveaways to get the top player"
  - "&7&oin /giveaway top"

# Help Message (/giveaway help) - Player Focused
help-message
:
 - "&b==== VoidGiveaway Help ====" # PlaceholderAPI placeholder example
  - "&e/giveaway join &7- Join the current giveaway."
  - "&e/giveaway start &7- Start a giveaway with the item in your hand (Req permission)."
  - '&e/giveaway stats &7- Shows your stats.'
  - '&e/giveaway top &7- Shows all top giveaway winner.'
  - "&e/giveaway help &7- Shows this help message."

# Admin Help Message (/admingiveaway help)
admin-help-message
:
 - "&b==== VoidGiveaway Admin Help ===="
  - "&e/admingiveaway start item &7- Start giveaway with held item."
  - "&e/admingiveaway start <id> &7- Start predefined giveaway (item/cmd/msg)."
  - "&e/admingiveaway stop &7- Stop the current giveaway."
  - "&e/admingiveaway reload &7- Reload the plugin configuration."
  - "&e/admingiveaway help &7- Shows this help message."
  - "&e/admingiveaway information &7- Shows information of the current giveaway."
  - "&e/admingiveaway toggle &7- Toggle if players can start giveaways."
  - "&e/admingiveaway history &7- View all past giveaways in a history GUI."

✔ Easy to edit
✔ Supports placeholders
✔ Unlimited reward packages


[​IMG]

✔ Boosts player engagement with fun events
✔ Makes community rewards professional
✔ Fully configurable – adapt to your server’s theme
✔ Perfect for both small servers and big networks
✔ Encourages players to stay active
[​IMG]
[​IMG]
[​IMG]

[​IMG]
IMG_3696.png

[​IMG]
giveaway started admin.png
won message.png
[​IMG]
scoreboard active.png

[​IMG]

history.png

[​IMG]
webhook message discord new.png
[​IMG]

Get VoidGiveaway today and make giveaways exciting, professional, and fun!
Code (YAML):
Terms of Service – VoidGiveaway Plugin

1. License
You receive a non-exclusive, non-transferable license to use the plugin on your own servers. Reselling, redistributing, or decompiling the plugin is not allowed.

2. Updates & Support
Updates may be provided at the developer’s discretion. Support is not guaranteed unless separately agreed.

3. Refunds
All sales are final. Refunds are only given if required by law or explicitly offered by the developer.

4. Liability
The plugin is provided “as is.” The developer is not responsible for crashes, data loss, incompatibility, or damages caused by using the plugin.

5. Termination
If you violate these terms, your license may be revoked, and you must stop using and delete the plugin.

6. Ownership
All rights remain with the developer. You only receive usage rights, not ownership.

7. Governing Law
These terms are subject to the laws of the developer’s country of residence.
Resource Information
Author:
----------
Total Downloads: 4
First Release: Sep 26, 2025
Last Update: Oct 2, 2025
Category: ---------------
All-Time Rating:
0 ratings
Find more info at blacklce.gitbook.io...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings