Server Build Protection
No reviews yet
Protect your builds! No building, breaking, explosions, and container access by non-trusted players!
Includes quality of life improvements and small tweaks to enhance and customize gameplay.
Fabric is a mod loader for versions 1.14+ of Minecraft, particularly popular for client side and optimization mods.
Community voices
Reviews
Click once to include, again to exclude, again to clear
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
Resources
External Links
About
Description
SERVER BUILD PROTECTOR
Protect exact build volumes from unauthorized changes and theft while keeping intended interactions, automation, natural updates, Lootr containers, and player graves working normally.
FEATURES
- Server-authoritative protection using exact block coordinates rather than chunk borders.
- Untrusted players cannot place or break blocks or access protected containers, item frames, armor stands, storage vehicles, or configured item-bearing entities.
- Loose items on the ground may be picked up by any player, including inside protected areas.
- Owners and trusted players retain full building and container access.
- Doors, buttons, levers, waystones, gravestones, villagers, and similar non-storage interactions remain usable.
- TNT, creepers, fire, lava-started fires, unauthorized pistons, entities, and other destructive effects cannot damage protected builds.
- Piston actions are atomic: every base, head, moved or destroyed block, slime or honey attachment, and destination must pass before any block changes.
- Sticky pistons validate retraction against the post-head movement state, allowing normal pulls without weakening protection-boundary checks.
- Universal Graves death graves create a temporary one-block protection exception, then normal area protection resumes as soon as the grave is removed.
- Lootr containers remain available to every player because their loot is player-specific.
- Operators can remove any protection, create protections for cached offline players or the server, and disable new player-owned claim creation by dimension. Server-owned protections remain available in disabled dimensions and have no claim-count limit.
- Vanilla hopper and dropper extraction obeys the configured external-transfer policy, defaulting to same-owner automation only.
- Overlapping protections are rejected, and horizontal limits, per-player limits, dimensions, compatibility IDs, transfer policy, and outline visibility are configurable.
- The generated JSON configuration includes detailed documentation and examples for every setting.
- Optional client installation provides protected-volume outlines and editable middle-click corner selection.
COMMANDS
Coordinates are six space-separated whole numbers without commas or parentheses.
/protect x1 y1 z1 x2 y2 z2
Protects the inclusive volume between two corners in the current dimension.
/protect as username x1 y1 z1 x2 y2 z2
Operator only. Creates a protection for a player listed in the server's usercache.json, including offline players.
/protect server x1 y1 z1 x2 y2 z2
Operator only. Creates a server-owned protection, including in dimensions disabled for player claims. Server-owned protections are exempt from maxProtectionsPerPlayer.
/protect disable dimension
Operator only. Immediately disables new player-owned protection creation in a loaded dimension and persists it to dimensionDenylist. Accepts overworld, nether, end, or an exact namespaced dimension ID. Existing and server-owned protections remain active.
/trust username
Gives an online player full access to all your current and future protections.
/untrust username
Removes an online player from your trust list.
/unprotect
Removes the protection containing your current position. Operators may remove any protection.
/protect list
Lists your protections and trusted players in a stable order. A player with no protections receives a successful empty-list result; non-player sources receive an explicit player-only error.
/protect repairpistons
Operator only. Repairs recoverable moving-piston, orphan piston-head, and invalid extended-piston states within a 10-block radius of the operator.
NATURAL AND AUTOMATED BEHAVIOR
Fluids spread and recede normally. Natural leaves decay, while player-placed persistent leaves remain protected. Turtle eggs, frogspawn, and sniffer eggs hatch normally.
Plants and trees grow normally, snow melts, gravity blocks fall, unsupported plants and attachments pop off, villagers farm and restock trades at their workstations, sheep graze, and snow golems create trails. Grass, mycelium, and moss spread; farmland dries; copper oxidizes; and coral dies normally.
Rabbit and ravager crop damage, enderman block movement, farmland trampling, sculk spreading, fire spread, and lava-started fires remain blocked.
Piston triggers retain a generation-based authorization containing the initiating player, origin, originating claim and owner, trigger type, and creation time. Authorization follows queued piston events, scheduled redstone ticks, moving-piston completion, and resulting blockstate, comparator, and neighbor updates. Buttons, pressure plates, tripwires, targets, repeaters, observers, comparators, trusted redstone timers, and piston-driven loops may continue without requiring the player to trigger every downstream piston manually.
Circuit authorization is persisted in the world and restored across clean server restarts while queued or active work remains. Dormant generations expire naturally. Interrupted physical moving-piston states are still normalized safely rather than resuming incomplete movement.
Pistons outside protection may operate entirely outside but cannot enter a claim. Claim-owned sculk, observer, daylight-sensor, and registered mod automation remains inside its originating claim. Player-started pistons may cross between protected claims only when the initiating player currently owns or is trusted in every affected claim. Movement from a protected claim into unprotected space remains blocked. Every downstream action still receives the complete atomic preflight check.
Any vibration may activate a sculk or calibrated sculk sensor circuit. Sculk sensors, observers, daylight sensors, and registered automatic sources receive claim-owned authorization and may operate machinery inside their originating claim. Automatic pistons may otherwise move blocks and push players, mobs, and vehicles normally when atomic protection checks pass.
Interrupted piston states are normalized when chunks finish loading instead of resuming across a restart. Recoverable moving blocks are restored, while invalid collision remnants are removed. Operators may also run /protect repairpistons for a manual 10-block-radius repair.
MOD COMPATIBILITY
Universal Graves 3.10.2 death-grave placement, access, breaking, and cleanup are permitted inside every protection. Only the position currently occupied by the death-grave block is temporarily exempt; Universal Graves retains its own grave access rules, and the original area protection automatically resumes there when the grave disappears or restores its replaced block.
Lootr containers remain openable by every player while their blocks remain protected from unauthorized destruction. Lootr and Universal Graves are optional and must be installed with their own dependencies when wanted.
Waystone and grave-style registry identifiers are excluded from inventory locking. Exact additional per-player container, safe-interaction, and protected item-bearing entity IDs may be configured.
A server-side compatibility API lets other Fabric mods register state-aware per-player containers, safe interactions, item-bearing entities, temporary graves, natural updates, and automation sources. It also exposes read-only claim, player-access, item-transfer, and current-authorization queries. Server Build Protector creates all automation tokens itself; compatibility rules cannot forge players, owners, trust, generations, or bypass piston boundaries. Unknown pipe mods must call the transfer query or receive a dedicated adapter.
CLIENT HELPERS
With the same JAR and Fabric API installed client-side, comma toggles red outlines for protected volumes. Middle-click two corners to open an editable /protect command; the command is not sent until Enter is pressed. If no block is targeted, the player's current block coordinates are used.
SIZE LIMITS AND CONFIGURATION
Default horizontal limits are 320 blocks on either axis and 3,840 blocks of horizontal area, equivalent to 15 chunk areas. Height may span the dimension's build range.
Edit config/server-build-protector.json and restart to configure maxHorizontalAxisBlocks, maxHorizontalAreaBlocks, maxProtectionsPerPlayer (0 is unlimited), dimensionAllowlist, dimensionDenylist, externalItemTransferPolicy (same_owner, deny_all, or allow_all), exact compatibility ID lists, and outlineVisibility (all, own_and_trusted, or disabled). Operators may add loaded dimensions to dimensionDenylist at runtime with /protect disable. Denylists take precedence, while an empty dimension allowlist permits every dimension not denied. Server-owned protections are exempt from dimension creation restrictions and maxProtectionsPerPlayer, but still obey size and overlap limits.
The generated configuration contains a documentation object explaining the purpose, accepted values, interactions, and an example for every setting. The documentation object is informational and is refreshed by the mod at startup; edit the actual setting fields above it.
Protection data is stored in world/server-build-protector.json by player UUID. Active circuit authorization is stored separately in world/server-build-protector-circuits.json. Invalid or unsupported protection, circuit, or configuration data stops startup instead of silently disabling protection.
INSTALLATION
Requires Minecraft Java 1.21.11, Fabric Loader 0.19.3, Fabric API 0.141.4+1.21.11, and Java 21 or newer. Place ServerBuildProtector-1.0.10-beta.jar in the server's mods folder.
Clients do not need the mod for enforcement or commands. Client installation is only needed for outlines and middle-click selection.
Screenshots
Gallery
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Want to reach Minecraft players?
We're looking for a server hosting partner to feature here and other parts of the site. Interested? Send us a message!
Get in touchGet it on
Available Platforms
On ModDex
Community snapshot
By the numbers
Statistics
Resources