VoteRoulette
Randomized rewards for voting
Home | Permissions | Commands | Config Guide | Files | Change Log | Dev
VoteRoulette is a comprehensive, customizable, and fun Votifier vote listener. VoteRoulette allows you to make a list of rewards and players will receive one at random when they vote for your server on Minecraft server lists. This makes voting exciting and different each time a player votes and will encourage them to vote again to see what they will get next time!
Features
- Extremely flexible! VoteRoulette doesn't just give anything, it does anything.
- Easy to setup! Includes an in-game Award Creator. Avoid those pesky YAML syntax errors!
- Highly customizable rewards!
- Rewards can contain any combination of items, currency, commands, and xp levels.
- Items in rewards support enchants, custom names, lore descriptions, variable amounts, and Data ID's (For things like colored wool, or any other block/item in the game).
- Rewards have tons of other options too! Set things such as permission groups (Vault required), chance modifiers, delays for commands, eligible websites, eligible players, number of consecutive days of voting required, and so much more! (See the Config Guide.
- Ability to set a vote threshold. Players won't receive a reward till they have met the threshold. This is useful when you have your server posted on multiple server lists and you want players to vote on them all before they get rewarded.
- Special rewards called "Milestones" that are awarded to players when they have reached a set amount of votes. This gives players a goal and even more incentive to vote.
- Ability to make Milestones recurring. Make a Milestone set to every 50 votes or a single epic Milestone at 300 votes!
- Offline voting support! If a player votes for the server but isn't in game to receive rewards, the rewards will be there waiting for them to claim the next time they log on.
- Option to have awards auto-claimed when a player logs in!
- Inventory Protection. If a reward won't fit in a players inventory, VoteRoulette will notify the player and let them reclaim once they have cleared space.
- You can disable Inventory Protection, too. Items will instead fall at the feet of the player if their inventory is full.
- Visual Representations of Rewards/Milestones!
- Players can easily see the contents of Rewards/Milestones in a mock inventory screen.
- Editable Broadcast Messages! (Supports color codes)
- Set a custom message for a specific Reward/Milestone that will override the default message.
- A /vote command. Lists all your voting sites to the player.
- Ability to make Fancy Links™ which allow you to hide those long ugly links behind clickable text.
- Reminders!
- A periodic reminder for all players to vote!
- An automatic reminder after 24 hours have passed since a player's last vote!
- Extensive Multi-World support!
- Set specific worlds per Reward/Milestone.
- Globally blacklist worlds!
- Stats Tracking!
- See the top all time voters using the Scoreboard.
- MySQL support!
- UUID support!
- VoteRoulette uses Mojang's account system API (https://api.mojang.com/profiles/minecraft) in order to ask for the UUID of a given player name. You can turn off this functionality in the config by setting useUUIDs to false. (as of v2.2.2).
- A player blacklist. Prevent certain players from getting rewards.
- Option to switch blacklist to a whilelist. Only players in list can receive rewards!
- Option to switch blacklist to a whilelist. Only players in list can receive rewards!
- Option to turn randomization off! Just want to have a single reward and skip the randomization processes? No problem! VoteRoulette can be as simple or complex as you want it to be.
- Localization Options! Files are available to edit a lot of text in VoteRoulette!
- Check out and share translations in the forum!
- Automatic update checking! Always be notified of the latest version! You can disable this in the config by setting checkForUpdates to false.
- Update Safe! VoteRoulette doesn't use any native Minecraft code and therefore won't break with future versions of Bukkit. (Given there isn't major API changes)
- Metrics tracking! Help us see how VoteRoulette is used. (as of 2.0.1)
- Using Hidendra's plugin metrics system, the following information is collected and sent to mcstats.org: A unique identifier, the server's version of Java, whether the server is in offline or online mode, VoteRoulette's version, server's version, OS version/name and architecture, core count for the CPU, number of players online, Metrics version
- If you do no want these stats collected, you can turn them off at /plugins/PluginMetrics/config.yml by setting opt-out to true.
Requirements
You must have Votifier installed.
If you want to have rewards that give currency or rewards that only apply to certain permission groups, you must also have Vault installed.
Getting Started
- Make sure Votifier is at least on your server. If you plan to use the currency and permission group options, make sure Vault is installed as well. Are you using BungeeCord? Check out this post!
- Place VoteRoulette in your server's plugins folder. Do NOT place it in Votifier's "listeners" folder.
- Start your server to let VoteRoulette generate the default files. A copy of the config can also be found here.
- Edit settings and add awards. Visit the Config Guide for help or the Award Setups forum for ideas.
- Type "/vr reload" in your console to put the changes into effect!
Still stuck? Ask for help on the VoteRoulette forum!
Planned Additions
- Timed Milestones; Weekly, monthly, daily
- Set a votestreak with a range of days
- Custom fireworks support for item prizes
- Out-of-game Award Creator GUI?
Visit VoteRoulette's Trello page to see what I am currently working on!
I welcome your feedback! Drop me a comment telling me what you think. If you have any suggestions or ideas, please feel free to submit a ticket with a feature request.
If you have found a bug, issue, or error, please submit a ticket rather than leaving a comment! Players who post errors or file contents straight into a comment will be ignored and comments may be deleted.
Like this plugin? Contribute to the pizza and drinks fund. I deeply appreciate your support!
@ZachBail
I haven't implemented wipestats for use with databases yet. Simply because the main use case for wipestats is to do what you wanted to do and I put it there when flatfile was the only backend option for that reason. But with a database, I can now easily track when votes occurred, so I added the comamnds "/vr top thismonth" and "/vr top lastmonth". Why not use those instead of wiping data? If you don't like the command wording, you can change it in the localization file.
@Sharkykzn
VoteRoulette by default gives one reward per vote. Defining worlds with the "worlds" node just limits the reward to being claimed in those worlds. Using the "reroll" node, however, can allow you to give multiple awards with one vote. I answered a similar question here.
@Karudel
Expression are only available for item amounts at the moment, but I will expand it to money and xp when I can :)
@Filmjolk
Right now the closest way to accomplish what you are looking for is using the reroll option. I am working on improving this feature next and it will allow you to make VR function exactly how you want here.
@Sharkykzn
Deleting lines 6 thru 12 should give you diamonds in roh OR emeralds in sky every vote. This will pay for whatever world you are in when the vote is registered as long as your config is setup correctly.
You may be able to set it up to give you a claimable milestone that you hit every vote. This could make it give you rewards for both worlds but I've never tried it. Like if you had emeralds paying in skyblock for every normal award, then hitting a 1 vote milestone to pay you a diamond in roh at the same time.
Might work but I'm not sure.
If you are using MYSQL, does "/vr wipestats all all" work with anyone else? It tells me that its started and there may be lag. That's it... lol
I'd like to be able to do this at the beginning of each month so "/vr top total" displays the monthly numbers, not all time.
Thanks for what seems to be an awesome plugin, and jut maybe the solution I need.
A bit of background server wise, runnning a Spigot based server on a hosting environment, currently have multiple worlds (Towny & SkyBlock) managed by Multiverse Inv and permissions by Group Manager, world specific.
Now I would like each vote to provide a world unique reward for the player in each world - SkyBlock uses emeralds as reward and Towny gets diamonds. Player to get rewards when entering the respective world.
Tried the following config, but only world player is actually in gets award. (Actually still gives diamonds in SkyBlock), is it possible for the player to get other reward when they join the other world, like SkyBlock from Towny?
Below is awards.yml: awards.yml file...
Any pointers to resolve please.
Hello ebiggz, I'm wondering if its possible to use math expressions in the money variable? If not, would you be able to make it so that you can use math expressions with money amounts?
Example:
money: 30+(%lifetime%)
Thank you for reading.
How do I give out a votestreak reward and a random reward from the regular award table? The votestreak overrides the random reward. I want to always give the voting player a regular reward and an extra reward for votestreak. Is there any way of achieving this without creating a duplicate of all the rewards each containing the votestreak string. I have over 150 different rewards and I want 5-7 different votestreak rewards, so I would end up with 1000 different rewards.
Short example of my awards.yml
@ebiggz
Thanks very much!!! You are a fast developer!
@ZachBail
Have to agree, it's a truly amazing plugin!!
As far as I'm concerned, there should never be a need for any other vote listener. VoteRoulette simply does it all.
@Chiaration
Thanks for the heads up.
The issue has been resolved and is awaiting approval.
You can pick up the build early here, if you want.
@ZachBail
I sincerely appreciate that, Zach. I've added you to the thank you page.
@ebiggz
VoteRoulette v3 = I love you XD
Just sent yuh $20.00 THANK YOU!
This is a really important issue/bug on my server:
http://www.mc-nation.net/forum/m/29568137/viewthread/21287066-voting-issue/post/last#last
@Karudel
I don't think you are doing anything wrong. In this case, though, you are using the players current votestreak, which is consecutive days voting not the amount of votes per day. Meaning you wont see a difference doing forcevote a bunch of times in the same day. So your expression means you would need to vote 4 days in a row to go from 2 to 3 items, 8 days in a row to go 3 to 4 items, etc.
One thing you can do to help you see what its calculating is to turn on "showVariableAmountExpression" under the GUI settings, and then view your reward with /vr rewards. It will calculate the number of items you should get if you voted in that moment as well as put the expression with the variables plugged in when you hover your mouse over the item.
@MyNameIsHenry
Hi!
A great resource for setting up VoteRoulette is the Config Guide.
I've linked that straight to the section about setting up worlds for specific rewards. :)
EDIT: I just saw your forum post. I've replied there with a more detailed response to what you are looking for.
@ebiggz
As well, as promised for releasing the MySQL support, I will be donating to you very soon. ^_^
One question though, I tried using the math expressions, but when I do /vr forcevote on my character, the incremental increase doesn't seem to take effect, am I doing something wrong?
amount: 2+(%currentstreak%/4)
That's what I have the increment set to.
@zferrell
http://dev.bukkit.org/bukkit-plugins/servershop-gui/
Hope this helps.
Hello, how do I setup Multi-World support?
@zferrell
There is one feature in development that will affect this. I am working on changing how VoteRoulette handles prizes in a way that will allow other developers to easily hook in and create their own custom prize types (tokens, for example). Once that is out, if there is still demand for a token type plugin, I may create it if someone else doesn't. :)
@ebiggz
Great! I would be happy if you did it. I cannot find a good tokens plugin that fits my needs, and the one on Spigot that I was telling you about basically just went inactive because someone leaked his plugin or something. Either way I will be using this, but I guess I will have to pay someone to create a good tokens plugin for me.
@zferrell
Ah I see! Well, it's something I can certainly throw in my prospect features list and revisit at a later time. Though, I am typically of the mindset to strive to have a smaller subset of features that are done right, than a laundry list of features that are done potentially mediocre. I'll keep it in mind though!