PvP Toggle logo

PvP Toggle

Mod

by Vilantious

Combat flagging and persistent PvP preferences to pet protection and more!

Downloads

103,475

Type

Mod

CurseForge ID

1288135

Last Updated

Apr 9, 2026

Description

Title

Environment Loader Modrinth CurseForge

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.

Features this mod offers

  • PvP preferences: Players choose whether to disable or enable PvP for themselves, which is persistent on server restart (things like combat flags, cooldowns, and the global PvP state are not).
  • Combat flagging: Works by temporarily disabling toggling upon engaging in PvP. Players who are flagged will be immediately killed when attempting to log off while they have an active combat flag. It does not account for how the player got disconnected (say, by losing connection) to avoid potential workarounds.
  • 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. Attackers are flagged upon damaging a tame (the pet owner’s PvP state is not factored in). Feel free to turn this off if you'd rather use a dedicated mod to handle this.
  • Forced PvP in other dimensions: Forced PvP in any dimension that isn't the Overworld.
  • LuckPerms support: Allows you to control accessibility to things.
  • Configurability: Some stuff can be configured; for info on what is configurable, go down to the configuration section.

Disclaimer

This mod ignores the pvp setting in server.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 read the dependencies section as well.

Dependencies

  • Fabric API
  • LuckPerms (This is entirely optional if you don't care about customizing permissions).

Commands & Permissions

  • /pvp - Toggles your PvP on or off (Permission Node: pvptoggle.player.toggle).
  • /pvp <player> - Change a player's PvP preference (Permission Node: pvptoggle.op.other.toggle).
  • /pvp <player> timeout <duration> - Prevent a player from toggling for a specified duration (in seconds) (Permission Node: pvptoggle.op.other.timeout).
  • /pvp status - Displays your current PvP status (Permission Node: pvptoggle.player.status).
  • /pvp status <player> - View a detailed info list about a player's PvP state (Permission Node: pvptoggle.op.other.status).
  • /pvp status flag - Toggle displaying your PvP flag timer on or off (Permission Node: 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 (Permission Node: pvptoggle.op.global).
  • /pvp reload - Reloads the configuration file (Permission Node: pvptoggle.op.reload).

Note: Permission nodes are only available in version 1.4.0 or above.

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.

Configuration

Configuration file path: config/pvptoggle/pvp-toggle.json (Generated on startup).

{ // 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, // I reckon the rest is self-explanatory "punish_combat_log": true, "protect_tameables": true, "force_pvp_in_other_dimensions": false }

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.

Support

Thank you for downloading. I would really appreciate it if you could report any potential issues you encounter in the comments section of the 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.

Similar Mods

Included in Modpacks

External Resources