PVP Toggle
A PVP toggle plugin: players choose whether to participate in PVP; admins can manage others’ state. Supports Folia, LuckPerms, PlaceholderAPI, and per-world PVP state.
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.
PVP Toggle
PVP Toggle
A Paper 1.21 PVP toggle plugin: players choose whether to participate in PVP; admins can manage others’ state. Supports Folia, LuckPerms, PlaceholderAPI, and per-world PVP state.
---
Features
- LuckPerms: `/pvp` or `/pvp on` / `off` / `toggle` to change your own PVP - LuckPerms: `/pvp on|off|toggle <player>` to manage someone else’s PVP - LuckPerms: `/pvp status` for yourself, `/pvp status <player>` for others (with permission) - LuckPerms: `/pvp reload` to reload config (with permission) - LuckPerms: Optional separate PVP state per world - LuckPerms: Fewer disk writes - LuckPerms: Configurable cooldown after toggling your own PVP - LuckPerms: Configurable sound, ActionBar, and Title on toggle - LuckPerms: Placeholders like `%pvptoggle_status%` - LuckPerms: Region-aware scheduling; async save so it doesn’t block - LuckPerms: Permissions handled by LuckPerms when installed
---
Commands
| Command | Description | Permission | |---------|--------------|------------| | `/pvp` | Same as `/pvp toggle`; toggles your PVP | pvptoggle.use | | `/pvp on` | Enable PVP for yourself | pvptoggle.use | | `/pvp off` | Disable PVP for yourself | pvptoggle.use | | `/pvp toggle` | Toggle your PVP | pvptoggle.use | | `/pvp status` | View your own PVP status | pvptoggle.use | | `/pvp status <player>` | View another player’s PVP status | pvptoggle.status.other | | `/pvp on|off|toggle <player>` | Set PVP for another player | pvptoggle.admin | | `/pvp reload` | Reload config.yml | pvptoggle.reload |
---
Permissions
| Permission | Description | Default | |------------|--------------|---------| | `pvptoggle.use` | Use /pvp, on/off/toggle, and /pvp status (self) | true | | `pvptoggle.admin` | Use /pvp on|off|toggle <player> | op | | `pvptoggle.reload` | Use /pvp reload | op | | `pvptoggle.status.other` | Use /pvp status <player> | op |
---
config.yml
- messages.: Default PVP state for new or unknown players (true/false) - messages.: Whether to keep each player’s choice when they rejoin - messages.: Whether to store PVP state per world (separate per world) - messages.: Debounce time in seconds before writing to disk; 0 = save every time - messages.: Cooldown in seconds after toggling your own PVP; 0 = no cooldown - messages.: Feedback when toggling - messages.: Play a sound - messages.: Sound name (e.g. ENTITY_EXPERIENCE_ORB_PICKUP) - messages. / messages.: Volume and pitch - messages.: Show message in ActionBar - messages.: ActionBar text; `%status%` = on/off - messages.: Show title - messages. / messages.: Title and subtitle; `%status%` = on/off - messages. / messages.: Values returned by PlaceholderAPI placeholders - messages.*: All messages; supports `&` color codes and `%player%`, `%seconds%`, `%status%`
---
PlaceholderAPI
With PlaceholderAPI installed, these placeholders are registered (return values are configurable):
| Placeholder | Description | |-------------|-------------| | `%pvptoggle_status%` | Current player’s PVP status (in that player’s context) | | `%pvptoggle_status_<player>%` | A specific player’s PVP status (e.g. `%pvptoggle_status_Steve%`) |
Default return values are `on` / `off`; change them with placeholder-off and placeholder-off in config.
---
Compatibility
- PlaceholderAPI: Paper 1.21+ (or compatible forks) - PlaceholderAPI: Supported (`folia-supported: true`); uses AsyncScheduler for saves - PlaceholderAPI: Soft dependency; permissions are managed by LuckPerms when present - PlaceholderAPI: Soft dependency; placeholders are registered when present
---