DaisyVotes — Overview
DaisyVotes is a voting plugin for Paper 1.21+. It receives votes itself, tracks them, and pays out rewards — with an in-game dashboard, a points shop, streaks, parties and leaderboards on top.
It is written in Kotlin on the Sculk framework. You never need to know that; configuration is plain YAML and all text is MiniMessage.
What it actually does
Section titled “What it actually does”A player runs /vote, sees which sites they can vote on right now, clicks one, and votes. DaisyVotes receives that vote itself — no NuVotifier — credits it, and pays out.
Everything else is built on that one loop, and all of it can be turned off:
- Vote points and a shop. Players earn points per vote and spend them in
/vote shop. Self-contained: no economy plugin needed, though aCommandreward hooks into yours if you have one. - A daily reward wheel. Vote every site in a day to earn one weighted spin.
- Streaks. Consecutive days voted, with a grace window, milestone rewards, and earnable freezes that protect a missed day.
- Vote parties. A server-wide goal that rewards everyone when it fills.
- Top-voter awards. Automatic daily, weekly and monthly Top 3 payouts, plus leaderboards.
- Discord webhooks and PlaceholderAPI. Both optional, neither needs a bot or a companion plugin.
A brand-new server with no economy, crate or permissions plugin still gets a complete working setup out of the box — the shipped rewards are vanilla items.
What it deliberately doesn’t do
Section titled “What it deliberately doesn’t do”Worth knowing before you install:
- It does not decide whether a vote is valid. The voting site does. Cooldowns configured here control what the menu shows; they never refuse a vote the site accepted.
- It does not touch your scoreboard sidebar or tab list. Those belong to your scoreboard plugin. DaisyVotes uses the action bar and an optional boss bar only.
- It does not run on Spigot or Folia. Paper, or a Paper fork.
Requirements
Section titled “Requirements”| Requirement | Details |
|---|---|
| Server software | Paper 1.21 through 1.21.11. Every 1.21.x release works — DaisyVotes detects what the server supports. Spigot is not supported; Paper or a Paper fork is required. |
| Java | 21 or newer. |
| Vote receiver | Built in. DaisyVotes ships its own vote receiver (Votifier v1/v2) — NuVotifier is not required. It listens on a port you open (default 8192). |
| NuVotifier | Optional. Only if you’d rather keep it (bridge mode); DaisyVotes imports its config automatically. |
| PlaceholderAPI | Optional. Needed for %daisyvotes_*% placeholders, and lets other plugins’ %placeholders% resolve inside menus.yml and your messages. Everything else works without it. |
| Storage | SQLite (default, zero setup), or MySQL/MariaDB/Postgres for a multi-server network. MySQL/MariaDB is the well-travelled path; Postgres is newer. |
| Folia | Not supported. |
What ships in the box
Section titled “What ships in the box”On first start, DaisyVotes generates its YAML config files plus its database in plugins/DaisyVotes/:
Directoryplugins/DaisyVotes/
- config.yml Main settings — visuals, engagement, wheel, points, parties, Discord, messages
- receiver.yml Built-in vote receiver — port, tokens, keys
- menus.yml Vote sites and GUI layout
- rewards.yml Every reward: per-vote, first vote, streaks, party, wheel, milestones, cumulative
- shop.yml Vote points shop entries
- storage.yml Storage backend (SQLite by default)
- network.yml Cross-server (Redis) — off by default
- … an SQLite database file, created automatically by Sculk Data
Each file is documented in detail:
How it fits together
Section titled “How it fits together”- A player votes on a server list. The list sends the vote to DaisyVotes’ built-in receiver.
- DaisyVotes matches the vote to a configured site, drops duplicates, and processes it asynchronously.
- It updates the player’s counts, streak, points, and the server vote-party progress, then grants rewards (queuing them if the player is offline).
- It checks the daily wheel set, fires Discord embeds, plays effects, and broadcasts as configured.
See Voting & Anti-Fraud for the full lifecycle, or head to Installation to get started.