DaisyVotes — Common setups
The reference pages list every option. This page answers “how do I do the thing I actually want”, with configuration you can paste.
Give a crate key for voting
Section titled “Give a crate key for voting”The shipped rewards are vanilla items so a fresh server works out of the box. To hand out a key from your crate plugin instead, use a Command reward — it runs from console, so it needs the player’s name.
vote-rewards: - type: Command value: "crate key give %player% vote 1" display-name: "1 Vote Key" summary: - "Opens at spawn."display-name and summary are what the reward-preview menus show players. Without them the menu falls back to printing the raw command, which nobody wants to read.
Placeholders available in a command reward: %player%, %uuid%, %site%, %votes_total%, %streak%, %party_current%.
Give more for the sites that matter most
Section titled “Give more for the sites that matter most”Two mechanisms, and they stack.
Per-site point overrides — reward the listings that send you the most traffic:
points: enabled: true per-vote: 1 per-site: minecraftservers: 3 topg: 2A site bonus — an extra reward for one listing, on top of the normal vote reward:
site-rewards: minecraftservers: - type: Item value: "diamond" item: { material: "diamond", amount: 2 } display-name: "2 Diamonds"The key is the site’s id from menus.yml, not its display name.
Reward the top voter every month
Section titled “Reward the top voter every month”On by default — worth checking rather than assuming:
top-voters: enabled: true monthly: enabled: true rewards: 1: ["crate key give %player% legendary 3"] 2: ["crate key give %player% legendary 2"] 3: ["crate key give %player% legendary 1"]Awards run at 00:05 in your wheel.reset-zone, so the month rolls over at the same moment your daily wheel does. sweep-minutes is only a catch-up for a server that was offline across that instant.
Match the cooldowns to what the sites actually do
Section titled “Match the cooldowns to what the sites actually do”Vote listings do not agree with each other. Some allow another vote a fixed number of hours after your last; others reset at a wall-clock time in their timezone.
sites: - id: planetminecraft cooldown: { every: "12h" } # 12 hours after this player's last vote
- id: minecraft-mp cooldown: resets-at: "00:00" # everyone resets together... zone: "America/New_York" # ...in the site's timezone, not yoursCheck the listing’s own FAQ for which model it uses. Getting it wrong means a player at 23:00 is told to wait twelve hours when the real answer is one.
Stop players buying in a creative or minigame world
Section titled “Stop players buying in a creative or minigame world”For servers with per-world inventories, where an item bought in one world does not follow the player home:
world-restrictions: enabled: true mode: Blacklist worlds: [creative, minigames] block-menus: true block-purchases: true queue-rewards: truequeue-rewards: true is the important one. A player voting from a restricted world still gets the whole vote — totals, streak, points, party progress — and only the items wait for /vote claim somewhere they can be kept. Nobody loses a vote for standing in the wrong place.
Make the vote menu yours
Section titled “Make the vote menu yours”Every button is menus.yml, not code:
vote-menu: rows: 6 buttons: shop: slot: 42 item: material: emerald glint: true name: "<gradient:#FFF1C1:#FFC8DD>Vote Shop</gradient>" lore: - "<#B8C0CC>You have <#FFF1C1><points> points" - "" - "<#FFFFFF>Click to browse."
milestone: enabled: false # remove this button entirelyButtons you do not mention keep their shipped defaults, so you write only what you are changing.
inactive-item is drawn when a button has nothing to offer — no spins left, no rewards waiting — so “spin ready” and “vote more to earn one” can look completely different.
Announce votes in Discord without a bot
Section titled “Announce votes in Discord without a bot”A channel webhook is enough:
discord: enabled: true webhook-url: "https://discord.com/api/webhooks/..."Discord content is Markdown, not MiniMessage. Do not paste MiniMessage tags into the Discord templates expecting colour.
Run this across a network
Section titled “Run this across a network”One shared MySQL or MariaDB database gives you shared totals, streaks, points and leaderboards:
backend: mysqlremote: host: "10.0.0.5" database: "daisyvotes" username: "daisyvotes" password: "${DB_PASSWORD:-}"Redis is optional and buys two things: a vote arriving on one server reaching a player online on another, and vote parties that fill from the whole network. Without it everything still works — rewards wait in the queue until the player joins the server that received the vote.
Prove it works before players see it
Section titled “Prove it works before players see it”/daisyvotes doctor— everything green./daisyvotes testvote <you>— runs a real vote on every site. Confirms rewards, points and streak, and completes the daily wheel set./vote spin— there is now a spin waiting./vote shop— buy the cheapest entry and check it arrives./daisyvotes forceparty— confirms the party rewards and the broadcast.- Send a real test vote from one listing’s own panel.
Step 6 is the one that cannot be faked. Everything before it proves your configuration; only a real vote proves your firewall and your keys.