ConsentPVP
Respect in Battle: ConsentPVP for a Better Gaming Experience!
ConsentPVP is a Minecraft Paper plugin that prevents unwanted PvP by requiring mutual consent. PvP damage is only allowed when both the attacker and the defender have PvP consent enabled. By default, players do not have PvP consent enabled, so the server is peaceful until players opt in.
Consent is per-player and persistent: it is saved by UUID, loaded when a player joins, and saved again when they quit (or the moment they toggle it). ConsentPVP goes beyond simple melee checks — it blocks a wide range of direct and indirect PvP, from projectiles and explosions to player-placed lava and fire.
ConsentPVP is currently in development. Configuration keys and behaviour described here target version 1.1.0.
Why ConsentPVP
- Consensual by default — players start with PvP disabled and opt in when they want to fight.
- Mutual, not one-sided — combat only succeeds when both players have consent enabled.
- Comprehensive protection — blocks melee, projectiles, explosions, potions, player-placed lava/fire, and more.
- Persistent & lightweight — consent is stored per UUID in
playerdata.yml, with periodic cleanup of offline entries. - Clear feedback — MiniMessage-formatted messages and optional nametag indicators show PvP status at a glance.
Feature Summary
| Feature | What it does |
|---|---|
| Mutual consent | PvP only succeeds when both attacker and defender have consent enabled. |
| Self-service toggles | Players enable or disable their own PvP consent with /pvp. |
| Toggle cooldown | A configurable cooldown stops players from rapidly toggling PvP mid-fight. |
| Persistent data | Consent is saved per player by UUID in playerdata.yml. |
| Disable on death | Optionally disables a player's consent automatically when they die. |
| Nametag indicators | Optional visual prefixes above players reflecting PvP status. |
| Indirect PvP protection | Blocks projectiles, TNT, end crystals, potions, explosions, player lava/fire, and more. |
| Vanish-aware | Silently blocks attacks from vanished players. |
| MiniMessage formatting | All player-facing messages support MiniMessage. |
| Periodic cleanup | Runs every 5 minutes to clear expired cooldowns and offline cache entries. |
Requirements
| Requirement | Detail |
|---|---|
| Server software | Paper |
| API version | 1.20 |
| Built against | Paper API 1.21.5-R0.1-SNAPSHOT |
| Java | 21 |
Where to Next
- Installation — requirements, install steps, and building from source.
- Commands — every command, argument, and what it does.
- Permissions — the full permission node list.
- Configuration — annotated
config.ymlreference. - PvP Protections — exactly what ConsentPVP blocks when consent isn't mutual.
- Nametag Indicators — visual PvP status above players.
- Player Data — how consent is stored and loaded.
- Admin & Maintenance — admin commands and operational notes.
- Troubleshooting & FAQ — common questions and fixes.