Votifier Tester

Send a real test vote to your NuVotifier or Votifier plugin with a v2 token or a v1 public key, check that the port is open, and get a plain-English diagnosis with fix steps for every error the test can hit.

The player the test vote is for. Use a real name to also test the rewards plugin.

What vote sites connect to: the public address of the game server, not the panel. Votifier ignores SRV records.

The port: line in plugins/Votifier/config.yml. Default 8192.

In plugins/Votifier/config.yml under tokens:. Use the default token unless you added one for this service name. Run /nvreload after editing.

Each vote site sends its own service name (for example PlanetMinecraft.com). NuVotifier looks for a token with that exact name under tokens: and falls back to default; the rewards plugin matches it against its configured sites. Enter a site name to test that exact pair.

Test failing with connection refused?
Most shared hosts block the Votifier port. FadeHost opens it by default and installs NuVotifier in one click, so votes just work. From $2.50/mo.
Start free trial →

How to use the Votifier tester

  1. Enter a player username, the server address and the Votifier port (default 8192).
  2. Pick v2 and paste the token from config.yml, or v1 and paste public.key.
  3. Not sure the port is even open? Click Check port only first. It tells you whether the port is reachable and whether NuVotifier is the one answering.
  4. Click Send test vote. Green means the plugin accepted the vote. Red comes with the cause and the fix steps, and a Copy report button for support tickets.

How to set up Votifier votes (NuVotifier + VotingPlugin)

  1. Install NuVotifier. Download the NuVotifier jar for your platform (Paper, Spigot, Sponge, BungeeCord or Velocity), drop it into plugins/ and restart the server. On first start it creates plugins/Votifier/config.yml and an RSA key pair in plugins/Votifier/rsa/.
  2. Configure config.yml. Set host: 0.0.0.0 so the plugin listens on every interface, keep port: 8192 or pick a port your host allocated, and note the token under tokens: default. Leave disable-v1-protocol: false unless every vote site you use supports v2. Run /nvreload after each change.
  3. Open the port. Allow TCP 8192 (or your port) in the server firewall and the provider dashboard, forward it on the router for a home server, or allocate it in the hosting panel. Use the port checker on this page until it reports reachable and NuVotifier answered.
  4. Install a rewards plugin. NuVotifier only receives votes. Install VotingPlugin (or SuperbVote) and add each vote site in its VoteSites.yml with the ServiceSite value the site sends, then configure the rewards.
  5. Register on vote sites. Add your server to the vote sites (PlanetMinecraft, Minecraft-MP, TopG, Minecraft Server List and others). Each one asks for the server address, the Votifier port and either the token (v2) or the public key (v1). The site also shows the service name it sends; it must match a key under tokens: or the site entry in the rewards plugin.
  6. Test end to end. Send a test vote from this page with the same address, port and token. Watch the server console for the received vote line and the reward, then vote on one real site to confirm.

Pterodactyl

A Pterodactyl server can only bind ports from its allocation list, and an unallocated port is silently unreachable (it shows up here as timed out). Add a second allocation to the server, set port: in config.yml to it, keep host: 0.0.0.0, restart, and give vote sites the same IP and port as the allocation.

Hytale

Not supported yet. Votifier is a Minecraft Java plugin and no Hytale server software receives votes this way, so vote sites listing Hytale servers have nothing to send votes to. This tester covers Minecraft Java servers, including Bedrock players joining through Geyser.

Every error the tester can show, and the fix

These are the same diagnoses the tester shows under a failed result. Each one names what actually happened on the network or inside NuVotifier, and what to change.

Connection refused: nothing is listening on that port

The machine answered, but no program was accepting connections on this port. Vote sites get the same refusal, so nothing reaches the plugin.

  1. Open plugins/Votifier/config.yml and compare the port: line with the port you entered. 8192 is the default.
  2. Check the startup log for a line like "Votifier enabled". A bind error (address already in use, permission denied) means the plugin never opened the port.
  3. Set host: 0.0.0.0 in config.yml so the plugin listens on every interface, then restart the server (not /reload).
  4. Shared hosting: the port has to be allocated or opened by the host. On Pterodactyl add an allocation for the port and use that exact number.
  5. BungeeCord or Velocity network: the proxy runs NuVotifier and owns the port. Test the proxy address, not a backend server.
No answer within 5 seconds: the port is filtered

Packets to this port are silently dropped. That is a firewall or NAT that does not forward the port, or an address that is not your server at all.

  1. Confirm the address is the public IP of the game server, not the panel, website or SFTP address (those can be different machines).
  2. Open the port in the server firewall, for example ufw allow 8192/tcp, or in the provider dashboard (OVH, Hetzner, AWS security groups).
  3. Home server: forward TCP port 8192 on the router to the machine running Minecraft.
  4. Shared hosting: ask support to open the Votifier port, or check the panel firewall and allocation settings.
  5. Run the port checker after each change; it tells you the moment the port is reachable.
The hostname does not resolve

DNS has no address for this name, so nothing can connect to it, vote sites included.

  1. Check the spelling. A typo in the hostname is the usual cause.
  2. Try the numeric IP from your hosting panel instead of the hostname.
  3. New DNS records take minutes to hours to spread. Test again later if you just created it.
  4. Votifier ignores SRV records. Vote sites need a hostname that resolves directly, or the IP.
The port is open, but it is not Votifier

We connected, but nothing sent the VOTIFIER greeting within 3 seconds. A Votifier plugin announces itself immediately, so this port belongs to something else, most often the game server itself.

  1. Use the port from the port: line in plugins/Votifier/config.yml, not the game port (25565) or the RCON port.
  2. If that is the Votifier port, another plugin or service took it first. Check the startup log for a bind error and pick a different port.
  3. Proxy networks: point the test at the NuVotifier port on the proxy. Backend servers usually run with port: -1.
Something else answered on that port

The service on this port sent its own greeting instead of VOTIFIER, so it is a different program: a web server, SSH, a database, or another plugin.

  1. Double-check the port number against the port: line in config.yml.
  2. If the port is right, another service took it first. Change the Votifier port to a free one, update the vote sites, and restart.
The connection was reset during the handshake

Something closed the TCP connection while the vote was being exchanged: a firewall that inspects traffic, a proxy that only understands HTTP, or the plugin crashing on the packet.

  1. If a TCP proxy or DDoS filter sits in front of the port, allow raw TCP through it or bypass it for the Votifier port.
  2. Check the server console right after the test for a stack trace from Votifier.
  3. Try the other protocol tab. Old server lists and very old plugins only speak v1.
The server closed the connection without answering

The plugin accepted the packet but sent no status. Classic Votifier, and NuVotifier with v1 disabled, both do this for packets they cannot process.

  1. Check the server console right after the test. NuVotifier logs the reason there, for example "Could not decrypt data".
  2. Try the other protocol tab.
This is classic Votifier: v1 only

The greeting was VOTIFIER 1.x. The original Votifier plugin only understands RSA-encrypted v1 votes, so a v2 token test cannot succeed.

  1. Switch to the v1 tab and paste plugins/Votifier/rsa/public.key.
  2. Better: replace the plugin with NuVotifier. It keeps v1 working and adds v2 tokens, which modern vote sites prefer.
The server rejects v1 packets

NuVotifier only accepts v2 packets when disable-v1-protocol is set to true in config.yml.

  1. Use the v2 tab with the token from config.yml.
  2. If a vote site only supports v1, set disable-v1-protocol: false and run /nvreload.
The public key cannot be read

The text is not a valid RSA public key: broken base64, missing lines, or a different kind of file.

  1. Open plugins/Votifier/rsa/public.key and copy everything, BEGIN and END lines included if the file has them.
  2. Watch for characters a chat client or editor may have changed, for example + turned into a space, or a line wrapped with extra characters.
  3. If the file is missing or empty, stop the server, delete the rsa folder and start it again. NuVotifier generates a new pair, which you then update on the vote sites.
That is the private key

The text contains PRIVATE KEY. Vote sites and this tester need public.key; the private key must never leave the server.

  1. Paste plugins/Votifier/rsa/public.key instead.
  2. Because the private key was pasted somewhere, regenerate the pair: stop the server, delete the rsa folder, start it, then update the key on every vote site.
That looks like a v2 token, not a public key

An RSA public key is about 392 characters of base64. This value is far shorter, which is what NuVotifier tokens look like.

  1. Switch to the v2 tab and paste the token there.
  2. For a v1 test, paste the whole contents of plugins/Votifier/rsa/public.key.
Unusual key size

Votifier v1 decrypts one fixed 256-byte block, which only works with a 2048-bit RSA key. This key is a different size, so the plugin cannot decrypt anything sent with it.

  1. Use the key NuVotifier generated in plugins/Votifier/rsa/. Do not create your own with openssl.
  2. Or skip RSA and use a v2 token.
Token rejected: the signature does not match

The server computed the HMAC with its own token and got a different result. Almost always the token you pasted is not the one in the server config.yml.

  1. Copy the value under tokens: in plugins/Votifier/config.yml. Use default unless you added a token for this exact service name.
  2. Check for quotes, a trailing space or a truncated copy. The token is case-sensitive.
  3. If you edited config.yml, run /nvreload (or restart) so the new token is loaded.
  4. Proxy networks: the token that matters is the one on the machine you are testing, usually the proxy.
Unknown service name and no default token

The server looked for a token named after the service, then for default, and found neither.

  1. Add default: <token> under tokens: in config.yml, or a key that matches the service name exactly (case-sensitive), then run /nvreload.
  2. Vote sites show the service name they send on their Votifier settings page. It must match a key under tokens:.
Challenge mismatch

Every v2 connection gets a one-time challenge and the vote must be signed with that exact value. The server saw a different one, so something between us and the plugin opened a separate connection or replayed an old packet.

  1. Remove any TCP proxy, load balancer or tunnel in front of the Votifier port, or make sure it forwards one connection end to end.
  2. Run the test again. A one-off mismatch can be a network hiccup.
The server could not parse the vote packet

NuVotifier rejected the frame before it could verify the vote. That usually means the data was altered in transit, or the plugin build is very old.

  1. Update NuVotifier to the latest release.
  2. If a proxy or DDoS filter sits in front of the port, allow raw TCP through it or bypass it for this port.
  3. Try the other protocol tab to see whether one of them works.
Username too long

NuVotifier rejects usernames longer than 16 characters.

  1. Use a real Minecraft username (3 to 16 characters).

FAQ

What is Votifier / NuVotifier?

Votifier is a Minecraft server plugin that listens on a TCP port (8192 by default) for vote notifications from server-list sites. NuVotifier is the maintained fork everyone should run today: it keeps the original v1 RSA protocol and adds the v2 token protocol plus vote forwarding for BungeeCord and Velocity networks. Votifier only receives votes; a rewards plugin such as VotingPlugin hands out the items or commands.

What port does Votifier use?

By default NuVotifier listens on TCP port 8192, set by the port: line in plugins/Votifier/config.yml. Any free port works as long as it is open to the internet. On Pterodactyl and most shared hosts the port must be allocated to your server first. Vote sites need the port number as well as the server address.

How do I find my Votifier token?

Open plugins/Votifier/config.yml (plugins/NuVotifier/config.yml on a BungeeCord or Velocity proxy). Under tokens: you will find default: followed by the token. Give that token to vote sites, or add a separate entry named after a site to give it its own token. After editing the file run /nvreload.

Where is the Votifier public key?

NuVotifier generates an RSA key pair on first start in plugins/Votifier/rsa/. Give public.key to vote sites that still use the v1 protocol. Never share private.key; if it leaks, stop the server, delete the rsa folder and start it again to generate a new pair.

What is the difference between Votifier v1 and v2?

v1 (the original protocol) encrypts each vote with the RSA public key you give the vote site, and the server never acknowledges it. v2 (NuVotifier) signs a JSON vote with a shared token using HMAC-SHA256, checks a one-time challenge, and replies with ok or an error message. v2 is simpler to set up and far easier to debug; use it wherever the vote site supports it.

How do I test Votifier?

Enter the server address, the Votifier port and the token or public key above and click Send test vote. The tester performs the full handshake a vote site would. NuVotifier also has /testvote <username> in the console, which skips the network and only exercises the rewards plugin. Use both: this page proves the network path, /testvote proves the rewards.

Why does the test say connection refused or timed out?

Refused means the machine answered but nothing listens on that port: wrong port, plugin not started, or the port not allocated on shared hosting. Timed out means packets are dropped by a firewall or NAT that does not forward the port. Both mean vote sites cannot reach the plugin either. The diagnosis under the result lists the fixes in order.

The test passes but players get no reward. Why?

A passing test proves the vote reaches NuVotifier. Rewards come from a separate plugin (VotingPlugin, SuperbVote) that matches the service name of the vote against its configured sites. Check the console for the received vote line, then make sure the site is configured in the rewards plugin with the same service name the site sends. Enter that service name in the tester to check the exact pair.

Does Votifier work with BungeeCord or Velocity?

Yes. Install NuVotifier on the proxy and on each backend server, give the vote sites the proxy address and port, and enable forwarding (pluginMessaging is the simplest). Backend servers then run with port: -1 and receive votes through the proxy. Test the proxy address with this tool, not a backend.

How do I open the Votifier port on Pterodactyl?

Pterodactyl only lets a server bind ports from its allocation list. Ask your host (or, as admin, use Nodes, then Allocation) to add a second allocation to the server, then set port: in config.yml to that port and host: 0.0.0.0, and restart. The game port and the Votifier port cannot share one allocation.

Does Votifier work on Bedrock or Hytale servers?

Votifier is a Java Edition plugin. Bedrock players joining a Java server through Geyser can be rewarded normally, because votes are keyed by username. Bedrock Dedicated Server and Hytale have no Votifier implementation yet, so vote sites cannot send votes to them.

Does this tool send a real vote?

Yes. It performs the exact Votifier handshake a vote site does, with a placeholder voter address and this page as the service name unless you enter another one. A successful test means real votes will work too, and a rewards plugin configured for that service name will hand out the reward.

Why does Votifier fail on shared hosting?

Many shared hosts only open the game port. If the port checker reports refused or timed out even though the plugin says it started, the port is not open on the host side: allocate it in the panel or ask support. FadeHost opens the Votifier port by default.