pvpOption
Opt-in PvP for servers. Only flagged players can fight each other. Includes warmup timer, combat cooldown, action bar HUD, auto-unflag on inactivity, broadcast messages, and full admin controls. Optional expRepair compatibility.
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
pvpOption
pvpOption
A Minecraft mod/plugin that adds opt-in PvP flagging. Players must explicitly enable PvP before they can deal or receive damage from other players. Unflagged players are fully protected.
---
Branches
| Branch | Platform | MC Version | |---|---|---| | `multi_1.21.11` | Fabric + NeoForge (Architectury) | 1.21.11 | | `plugin_1.21.11` | Spigot, Paper, Purpur, Pufferfish | 1.21.11 | | `multi_26.x` *(upcoming)* | Fabric + NeoForge (Architectury) | 26.x | | `plugin_26.x` *(upcoming)* | Spigot, Paper, Purpur, Pufferfish | 26.x |
---
Features
- Opt-in PvP flagging — players choose when to engage - Configurable warmup period before PvP activates - Combat cooldown — prevents toggling off mid-fight - Action bar HUD showing PvP and combat status - Auto-unflag after configurable idle time - Broadcast toggle announcements to the server - Admin commands to force-set, lock, and unlock player flags - Config hot-reload without restarting the server
> Note: The mod syncs the `pvp=` value in `server.properties` to match its own `pvpEnabled` setting on startup. The mod's config is the source of truth — editing `server.properties` directly has no effect.
---
Commands
All commands use `/pvpoption` (alias `/pvp`).
| Command | Description | |---|---| | `/pvp` | Toggle your PvP flag | | `/pvp on` | Enable your PvP flag | | `/pvp off` | Disable your PvP flag | | `/pvp status` | Show your current PvP status | | `/pvp list` | List all flagged players |
Admin (`pvpoption.admin` permission)
| Command | Description | |---|---| | `/pvp admin` | Show current config values | | `/pvp admin enable|disable` | Enable or disable PvP system-wide | | `/pvp admin warmup <seconds>` | Set warmup duration (0 to disable) | | `/pvp admin cooldown <seconds>` | Set combat cooldown duration (0 to disable) | | `/pvp admin autounflag <minutes>` | Set idle auto-unflag time (0 to disable) | | `/pvp admin broadcast on|off` | Toggle flag change broadcasts | | `/pvp admin set <player> on|off` | Force-set a player's flag | | `/pvp admin status <player>` | View a player's PvP status | | `/pvp admin lock <player>` | Unflag and block a player from enabling PvP | | `/pvp admin unlock <player>` | Restore a player's ability to use PvP | | `/pvp admin reload [silent]` | Reload config from disk |
---
Configuration
Config is written on first launch. All values can also be changed live via admin commands.
Paper plugin — `config/pvpoption.json` Paper plugin — `plugins/pvpOption/config.json`
```json { "pvpEnabled": true, "cooldownSeconds": 30, "warmupSeconds": 5, "broadcastToggle": true, "autoUnflagMinutes": 0 } ```
| Field | Default | Description | |---|---|---| | `pvpEnabled` | `true` | Master switch for the PvP system | | `cooldownSeconds` | `30` | Seconds after combat before PvP can be disabled | | `warmupSeconds` | `5` | Seconds before PvP activates after opting in | | `broadcastToggle` | `true` | Announce flag changes to all players | | `autoUnflagMinutes` | `0` | Minutes of idle time before auto-disabling PvP (0 = off) |
---
Requirements
Paper: Architectury API Paper: Paper 1.21.11+