Overview#
PvPManager is a robust plugin designed to regulate player-versus-player combat on Minecraft servers. Its primary functions include preventing 'combat logging' (players disconnecting to avoid death), managing PvP toggles, protecting new players, and preventing kill farming. It integrates seamlessly with protection plugins like WorldGuard to ensure a fair and competitive environment.
Key features include:
- Combat Tagging: Prevents players from escaping combat through commands or logging out.
- Anti-Combat Log: Punishes players who disconnect during a fight.
- Newbie Protection: Grants temporary PvP immunity to new players.
- Kill Abuse Prevention: Stops players from repeatedly killing the same target to farm stats.
- PvP Toggle: Allows players to opt-in or out of PvP combat globally or individually.
Combat Mechanics#
Combat Tagging
When a player attacks another player (or is attacked), they enter a 'Tagged' state. While tagged, players are restricted from performing certain actions to ensure the fight reaches a conclusion.
- Duration: Configurable timer (default is usually 10-20 seconds).
- Restrictions: Players cannot use prohibited commands (e.g., /tp, /home, /spawn) or fly while tagged.
- Visual Indicators: The plugin can display the remaining tag time via the Action Bar, Boss Bar, or chat messages.
Combat Logging
If a player leaves the server while tagged, they are considered to have 'Combat Logged.' The plugin can be configured to apply several punishments:
- Instant Kill: The player is killed immediately upon logout.
- Inventory Drop: The player's items are dropped at their logout location.
- NPC Spawning (Premium): An NPC is spawned in the player's place. If the NPC is killed, the player dies and loses their items when they next log in.
- Money Penalty: Deducts a percentage or fixed amount of currency via Vault integration.
Kill Abuse Prevention
To prevent players from farming kills, PvPManager tracks how many times a player kills the same victim. If a threshold is reached:
- The killer may be kicked or banned.
- The killer may stop receiving rewards/stats for kills on that specific player.
- A command can be executed to punish the abuser.
Protection Systems#
Newbie Protection
New players are automatically protected from PvP for a set amount of time (e.g., 60 minutes) upon their first join. This allows them to gather basic resources without being targeted by veteran players.
- Automatic Expiration: The protection expires after the time limit is reached.
- Manual Removal: Players can use
/newbie disableto end their protection early if they wish to engage in PvP.
Respawn Protection
Prevents 'spawn killing' by granting a few seconds of invulnerability to players after they respawn. This protection is instantly cancelled if the player attacks someone else.
PvP Toggle
Players can control their own PvP status using the /pvp command.
- Cooldowns: Prevents players from toggling PvP on and off rapidly during a chase.
- Force PvP: Admins can force PvP to be enabled in specific worlds or for specific players.
Commands#
Below is a comprehensive list of commands available in PvPManager.
| Command | Description | Permission |
|---|---|---|
/pvp [on/off] |
Toggles your personal PvP status. | pvpmanager.command.pvp |
/pvp [player] [on/off] |
Toggles another player's PvP status. | pvpmanager.command.pvp.others |
/pvpoverride |
Allows PvP anywhere, ignoring all protections. | pvpmanager.command.override |
/pvpstatus [player] |
Checks the PvP status of yourself or another. | pvpmanager.command.pvpstatus |
/pvplist |
Lists all players with PvP enabled. | pvpmanager.command.pvplist |
/pvpinfo |
Displays detailed PvP statistics for a player. | pvpmanager.command.pvpinfo |
/pvptag [player] |
Manually tags a player in combat. | pvpmanager.command.tag |
/untag [player] |
Removes the combat tag from a player. | pvpmanager.command.untag |
/pvpglobal [on/off] |
Toggles PvP for the entire server. | pvpmanager.command.pvpglobal |
/newbie [add/remove/check] |
Manages newbie protection for players. | pvpmanager.command.newbie |
/announce [message] |
Sends a broadcast to all players. | pvpmanager.command.announce |
/soup |
Refills health using mushroom soup (Premium). | pvpmanager.command.soup |
/pvpgrant [player] [time] |
Grants temporary PvP status (Premium). | pvpmanager.command.pvpgrant |
Permissions#
Permissions are divided into administrative access and player exemptions.
Administrative Groups
pvpmanager.admin: Grants access to all administrative commands including/pvpoverride,/pvpglobal, and management of other players' PvP status.
Exemptions and Bypasses
These permissions allow specific players (like staff) to bypass plugin restrictions.
| Permission | Effect |
|---|---|
pvpmanager.exempt.combatlog |
Player is not punished for disconnecting while tagged. |
pvpmanager.exempt.combattag |
Player is never tagged in combat. |
pvpmanager.exempt.blockcommands |
Player can use any command while tagged. |
pvpmanager.exempt.disableactions |
Fly, Gamemode, and Godmode are not disabled on tag. |
pvpmanager.exempt.killabuse |
Player is exempt from kill abuse monitoring. |
pvpmanager.exempt.respawnprotection |
Player does not receive protection after respawning. |
pvpmanager.exempt.pvptogglecooldown |
Removes the cooldown for the /pvp command. |
pvpmanager.exempt.spawnnpc |
No NPC is spawned when the player logs out (Premium). |
Configuration#
The config.yml file allows for deep customization of the plugin's behavior. Key sections include:
- Default PvP: Set whether PvP is enabled by default for new players.
- Combat-Tag:
Duration: Time in seconds the tag lasts.Block-Commands: List of commands to disable during combat.Disable-Fly: Automatically disables flight when tagged.
- Punishments:
Enabled: Enable or disable combat log punishments.Kill-On-Log: Whether to kill the player on logout.Commands-On-Log: Custom commands to run when someone logs out (e.g., broadcasting a message).
- World-Exclusions: List of worlds where PvPManager features should be disabled.
Integration
PvPManager supports several external plugins:
- WorldGuard: Respects 'pvp' flags in regions.
- Vault: Used for monetary penalties and rewards.
- PlaceholderAPI: Provides placeholders like
%pvpmanager_pvp_status%and%pvpmanager_tag_time%for use in scoreboards or chat plugins.