ModN Vote
PluginMIT

ModN Vote

A privacy-first, yes/no voting plugin with Integrity hashing

27
Downloads
0
Followers
5 months ago
Updated
📦
2
Versions

📖About ModN Vote

ModNVote

Modern, transparent community voting for PaperMC 1.21.x

ModNVote is a privacy‑first yes/no voting plugin for Minecraft servers. It’s designed to:

  • Keep vote choices out of console logs.
  • Detect if anyone tampers with the vote data.
  • Give staff clear tools to audit and investigate issues.

✨ Key Features

  • GUI voting/modnvote opens a Yes/No GUI. Players click to vote.
    • No /modnvote yes / /modnvote no commands.
    • Vote choices are not logged as commands in console.
  • Single vote per player – limited by UUID (per round).
  • IP‑based duplicate prevention – with a configurable bypass node.
  • Cryptographic integrity seal over tallies and voter UUID list using HMAC‑SHA256.
  • Integrity‑first voting – the existing tally must be cryptographically valid before a new vote is accepted.
  • Compromise detection – if someone edits the database by hand, ModNVote will notice and refuse further voting until the issue is resolved.
  • Status with self‑awareness/modnvote status shows:
    • YES / NO tallies,
    • current integrity status (valid vs compromised), and
    • whether the tally currently includes a vote from the viewer.
  • Admin tools – audit summaries, grouped IP audits, round reset and config reload.
  • PlaceholderAPI support – expose tallies and percentages for scoreboards / UIs.
  • Built for PaperMC 1.21.x and Java 21.

ModNVote is the spiritual successor to PineVote, rebuilt cleanly under the MODN METL brand with a stronger focus on privacy and integrity.


🕊️ Privacy & Integrity

Privacy

  • Players vote via a GUI. Only /modnvote appears in logs, not the specific yes/no choice.
  • Vote details are stored in SQLite, not echoed to console.
  • Admin audits can reveal who participated, but not which way players voted just from logs alone.

Integrity

  • ModNVote computes an HMAC‑SHA256 over:
    • round id,
    • YES / NO tallies, and
    • ordered list of UUIDs who participated.
  • The seal is verified before each vote and for /modnvote status / /modnvote verify.
  • If the seal fails, the system is flagged as compromised and new votes are rejected until reset or fixed.

There is intentionally no force‑approve mechanism for compromised tallies.


🕹️ Commands

All commands are /modnvote ...:

  • /modnvote – open the Yes/No GUI and cast your vote.
  • /modnvote status – show tallies, integrity status, and whether your vote is included.
  • /modnvote verify – manually re‑verify cryptographic integrity.
  • /modnvote reset – clear the current round and reset tallies.
  • /modnvote reload – reload configuration.
  • /modnvote audit – quick numeric summary (total, bypass, YES, NO).
  • /modnvote fullaudit – group voters by IP and split bypass vs others.

🔐 Permissions

modnvote.use            – allow /modnvote (GUI)
modnvote.vote           – allow casting a vote
modnvote.status         – allow /modnvote status
modnvote.verify         – allow /modnvote verify

modnvote.admin.reset    – allow /modnvote reset
modnvote.admin.reload   – allow /modnvote reload
modnvote.admin.audit    – allow /modnvote audit
modnvote.admin.fullaudit – allow /modnvote fullaudit

modnvote.bypass         – bypass IP‑based duplicate check

The bypass node is configurable and can be pointed at an existing alt‑account / anti‑VPN plugin’s bypass permission.


🔌 PlaceholderAPI

If PlaceholderAPI is present, ModNVote registers placeholders such as:

%modnvote_yes%
%modnvote_no%
%modnvote_total%
%modnvote_yes_percent%
%modnvote_no_percent%

Ideal for scoreboards, sidebars, bossbars, etc.


⚙️ Requirements

  • Server: PaperMC 1.21.x
  • Java: 21
  • Dependencies:
    • Optional: PlaceholderAPI

📥 Installation

  1. Download the latest modnvote-*.jar.
  2. Drop it into your plugins/ folder.
  3. Restart the server.
  4. Configure permissions (e.g. with LuckPerms).
  5. Ask players to use /modnvote to open the GUI and vote.

🧭 Roadmap

  • Multi‑question polls with richer GUIs.
  • MySQL support for large networks.
  • Time‑boxed votes with automatic start/stop.
  • Optional external dashboard integration.

📜 License & Credits

  • License: MIT
  • Copyright (c) 2025 MODN METL LTD
  • Developed by Jamie E. Thompson (@jamjet3)
  • Community testing: Pinecraft Equestrian SMP

If you use ModNVote on your server, a star on the GitHub repo is always appreciated! 🚀