How to Set Up Vote Rewards (Votifier, VotingPlugin, and More)
Install the companion plugin, wire up Votifier for instant delivery, or point VotingPlugin, SuperVotes, or SuperbVote at this site instead - with the exact values this site actually expects.

Every reward plugin needs two things from you: a way to find out a vote happened, and something to run when it does. This walks through both - the companion plugin this site publishes, Votifier for instant delivery, and what to do if you already run VotingPlugin, SuperVotes, or another reward plugin instead.
Option A: the VoxelRank plugin (recommended)
The companion plugin talks to this site's API directly. No Votifier required - it works by polling for unclaimed votes on an interval, so it works behind NAT and catches up on anything missed while the server was down. Votifier is available too, as an optional add-on for instant delivery (see Option B).
- Download the jar from your Dashboard (your server's card has a Download button once a build exists), or straight from /download/plugin.
- Drop it into
plugins/and start the server once. That generatesplugins/VotingSite/config.yml. - Open your server's Edit page → Rewards & voting tab and copy the API key shown there.
- Paste it into
site.api-keyinconfig.yml(double-checksite.urlpoints at this site), then run/votingsite reload. - Decide how votes should reach you by setting
modeinconfig.yml:poll(default) - the plugin pulls unclaimed votes on its own. Nothing else to install.votifier- the site pushes each vote the moment it's cast. Needs NuVotifier or another Votifier listener (Option B below).both- Votifier push with polling as a safety net, de-duplicated by vote id.
- Fill in
rewards.commands(and, if you want them,milestonesandvote-party) with whatever console commands should fire on a vote. - Test it:
/votingsite testvote <player>simulates a vote without waiting for a real one./votingsite statusshows the mode, whether the API key is accepted, and how many votes have been delivered so far.
Players get their vote link and count with /voxelrank vote - not /vote, which this plugin deliberately never claims (two plugins fighting over the same command is exactly how a reward silently breaks, see config.yml's own note on this).
Option B: instant delivery with NuVotifier
Skip this if poll mode is working well enough for you - it's not required. Add it when the few minutes of polling delay matters, or when you'd rather run a dedicated reward plugin than this site's own.
NuVotifier is the actively maintained fork of the original Votifier - the original project is essentially unmaintained today, so NuVotifier (or a compatible fork such as VotifierPlus) is what "installing Votifier" means in practice.
- Drop the NuVotifier jar into
plugins/and restart the server. On a Bukkit/Spigot/Paper server it keeps the classicplugins/Votifier/folder name for backward compatibility - that's NuVotifier's own folder, not a leftover from the old plugin - and generates aconfig.ymlplus anrsa/key pair inside it the first time it starts. - Get your credentials from
plugins/Votifier/config.yml: the v2 token (recommended) is auto-generated under thedefaultkey in thetokens:section - copy it as-is. If you'd rather use the older method instead, the v1 public key is inplugins/Votifier/rsa/public.key; keep the matchingprivate.keyin the same folder on the server and never share it. - Check the
portNuVotifier is listening on (8192by default) and make sure it's open in your firewall or host panel - it's a separate port from the normal Minecraft one, and most hosts don't open it automatically. - On your server's Edit page → Rewards & voting tab, fill in the Votifier host (your server's address) and that port, then paste in the v2 token or v1 key from step 2. Only one is used if both are filled in - v2 wins.
- Click Send test vote right there on the tab. It fires a real Votifier packet at whatever host/port/key/token is currently in the form - nothing needs to be saved first - and reports back inline whether NuVotifier accepted it. If it fails, NuVotifier's own console log (
debug: trueby default) shows whether the connection reached the plugin at all, which separates "wrong key" from "blocked port" quickly. - Save, then cast a real vote and confirm the reward lands right away instead of on the next poll.
Under the hood this site sends a standard VOTIFIER 2 handshake with an HMAC-signed JSON payload when a v2 token is set, and falls back to a classic RSA-encrypted v1 block otherwise - the same protocol any Votifier-compatible listener already speaks, nothing site-specific.
Already running VotingPlugin instead?
If your server already runs VotingPlugin, you don't need to install ours - and you don't need to add this site to it by hand either, because VotingPlugin has a maintained preset for it.
Run this in-game as an operator (or with VotingPlugin.Commands.AdminVote.VotePresets):
/av VotePresets
VotingPlugin downloads the current preset list from its own VotingPlugin-Presets repository, lets you pick one - VoxelRank included - then asks for the values that preset needs: display name, your listing's vote URL, vote delay, and similar. Or skip straight to it with your own vote link:
/av VotePresets https://voxelrank.com/server/your-slug/vote
Include the https://; VotingPlugin matches the hostname to the right preset automatically instead of making you find it in a list.
Either way it writes or updates the matching entry under VoteSites: in VoteSites.yml - ServiceSite, VoteURL, sensible delay defaults, and a placeholder display item or thank-you message if the site doesn't already have one - then reloads vote sites for you. Anything else already in the file is left alone. Back up VoteSites.yml first if you're changing an established setup rather than adding a fresh one, and review what it wrote - the rewards especially, since a preset is a starting point, not a finished config - before advertising it to players.
VotingPlugin still needs its own Votifier connection to actually receive votes - point it at the same NuVotifier setup from Option B above. It also needs the server to reach GitHub (raw.githubusercontent.com) to fetch presets at all; if /av VotePresets reports no presets available, that's a network or firewall problem on the server, not a missing preset. /av gui, or editing VoteSites.yml directly, still works as a fallback - ServiceSite has to read VoxelRank.com exactly, which you can confirm with /av servicesites after a real or admin test vote.
Other reward plugins
Running something smaller than VotingPlugin? SuperVotes and SuperbVote are both lightweight Votifier listeners with their own vote-party and reward-command systems. Neither one tracks per-site presets the way VotingPlugin does - point either at the same Votifier host, port, and v2 token (or v1 key) from the Rewards & voting tab above and configure its rewards the same way you would for any vote.
Troubleshooting
- Nothing happens on
/votingsite testvote. Check/votingsite statusfirst - if the API key isn't accepted, votes (real or test) have nowhere to go. Re-copy it from the Edit page and make sure there's no trailing whitespace. - Votifier push never arrives but polling works. The Votifier port is usually the one blocked, not the API - most hosts open outbound HTTP by default but not an arbitrary extra inbound port.
mode: both(or running a separate reward plugin's listener) is a reasonable permanent fallback rather than something to fight the firewall over. - The reward fires but nothing shows up in-game. Reward commands run on the console, so a command that only works when typed by a player (no permission, no
op) will silently fail. Test the exact command from console first. - VotingPlugin logs "invalid service site" or never matches the vote. The
ServiceSitevalue has to match character-for-character, case aside. Re-check it with/av servicesitesrather than guessing from this site's domain name. /av VotePresetssays no presets are available, or a URL doesn't match anything. It downloads the preset list from GitHub at runtime, so this is almost always the server's own network - firewall, proxy, DNS, or a GitHub outage - blockingraw.githubusercontent.com, not a sign VoxelRank was dropped from the list. A URL match also needs the full address includinghttps://; bare hostnames aren't recognized.- Settings on the Rewards & voting tab don't seem to save. They only apply to a claimed listing - see the Claimed filter on the server list. An imported, unclaimed stub has no owner yet to configure rewards for; claim it first.
Quick answers
Do I need Votifier at all?
No. poll mode (the default for the VoxelRank plugin) works with nothing else installed - Votifier only shortens the delay between a vote and the reward, and it's the only route in if you'd rather run VotingPlugin, SuperVotes, or SuperbVote instead.
Can I use both our plugin and VotingPlugin at the same time?
Not for the same reward - pick one to actually run the reward commands, or a vote could pay out twice. Votifier itself can notify more than one listener, so this is a "don't configure the same reward twice" rule, not a technical limit.
My host doesn't let me open extra ports for Votifier.
Use poll mode with the VoxelRank plugin. It only makes outbound requests, so there's nothing to open. VotingPlugin and similar reward plugins have no equivalent poll mode - they need an inbound Votifier port.
Need help?
Stuck on a step above, or something's not matching what your server actually sends? Contact us - the fastest routes for a votes/rewards question are listed right there.