Minecraft Vote Rewards: VotingPlugin and VotePlus Setup

Votifier delivers the vote and a reward plugin pays it out. Set up rewards with VotingPlugin, or look at TDX VotePlus if you run a large server.
Before you install
- Votifier needs to be working first. If test votes aren't reaching your console yet, start with how to set up Votifier. VotingPlugin works with NuVotifier or VotifierPlus as the listener.
- VotingPlugin 7.1.1, released on July 23, 2026, is built for Java 21, so your server needs to run on Java 21 or newer.
- You need console access to your server, because you'll be reading it a lot while testing.
Install VotingPlugin
- Download the latest build from the VotingPlugin releases page.
- Put the jar in your plugins folder and restart the server.
- Look inside
plugins/VotingPlugin. You should findConfig.yml,VoteSites.yml,SpecialRewards.ymland aRewardsfolder.
Find your service site
Every vote carries a name that says which list it came from. VotingPlugin calls this the service site and uses it to pick the right entry in VoteSites.yml. The two have to match, so don't guess it from the list's web address.
The reliable way is to cast a real vote for your server on minecraftservers.blog, then read the console or run /av servicesites. VotingPlugin's wiki lists minecraftservers.blog with the service name minecraftservers.blog. Use whatever your console actually shows.
If AutoCreateVoteSites is true in Config.yml, VotingPlugin builds an entry for you from the first vote it receives. You'll still need to fix the placeholder URL and add rewards.
Add the vote site
Open VoteSites.yml. Each site is an entry under the VoteSites key, named whatever you like, and indented settings go beneath that name. These are the ones you need:
Enabled: trueturns the site on.ServiceSite: minecraftservers.blogis the value from your console.VoteURL: https://minecraftservers.blog/server/your-server-slug/voteis the link players see when they run the vote command. Swap in your own server's slug.VoteDelay: 24is the gap between votes, in hours. We allow one vote per player per server every 24 hours, so 24 matches.Rewardsis a section holding what the player receives.
Give the reward
Inside Rewards, two sections cover most needs. Messages sends text to the player. Commands runs console commands, with %player% standing in for the voter. VotingPlugin's own example gives one diamond:
- Under
Messages, setPlayerto'&aThanks for voting on %ServiceSite%!'. - Under
Commands, add the line'give %player% diamond 1'.
Any command you could type in the console will work, so money, crate keys and permissions all go through whichever plugin owns them. If you want to reuse a reward across sites, you can save it as a file in plugins/VotingPlugin/Rewards and refer to it by its file name without the .yml.
Bigger rewards
Rewards that aren't tied to one site live in SpecialRewards.yml.
VoteMilestonescovers a player's first vote, every 25th vote, or voting on every site in one day.VoteStreaksrewards vote streaks.VotePartypays out when the whole server reaches a shared vote target.- The top voter sections,
DailyAwards,WeeklyAwardsandMonthlyAwards, reward whoever finishes on top.
If you find older guides that use FirstVote, AllSites or Cumulative, those sections are legacy. Use VoteMilestones and VoteStreaks for anything new. The wiki also warns that leaving old and new versions of the same reward in place can pay it twice.
There's also an EverySiteReward setting in VoteSites.yml for a reward that runs on any vote, whichever site it came from.
Test it in two ways
The two tests check different things, so run both.
/av vote <player> <site> pushes a fake vote through VotingPlugin. It proves your rewards work, but it never touches the Votifier port or key. A real vote from your server page does, and so does the Test Votifier Connection button in your dashboard. After a real vote you want to see VotingPlugin log that it received a vote from your service site by that player, followed by the reward.
If a reward doesn't fire, the service site is the first thing to check. See Votifier not working? How to fix it.
Switch off auto-create
When your sites are working, set AutoCreateVoteSites to false in Config.yml and reload VotingPlugin. Otherwise any service name you didn't expect creates a new site entry. Existing sites carry on as before.
Proxy networks
On a proxy network, VotingPlugin goes on the proxy and on every backend server, and all of them share one BungeeMethod. The options are PLUGINMESSAGING, REDIS, MQTT, MYSQL and SOCKETS. The Votifier listener runs on the proxy. Each method has its own page in the VotingPlugin wiki, and it's worth reading the one you choose before you start.
Crossplay and other gotchas
If Bedrock players join through Floodgate, set BedrockPlayerPrefix to match the prefix Floodgate or Geyser actually uses, and keep OnlineMode consistent between the proxy and its backends. VotingPlugin's wiki lists both under its player and UUID checks.
Running a big server? Look at TDX VotePlus
VotingPlugin covers most servers well. If you run a large one, TDX VotePlus is worth a look. We've used it on big servers handling 1,000 or more players.
It sits on top of the same Votifier setup. VotePlus doesn't receive votes itself. It reacts to what NuVotifier, VotifierPlus or classic Votifier passes along, so everything in the Votifier guide still applies. What it adds is a /vote menu with leaderboards for total, monthly, weekly and daily votes, daily streaks, milestones, a server-wide vote party, and automatic payouts to each month's top voters. A vote that arrives while a player is offline is saved and paid when they next join.
A few details matter once a server gets busy.
- Storage is SQLite by default, with MySQL or MariaDB for networks. The docs suggest raising the connection pool from 10 to 20 at 200 or more players.
- You can point Survival, Skyblock and Prison at one MySQL database and give each its own
server-id. Player counters, streaks and milestones stay separate, while the vote party counter is shared across the network. - There's a PlaceholderAPI expansion, a Discord webhook for vote and milestone events, and a public API for other plugins.
It isn't free. The docs say you download it from your purchase account on BuiltByBit, SpigotMC or Polymart. Version 1.3.5 needs Paper or Folia 26.1 or newer and Java 21 or newer. For 1.20.x through 1.21.x servers, the docs point to version 1.2.16.
Setup is short:
- Get NuVotifier receiving votes first. Running
/testvote YourNameshould put a line inlatest.logsaying it got a vote record. - Put the VotePlus jar in
plugins, start the server once so it writes its files intoplugins/TDXVotePlus, then stop it. - Open
vote-sites.yml. Each entry has anameand aurl. For us, the url ishttps://minecraftservers.blog/server/your-server-slug/vote. This file only builds the link list players see in/vote sites. A vote from a site that isn't listed is still counted and rewarded, so there's no service name to match the way there is in VotingPlugin. - Open
vote-rewards.yml. Each reward has atypeand avalue. Acommandwith the valuegive %player% diamond 1gives a diamond, and amessagetype sends chat text. The docs list more types, including money, experience, items, random pools and fireworks. - Restart, then run
/voteplus give YourName. It sends a test vote through the whole plugin without any vote site, so if the reward arrives, VotePlus works. Then run/testvote YourNameto check the Votifier path as well. Later changes to rewards load with/voteplus reload.
On a network, the docs recommend sending every vote site to one backend's Votifier port. If you forward each vote to every backend instead, each backend counts its own copy. Players get rewarded once per server, and the vote party fills as many times faster as you have backends. Whatever server-id you choose for a backend, don't rename it later, because it becomes part of the database table names.
Both plugins handle streaks, milestones, vote parties and top-voter rewards. The practical difference is price and how you configure them, so start with VotingPlugin on a small server and look at VotePlus once you're running a large one.
Whichever you pick, keep the first version small: one site, one message, one diamond. Once a real vote pays out, the fancier reward types are just more config in the same files.