{"id":530,"date":"2026-10-09T01:22:39","date_gmt":"2026-10-08T17:22:39","guid":{"rendered":"http:\/\/www.sxyoto.com\/blog\/?p=530"},"modified":"2026-10-09T01:22:39","modified_gmt":"2026-10-08T17:22:39","slug":"how-to-implement-a-voting-system-on-a-spigot-server-4cab-f0993a","status":"publish","type":"post","link":"http:\/\/www.sxyoto.com\/blog\/2026\/10\/09\/how-to-implement-a-voting-system-on-a-spigot-server-4cab-f0993a\/","title":{"rendered":"How to implement a voting system on a Spigot server?"},"content":{"rendered":"<p>What\u2019s good, fellow Minecraft server owners? If you\u2019re running a Spigot server, odds are you\u2019ve thought about how to keep players engaged, grow your community, and reward the people who show up consistently. One of the best, most straightforward ways to do that is by setting up a voting system\u2014but not just any basic \u201cclick a link, get a random item\u201d thing. I\u2019ve been a Spigot vendor for over 6 years now, and I\u2019ve seen every messed up voting setup imaginable: broken links, duplicate rewards, players exploiting votes, servers paying for bot votes that never translate to real activity. Today, I\u2019m walking you through exactly how to implement a solid, reliable voting system that actually works for your server, not against it. <a href=\"https:\/\/www.shunyecasting.com\/spigot\/\">Spigot<\/a><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.shunyecasting.com\/uploads\/47565\/small\/semi-open-impeller-radial-flow-pump-impeller44525.jpg\"><\/p>\n<p>First off, let\u2019s cut to the chase: why does a voting system matter? Spigot rankings (you know, those sites like Minecraft Server List, Planet Minecraft, etc.) are still one of the biggest ways new players find your server. More votes = higher ranking = more visibility = more players. But if your voting system sucks, you\u2019ll get a bad rep, and players will leave. It\u2019s not just about ranking, though. Voting is a free, low-effort way for existing players to support your server, so rewarding them properly makes them stick around longer. I\u2019ve seen servers go from 50 players max to 300+ just by fixing their voting setup and actually promoting it well.<\/p>\n<p>Before we jump into code or plugins, let\u2019s make sure you\u2019re aligned on the basics. You can\u2019t just sign up for every single server list and call it a day\u2014some are way more worth your time than others. Stick to the big ones first: Minecraft Server List, Planet Minecraft, and maybe TopG. Smaller lists might seem tempting, but they usually don\u2019t drive nearly as much traffic, and their APIs are often janky. Also, decide what you want to reward. A lot of new servers throw out diamond every vote, and that works for a little bit, but it gets expensive fast. Balance is key: maybe 1 vote = 500 in-game currency, 10 votes = a rank up (like VIP), 50 votes = a custom cosmetic. That way, players have a reason to keep voting without breaking your server\u2019s economy.<\/p>\n<p>Now, the fun part: actually setting up the plugin. The go-to for Spigot is a plugin called Vault (don\u2019t skip this\u2014almost every other economy\/rank plugin depends on it) and then a voting plugin. My top recs are either DeluxeVotes or JustVotes. I\u2019ve used both for different clients, and both are solid as long as you set them up right. Let\u2019s walk through installing them step by step, no fancy jargon.<\/p>\n<p>First, make sure your Spigot server is up to date. I know, I know, updating sucks, but if you\u2019re on an old 1.16 build, half the plugins won\u2019t work, and you\u2019ll get buggy votes. Stop what you\u2019re doing, update to the latest stable Spigot version (1.20.4 as of writing) before you do anything else. Next, download Vault from SpigotMC (make sure it\u2019s the right version for your server) and drop it into your plugins folder. Restart your server\u2014Vault will create a folder and a config file, but you don\u2019t need to touch it right now, that\u2019s just for economy plugins.<\/p>\n<p>Now pick your voting plugin. Let\u2019s go with DeluxeVotes, since it\u2019s got the most features and the best support for all the major server lists. Download the latest DeluxeVotes and drop it into your plugins folder too. Restart the server again\u2014this will create a DeluxeVotes folder with a bunch of config files. The most important one here is config.yml, which is where you\u2019ll set up your rewards, vote links, and anti-exploit stuff.<\/p>\n<p>Open that config.yml with a text editor (I use VS Code, but Notepad works if you\u2019re on Windows, just don\u2019t use Word\u2014it messes up formatting). First, find the section called \u201csites\u201d and add all the server lists you\u2019re signed up for. For example, Minecraft Server List\u2019s API ID is something like 12345, Planet Minecraft is another. DeluxeVotes has a list of all the default sites built in, so you don\u2019t have to mess with custom API stuff most of the time\u2014just search for the list you\u2019re using, copy the ID, and paste it in. If you\u2019re using a custom list, there\u2019s a section for custom sites too, but I\u2019d stick to the defaults for now.<\/p>\n<p>Next, rewards. This is where you need to balance it. Don\u2019t make rewards too OP, don\u2019t make them too garbage. Let\u2019s say you want 1 vote to give $1000 in-game cash (adjust this to match your Vault economy plugin, like EssentialsX or CMI). Find the \u201crewards\u201d section in DeluxeVotes config, and add:<\/p>\n<p>one:<br \/>\nbroadcast: true<br \/>\ncommands:<\/p>\n<ul>\n<li>eco give %player% 1000<br \/>\nmessage: &quot;&amp;aThanks for voting, %player%! You got 1000 cash!&quot;<\/li>\n<\/ul>\n<p>Then, for 5 votes, a small rank like VIP:<\/p>\n<p>five:<br \/>\nbroadcast: true<br \/>\ncommands:<\/p>\n<ul>\n<li>rankup %player% VIP<br \/>\nmessage: &quot;&amp;bGreat job, %player%! You unlocked VIP rank for voting!&quot;<\/li>\n<\/ul>\n<p>You can add more tiers too, like 10 votes for a custom hat, 20 votes for extra home slots, whatever fits your server. Pro tip: use placeholders here, like %player% to make the messages personal, and make sure the commands are the exact commands your server uses. If your economy plugin is called something else, don\u2019t put \u201ceco\u201d if it\u2019s actually \u201cgivemoney\u201d\u2014double check that, because that\u2019s a super common mistake.<\/p>\n<p>Now, the most important part most people mess up: anti-exploit. This is how you stop players from using vote bots, or voting for someone else\u2019s account, or exploiting vote links. DeluxeVotes has built-in anti-fraud, but you need to turn it on. In the config, look for \u201canti-bot\u201d and set it to true. You can also enable IP logging, so if a player tries to vote from a different IP that\u2019s not their own, it\u2019ll warn you. Another setting: vote cooldown. Don\u2019t let players vote every 2 minutes on the same IP\u2014set a 12 hour cooldown per IP per site, that\u2019s enough to stop bots, but not so long that real players get annoyed. Also, enable vote limits: a player can only vote once per site, per IP, that way they can\u2019t make 10 alts and vote 10 times a day. I\u2019ve had clients who turned anti-exploit off because it \u201cblocked real players\u201d but no\u20149 times out of 10, if it\u2019s blocking a real player, they\u2019re just using a VPN. You can make an exception in the DeluxeVotes config for VPN users, but that\u2019s way better than letting bots ruin your vote count.<\/p>\n<p>Wait, one more key thing: making sure votes are linked to the right Minecraft account. A lot of plugins mess this up, because server lists use usernames that change, not UUIDs. DeluxeVotes uses UUIDs by default, so that\u2019s perfect, because even if a player changes their IGN, their votes will still count to their account. Just make sure you don\u2019t have any old usernames in your database from before installing the plugin, that\u2019s a quick fix.<\/p>\n<p>Once you\u2019ve got the plugin set up, you need to promote it on your server. What\u2019s the point of having a voting system if no one knows about it? Make a sign at your server spawn that says \u201cVote for us at [link] to get rewards!\u201d Pin it in your Discord, make a \/vote command that lists all the links right in chat when players type it. Even better, send a message to players when they join that tells them to vote, or when they vote, broadcast a message to the whole server so it\u2019s a fun thing. I also recommend adding a vote leaderboard\u2014top 10 players with the most votes get a custom prize each week. That creates healthy competition, and players will bug their friends to vote for them, which grows your community.<\/p>\n<p>But wait, let\u2019s talk about common mistakes I see all the time, because I\u2019ve fixed so many of these for clients. First, don\u2019t use free, sketchy voting plugins from random websites. Half of them have malware that\u2019ll crash your server or steal player data. Stick to plugins from SpigotMC or Polymart, that\u2019s where the real, tested plugins are. Second, don\u2019t pay for vote bot services. Yeah, you can buy 10,000 votes for $5, but those votes are from fake accounts, so they don\u2019t count towards Spigot rankings. The site will ban your server if they catch you, and you\u2019ll end up with 10,000 fake players online who never chat or play. It\u2019s not worth it. Third, don\u2019t make rewards too expensive. If you give away a $10,000 cash prize per vote, your economy will crash within a week. Adjust rewards to fit your server\u2019s economy\u2014if a diamond is worth $500, then 1 vote = 1 diamond is fine, don\u2019t overdo it.<\/p>\n<p>Another thing: testing. After you set up the plugin, test it yourself. Make a new alt account, go to a server list, vote, and make sure you get the reward. Check if the vote is logged correctly, if the anti-exploit works when you try to vote twice, if the broadcast message shows up. Don\u2019t launch this to your main player base until you\u2019ve tested it with a small group. I always tell new vendors to set up a test server first, mess around with the voting system there, then move it to their main server once it\u2019s working.<\/p>\n<p>Wait, what if you have a bigger server and want to do more advanced stuff? Like, sync votes between multiple servers if you run a network. DeluxeVotes works with BungeeCord too, so you can set up a cross-server vote system where a player votes once and gets rewards on all your servers. That\u2019s a game changer for networks, and it\u2019s super easy to enable in the config, just toggle the bungee setting to true. Also, you can integrate voting with your Discord bot, so when a player votes, it sends a message in your #votes channel, and you can add Discord roles for voting too, like a \u201cVoter\u201d role that gives extra perks in Discord. That\u2019s a quick way to make voting feel more rewarding across both game and chat.<\/p>\n<p>Now, let\u2019s wrap this up with what you need to do today, if you\u2019re just starting out. First, update your Spigot server. Second, download Vault and DeluxeVotes. Third, set up your server list sites in the config, balance your rewards, turn on anti-exploit. Fourth, promote it to your players. That\u2019s it. It\u2019s not rocket science, but doing it right will make a huge difference for your server\u2019s growth and retention.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.shunyecasting.com\/uploads\/47565\/small\/closed-axial-flow-pump-fan-impeller853ae.jpg\"><\/p>\n<p>If you\u2019re still confused, or if you run a network and need help setting up a custom voting system, I offer Spigot server setup and optimization for all kinds of servers, from small 10-player ones to big networks with hundreds of players. Whether you just need help configuring the plugin, or want a full custom voting system tailored to your server\u2019s needs, hit me up. I\u2019ve done this for years, and I make sure it\u2019s not buggy, balanced, and actually helps you grow your community. No jargon, no hidden fees, just straightforward work that gets results.<\/p>\n<p><a href=\"https:\/\/www.shunyecasting.com\/impeller\/\">Impeller<\/a> References:<\/p>\n<ol>\n<li>SpigotMC Official Documentation.<\/li>\n<li>DeluxeVotes Plugin Guide.<\/li>\n<li>Vault Economy Integration Notes.<\/li>\n<li>Minecraft Server List Voting API Guidelines.<\/li>\n<\/ol>\n<hr>\n<p><a href=\"https:\/\/www.shunyecasting.com\/\">Shandong Shunye Stainless Steel Co., Ltd.<\/a><\/p>\n<p>Address: Shandong Province, Binzhou City, Wudi County, Liubao Town, Zhangdong Road, Duliucun Village<br \/>E-mail: sales@wdshunye.com<br \/>WebSite: <a href=\"https:\/\/www.shunyecasting.com\/\">https:\/\/www.shunyecasting.com\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>What\u2019s good, fellow Minecraft server owners? If you\u2019re running a Spigot server, odds are you\u2019ve thought &hellip; <a title=\"How to implement a voting system on a Spigot server?\" class=\"hm-read-more\" href=\"http:\/\/www.sxyoto.com\/blog\/2026\/10\/09\/how-to-implement-a-voting-system-on-a-spigot-server-4cab-f0993a\/\"><span class=\"screen-reader-text\">How to implement a voting system on a Spigot server?<\/span>Read more<\/a><\/p>\n","protected":false},"author":36,"featured_media":530,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[493],"class_list":["post-530","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-industry","tag-spigot-4e28-f0d9b5"],"_links":{"self":[{"href":"http:\/\/www.sxyoto.com\/blog\/wp-json\/wp\/v2\/posts\/530","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.sxyoto.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.sxyoto.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.sxyoto.com\/blog\/wp-json\/wp\/v2\/users\/36"}],"replies":[{"embeddable":true,"href":"http:\/\/www.sxyoto.com\/blog\/wp-json\/wp\/v2\/comments?post=530"}],"version-history":[{"count":0,"href":"http:\/\/www.sxyoto.com\/blog\/wp-json\/wp\/v2\/posts\/530\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.sxyoto.com\/blog\/wp-json\/wp\/v2\/posts\/530"}],"wp:attachment":[{"href":"http:\/\/www.sxyoto.com\/blog\/wp-json\/wp\/v2\/media?parent=530"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.sxyoto.com\/blog\/wp-json\/wp\/v2\/categories?post=530"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.sxyoto.com\/blog\/wp-json\/wp\/v2\/tags?post=530"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}