Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Tags
Creators
Details
A mod that lets players toggle PvP individually, while offering some neat extra features that I reckon you may find useful. I am also aware that quite a few mods do something similar, but I felt like I could make something beyond a simple toggle.
- PvP preferences: Players choose whether to disable or enable PvP for themselves
- Colored name tags: Uses vanilla's teams to show off players' PvP states
- Combat flagging: Works by temporarily disabling toggling upon engaging in PvP. Players who are flagged will be immediately killed when disconnecting for any reason while they have an active combat flag
- Global PvP: Force PvP on or off for all players server-wide; this takes priority over everything else
- Pet protect: Protect all tamed mobs from players whose PvP is off (the pet owner’s PvP state is not factored in).
- Forced PvP in other dimensions: You can force PvP in specific dimensions
- LuckPerms support: Allows you to customize accessibility to things
- Configurability: Some stuff can be configured; for info on what is configurable, go down to the configuration section
This mod ignores the
pvpsetting inserver.properties. Stick to the newest versions of the mod, as older versions may have bugs or lack features as my work is not perfect. Make sure to look at the dependencies section as well.
- Fabric API
- LuckPerms (Optional if you don't care about customizing permissions).
Spoiler
| Command | Description | Permission Node |
|---|---|---|
/pvp |
Toggles your PvP on or off. | pvptoggle.player.toggle |
/pvp <player> |
Change a player's PvP preference. | pvptoggle.op.other.toggle |
/pvp <player> timeout <duration> |
Prevent a player from toggling for a specified duration (in seconds). | pvptoggle.op.other.timeout |
/pvp status |
Displays your current PvP status. | pvptoggle.player.status |
/pvp status <player> |
View a detailed info list about a player's PvP state. | pvptoggle.op.other.status |
/pvp status flag |
Toggle displaying your PvP flag timer on or off. | pvptoggle.player.status |
/pvp global <state> <shouldBroadcast> |
Set the global PvP state to on, off, or neutral. The <shouldBroadcast> argument (true or false) is for whether to announce it or not. |
pvptoggle.op.global |
/pvp reload |
Reloads the configuration file. | pvptoggle.op.reload |
There's also the pvptoggle.op.exempt permission node that marks you as immune against penalties such as being flagged, being put on cooldown, etc.
Once again, as was said in the dependencies section, you can completely ignore permission nodes if you do not care for customizing them via another mod like LuckPerms. All nodes labeled as "player" are available to everyone by default, while ones labeled as "op" are available to anyone with an operator permission level of 2 or higher.
Spoiler
Configuration file path: config/pvptoggle/pvp-toggle.json (Generated on launch).
{
// WARNING: DO NOT COPY THIS EXAMPLE JSON
// Cooldown for toggling
"toggle_cooldown": 120.0,
// How long one is flagged for after engaging in combat
"combat_flag_duration": 60.0,
// Default PvP preference for new players
"default_pvp_preference": true,
// Console feedback
"broadcast_to_other_ops": false,
// These should be self-explanatory
"punish_combat_log": true,
"protect_tameables": true,
"force_pvp_in_other_dimensions": false,
"team_colors": true,
"prevent_item_pickup_when_pvp_off": false,
"forced_pvp_in_other_dimensions": {
"minecraft:overworld": false,
"minecraft:the_nether": false,
"minecraft:the_end": false
},
/* For example, putting "tpa" in the list of commands to blacklist will blacklist any command with the word "tpa" in it.
You are also able to blacklist specific commands such as "tpaaccept" without outright blacklisting every related command */
"blacklisted_commands_when_flagged": [
"tpa",
"home"
]
}
Every setting is a boolean value (true/false) besides toggle_cooldown and combat_flag_duration, which are floats that start from 0.0 to a maximum of 9999.0 seconds.
Edit the values and restart the server or use /pvp reload to apply said changes. Delete the JSON file if it ever becomes malformed to let it regenerate.
Thank you for downloading. I would really appreciate it if you could report any potential issues you encounter in the comments section of the CurseForge mod page, as I currently have no other way to receive feedback. You can also support me by sharing the mod around, as it really motivates me to work on it when there are people benefiting from its usage, no matter how small.









