How to Set Up Votifier (NuVotifier) on Your Minecraft Server
Vote rewards are the cheapest player-retention loop in Minecraft: a player votes for your server on a server list, the list pings your server, and your server hands them a reward. The tech behind that ping is Votifier — and in about 15 minutes you can have it installed, configured, and verified. Here’s the full setup, including the firewall and proxy details that trip most people up.
What is Votifier and how does it work?
Votifier is a protocol, not magic. When someone votes for your server on a list like spawnlist.gg, the list opens a TCP connection to a port on your server and sends a signed vote packet. A plugin listening on that port verifies the packet and fires an event that reward plugins react to.
The original Votifier plugin is long abandoned. Use NuVotifier, the maintained fork: it speaks both the legacy v1 protocol (RSA keys) and the modern v2 protocol (shared tokens), and it runs on Spigot, Paper, BungeeCord, and Velocity.
Step 1: Install NuVotifier
- Download the latest NuVotifier jar (Modrinth, Hangar, or SpigotMC — grab the build matching your server version).
- Drop it into your server’s
plugins/folder. - Restart the server. A reload isn’t enough for the first install.
Check the console. You want two things:
Votifier enabled on socket /0.0.0.0:8192(or your configured port)- A message that a default token was generated for you
If you see those, NuVotifier is listening. If the port bind fails, something else is using 8192 — more on that below.
Step 2: Configure NuVotifier’s config.yml
Open plugins/Votifier/config.yml. The parts that matter:
host: 0.0.0.0
port: 8192
debug: false
tokens:
default: "a1b2c3d4..." # auto-generated on first run
- host: set it to
0.0.0.0so it listens on all interfaces. Putting your public IP here is a common self-inflicted wound on shared hosts. - port:
8192is the convention, but any free TCP port works. On panel hosts (Pterodactyl and friends), you usually can’t use 8192 — allocate an extra port in your panel and put that number here. - tokens: your v2 credential. When you add your server to a list, paste this token plus your IP and port into the voting setup — on spawnlist.gg that’s the Votifier section of your server’s edit page.
- RSA keys (
plugins/Votifier/rsa/): only needed for lists still on the v1 protocol. If a list asks for your “public key,” paste the contents ofpublic.key. Never shareprivate.key.
Restart (or run /nvreload) after any config change.
Step 3: Open the port in your firewall
The number one Votifier failure is a closed port. The vote packet comes from the internet, so the port must be reachable from outside:
- Linux VPS with ufw:
sudo ufw allow 8192/tcp - firewalld:
sudo firewall-cmd --permanent --add-port=8192/tcp && sudo firewall-cmd --reload - Home hosting: forward the port on your router, same as you did for 25565.
- Panel hosting: allocate the port in the panel; the host’s firewall usually follows the allocation automatically.
Verify from outside the server — an online TCP port checker, or nc -vz your.server.ip 8192 from another machine. “Connection succeeded” means you’re good. Testing from the server itself proves nothing.
Step 4: Set up vote rewards with a listener plugin
NuVotifier only receives votes. It fires a VotifierEvent and does nothing else — no items, no messages. You need a listener plugin:
- VotingPlugin is the standard pick: per-site rewards, cumulative milestones, vote parties, offline vote queueing.
- Configure the reward commands you want (crate keys, money,
/give), and make sure each site’s service name in VotingPlugin matches what the list actually sends — if the names don’t match, votes land but rewards don’t fire.
Step 5: Send a test vote
Don’t wait for a real vote to find out it’s broken:
- Simulate locally: with VotingPlugin, run
/adminvote vote YourName SiteNameto confirm rewards fire. - Test end-to-end: use the test-vote button on your server list’s dashboard if it has one, or just vote for yourself. With
debug: truein config.yml, NuVotifier logs every received packet.
If the console shows the vote arriving and your reward plugin reacts, you’re done.
How to set up Votifier behind BungeeCord or Velocity
On a network, votes should hit the proxy, not the backends:
- Install NuVotifier on the proxy. That instance owns the open port and the token — give the proxy’s IP, port, and token to server lists.
- Set
forwarding.methodtopluginMessagingin the proxy’s NuVotifier config. - Install NuVotifier on each backend server too, with the same forwarding method and channel. Backend ports stay closed to the internet — votes travel over the internal plugin messaging channel.
- Run your rewards plugin on the backends (or wherever your setup expects it).
Symptom of getting this wrong: votes register on the proxy but no rewards fire anywhere.
Common Votifier errors and fixes
- Nothing in console when a vote is sent → port closed, wrong port, or wrong IP on the list. Re-verify with an external port check.
- Token or signature errors → token mismatch. Re-copy the token from config.yml to the list, no extra spaces.
- “Unable to decrypt” (v1) → the list has a stale RSA public key. Re-upload
public.key, or switch that list to token auth. - Votes arrive, no rewards → missing listener plugin, or a service-name mismatch in VotingPlugin.
- Port bind error on startup → another process owns the port. Pick a different one and update your listings.
FAQ
Does Votifier work on vanilla servers?
No. NuVotifier is a plugin, so you need a plugin-capable server: Paper, Spigot, Purpur, or a proxy like Velocity. Paper is the usual recommendation.
Do I have to use port 8192?
No — any reachable TCP port works. 8192 is just the default. Whatever you pick, it must match on both ends: your config.yml and the server list’s settings.
Tokens or RSA keys — which should I use?
Tokens (protocol v2) whenever the list supports them. They’re simpler, and one token can serve every list. RSA is the legacy v1 fallback; keep it only if a list you use requires it.
Do more votes actually help my server grow?
On most lists, yes — vote counts feed ranking. On spawnlist.gg, votes influence where you show up in browse and search, so a working vote-reward loop pays for itself in visibility. Featured slots exist too, but organic votes are the free lane.
Run a server? List it on Spawnlist and let players find you — free forever.
+ Add your server