Brick-MapProtect

this project adds the capability for server owners to protect their map while letting players still place and break player-placed blocks. this can be good for gens servers, or creative servers.

42 downloads

๐Ÿงฑ Brick-MapProtect

Lock down your maps. Let players build freely.
A lightweight Paper/Spigot plugin that stops regular players from tearing up your original map, while still letting them place and break their own blocks.

Minecraft Paper Java License


โœจ What it does

Only players in Creative mode can break the original blocks of a protected map. Everyone in Survival/Adventure can still build, and break anything players have placed โ€” but the original terrain stays intact. Perfect for minigame lobbies, parkour maps, hub worlds, and gen-raiding arenas.

Action (on a protected map) Creative mode Survival ยท allow-placing: true Survival ยท allow-placing: false
Break an original map block โœ… โŒ โŒ
Place a block โœ… โœ… โŒ
Break a player-placed block โœ… โœ… โœ…

Note: breaking original blocks is gated on game mode, not op status โ€” an opped player in Survival still can't break the map. Use /gamemode creative to edit.

Worlds that aren't in your protected list are left completely untouched.

Anti-grief extras (on by default, configurable): flowing water & lava can't wash away or destroy original map blocks, and fire/lava can't burn them either.

๐Ÿš€ Installation

  1. Download Brick-MapProtect-<version>.jar from the Releases page.
  2. Drop it into your server's plugins/ folder.
  3. Restart the server (or run /reload confirm).
  4. Edit plugins/Brick-MapProtect/config.yml, then run /mapprotect reload.

Requires: a Paper or Spigot server running Minecraft 1.21.x on Java 21.

โš™๏ธ Configuration

# Which maps (worlds) should be protected?
#   - List exact world folder names, or use "*" for every world.
#   - Worlds not listed are left completely untouched.
protected-worlds:
  - world
  - world_nether
  - world_the_end

# Can regular players place blocks on protected maps?
#   true  = players can place (and later break their own blocks)
#   false = players cannot place any blocks (creative players always can)
allow-placing: true

# Stop flowing water/lava from destroying original map blocks
protect-from-liquids: true
# Stop fire/lava from burning original map blocks
protect-from-fire: true

# Wipe all player-placed blocks on restart (arena reset)?
#   true = map is restored to original state each startup
#   false = player builds persist across restarts (default)
clear-placed-on-restart: false

# Messages (supports & colour codes)
deny-break-message: "&cYou must be in creative mode to break blocks in this map."
deny-place-message: "&cBlock placing is disabled on this map."

๐ŸŽฎ Commands & Permissions

Command Description Permission
/mapprotect reload Reload the config without restarting mapprotect.admin
Permission Description Default
mapprotect.bypass Explicit override to break/place anything without creative mode false
mapprotect.admin Use /mapprotect commands op

๐Ÿ”ง How it works

Every block a player places is recorded by its exact location (world:x:y:z) and persisted to placed-blocks.yml, so the data survives restarts. When someone tries to break a block, the plugin allows it only if that location is a known player-placed block (or the player is exempt). Anything else is part of the original map and is protected.

๐Ÿ—๏ธ Building from source

mvn clean package
# โ†’ target/Brick-MapProtect-1.4.0.jar

Requires JDK 21 and Maven 3.9+.

๐Ÿ“„ License

Released under the MIT License.

No gallery available for this project.