Skip to main content

Voting

Reward your community for voting on server listing sites. Zander tracks votes as they come in, maintains a public monthly leaderboard, and automatically runs reward commands in-game at the end of each month — no manual processing required.

note

📸 Screenshot: The /vote page showing a list of voting sites, a vote button for each, and the current month's leaderboard


For Players

How to Vote

Browse all configured voting sites at /vote. Each site links directly to the server's listing page where you can cast your vote. Votes are recorded automatically once detected.

The page also shows the monthly leaderboard — the top voters for the current month. Climb the leaderboard to earn end-of-month rewards configured by your staff.

Monthly Rewards

At the end of each month, Zander automatically processes rewards for eligible voters. Rewards are delivered as in-game commands (items, currency, ranks, etc.) executed via the command bridge when you next join the server.

tip

Make sure your Minecraft account is linked to your website account so your votes are credited correctly.


For Staff

Dashboard

The voting dashboard at Dashboard → Voting (requires zander.web.voting) has four sections:

SectionPathDescription
Sites/dashboard/votingAdd, edit, and remove voting sites
Rewards/dashboard/voting/rewardsConfigure vote and monthly reward templates
Queue/dashboard/voting/queueMonitor the reward command queue
Leaderboard/dashboard/voting/leaderboardView monthly results and trigger manual processing

Managing Vote Sites

From Dashboard → Voting, you can add or edit voting sites. Each site has:

FieldDescription
Site NameDisplay name shown to players on the /vote page
Service NameInternal identifier used to match incoming vote webhooks
Vote URLDirect link to your server's listing on the voting site
ActiveWhether the site is shown and accepting votes
Display OrderOrder in which sites appear on the /vote page

Reward Templates

Reward templates define what commands run when a player votes or wins a monthly top-voter award. Configure them at Dashboard → Voting → Rewards.

FieldDescription
Reward Typevote (per-vote reward) or monthly_top (end-of-month award)
Command TemplateCommand to execute — use {player} as the player name placeholder
Execute AsWhether to run the command as console or the player
Server ScopeWhich server(s) the command should run on
ActiveWhether this template is included in processing

Monthly Reward Processing

Zander automatically processes monthly rewards on the 1st of each month at 00:05 UTC via voteMonthlyRewardCron. You can also trigger processing manually from Dashboard → Voting → Leaderboard → Process Month.

warning

Only trigger manual processing after the month has ended and all votes have been recorded. Processing the same month twice may result in duplicate rewards.

Reward Queue

Commands generated by reward processing are queued in the database and consumed by the zander-addon plugin via the command bridge. Monitor queue status at Dashboard → Voting → Queue, filterable by status (pending, claimed, completed, failed).


Configuration

Accepting Votes (Ingest)

Voting sites send vote notifications to your ingest endpoint:

POST /vote/ingest

Configure your voting site's webhook to point to this URL. The expected body is:

{
"playerName": "Steve",
"playerUuid": "...",
"serviceName": "your-service-name",
"receivedFrom": "site-identifier",
"receivedAt": "ISO date"
}

serviceName must match the Service Name configured for that site in the dashboard.

config.json

Monthly reward processing tie-breaking behaviour is configured in config.json (votes with equal counts are broken by earliest timestamp by default).


Feature Toggle

"vote": false

Disabling this removes the /vote page, stops vote ingestion, and disables the voting dashboard.