mProtect icon

Mod - Modrinth

mProtect

Exploit, lag-machine, and event-spam protection for Paper, Purpur, and Folia.

mProtect project image

Source-provided project description. FreeMinecraftMods keeps creator credit and adds separate compatibility and decision guidance below.

Project overview

mProtect Exploit, lag-machine, and event-spam protection for Paper, Purpur, and Folia. ## What mProtect checks - Illegal materials, enchantments, attribute modifiers, durability, oversized components, and deeply nested containers. - Item names/lore, custom potion effects, fireworks, book pages/authors/titles, sign text/click events, and anvil names/costs. - Command length, frequency, blocked commands, namespaces, and roots. - Unauthorized creative or spectator mode. - Excessive entities per chunk and per entity type using maintained counters instead of repeated nearby-entity scans. - Excessive player movement into new chunks. - Redstone clocks, piston chains, hopper networks, dispensers, fluid loops, fire spread, sculk cascades, and block-physics storms. - TNT priming, explosion bursts, oversized blast block lists, spawner bursts, and portal-search or portal-creation abuse. - Inventory-click, interaction, block-change, item-drop, and projectile event floods. Every detection can be written to H2 and JSONL, shown to online staff, and optionally sent to a Discord webhook. English and Russian messages are included. ## Requirements - Java 25 - Paper, Purpur, or Folia 26.2 - No required plugins or external database mProtect protects the server event layer. Malformed packets must be rejected before Bukkit events exist, so use Paper's native packet limiter as described in [Paper hardening](docs/PAPER-HARDENING.md). mProtect does not claim packet interception it cannot perform. ## Installation 1. Stop the server. 2. Put `mProtect-1.2.0.jar` into the server's `plugins` directory. 3. Start the server once to create `plugins/mProtect/config.yml` and the language files. 4. Review the limits before opening the server to players. 5. Run `/mprotect status` and `/mprotect test items` from the console or as an administrator. Use `/mprotect reload` after changing checks, limits, alerts, or messages. Changing storage settings requires a restart. ## Configuration guide The generated `config.yml` is the source of truth. Missing options are restored automatically and invalid numeric values are replaced with safe defaults. ### Items and containers `items.blocked-materials` contains materials players must not possess. Validation also covers overstacking, enchantments, attributes, durability, names, lore, custom potion effects, fireworks, serialized size, and nested containers. Conservative defaults avoid rejecting intentional unbreakable rewards unless `items.reject-unbreakable` is enabled. `items.action` accepts: - `REMOVE` — remove the unsafe item. - `REPLACE` — replace it with `items.replacement`. - `LOG` — keep it and record the violation. - `KICK` — cancel the action and disconnect the player. Most checks run when an inventory is actually touched. `items.fallback-scan-minutes` controls the low-frequency safety scan; it is not a per-tick scan. ### Books, signs, and anvils The `books`, `signs`, and `anvils` sections set character, component, and repair-cost limits. Set `books.strip-formatting` or `anvils.strip-formatting` only if formatting should be removed. Sign click events can be stripped independently with `signs.strip-click-events`. ### Commands Explicit blocked names are checked after removing a namespace, so `/minecraft:op` cannot bypass the `op` rule. Config version 2 no longer blocks every vanilla namespaced command by default. `blocked-namespaces` remains available when an entire plugin namespace must be prohibited. ### Entities and chunks `entities.max-per-chunk` limits the total tracked entities in a chunk, while `entities.max-per-type-per-chunk` limits a single type. Existing chunks are counted as they load and counters are updated on spawn and removal. `chunk-loads` limits how quickly a player may cross into new chunks. Increase the limit for servers where fast elytra travel is expected. ### Lag-machine protection Every hot-path rule is a bounded O(1) window keyed by chunk, block, or player. No rule scans nearby entities or the whole world: - `redstone` freezes additional current changes after the per-chunk threshold. - `automation` limits piston movement, hopper transfers/pickups, and dispenser actions. - `physics` limits block updates, fluids, spreading fire/sculk, and oversized multi-block growth. - `explosions` limits TNT priming, explosion frequency, affected blocks, and drop yield. - `spawners` applies both per-spawner and per-chunk spawn windows. - `portals` bounds portal creation, player use, search radius, and creation radius. - `activity` cancels excessive player-generated inventory, interaction, block, drop, and projectile events. The defaults are intentionally generous for ordinary survival servers. Technical servers should tune one section at a time using `/mprotect status` and `/mprotect violations`. Administrative bypasses exist only for attributable player limits; machine limits have no bypass because most world events have no trustworthy owner. ### Alerts and storage - `alerts.staff-chat` sends deduplicated alerts to players with `mprotect.alerts`. - `alerts.file-log` writes `plugins/mProtect/violations.jsonl`. - `alerts.discord` can send alerts to an HTTPS Discord webhook. Keep its URL privat

FreeMinecraftMods decision guide

This mod is most relevant to players looking for management on folia, paper, purpur. Treat those labels as discovery hints, then verify the exact file and dependency list on the official project page.

The source record was updated on Sep 2, 2026, which is a recent freshness signal. A recent date does not guarantee support for every loader or Minecraft version, so still inspect the current file list.

What to verify before choosing a file

  • Confirm that the file is published by the credited creator on the linked official source.
  • Match the Minecraft version exactly instead of relying only on a broad category label.
  • Read dependencies, incompatibilities, and changelog notes before updating an existing instance.
  • Match the loader or server platform and its required version. Forge and NeoForge are not interchangeable.
  • Back up worlds and configuration files before testing the project in a long-term save or public server.

Compatibility at a glance

Minecraft versions in this snapshot: 26.2

Loaders and platforms: folia, paper, purpur

management

Before you install

Match the exact Minecraft version and loader, install every required dependency, and test in a separate profile before opening an important world. Keep a backup before changing a working mod list.

Source, licensing, and corrections

FreeMinecraftMods does not mirror the project files. Use the official source for downloads, release notes, dependencies, support, and licensing details. Project names, images, and creator-written descriptions remain the property of their respective owners.

How listings are reviewed | Report incorrect project information | Rights-holder and DMCA information

Limited catalog information

This source record is available for discovery, but it does not yet contain enough verified description, classification, image, freshness, or compatibility information to be indexed as a full editorial page. It is therefore marked noindex and is not eligible for advertising.