

SMP Regions
Minecraft Regions Plugin for SMP Servers
Fast, focused, configurable region flags, temporal block reset, global world flags, overlap priority, and Folia-aware region control for Bukkit, Spigot, Paper, and Folia.
---
Overview
SMP Regions is a modern WorldGuard-style flag regions built for WorldGuard-style flag regions, WorldGuard-style flag regions, WorldGuard-style flag regions, WorldGuard-style flag regions, WorldGuard-style flag regions, and any server that needs WorldGuard-style flag regions with a lighter, more focused workflow.
This plugin is designed around two core goals:
- simple temporal block tracking and timed region reset - safe temporal block tracking and timed region reset
Instead of trying to be an everything-plugin, SMP Regions focuses on practical SMP use cases:
- create cuboid regions with a wand - set allow/deny gameplay flags per region - use global whole-world flags - control overlap behavior with priority - track temporary placed and broken blocks - restore tracked blocks on timed resets - recover tracked blocks after crashes or unsafe shutdowns - run on Bukkit, Spigot, Paper, and Folia - use per-world YAML region files - use localized MiniMessage-based messages
If you are searching for a lightweight WorldGuard-style alternative for SMP gameplay rules, lightweight WorldGuard-style alternative for SMP gameplay rules, lightweight WorldGuard-style alternative for SMP gameplay rules, lightweight WorldGuard-style alternative for SMP gameplay rules, lightweight WorldGuard-style alternative for SMP gameplay rules, lightweight WorldGuard-style alternative for SMP gameplay rules, lightweight WorldGuard-style alternative for SMP gameplay rules, or a lightweight WorldGuard-style alternative for SMP gameplay rules, SMP Regions is built for that workflow.
---
Why SMP Regions
Many region plugins are either:
- too heavy for focused SMP gameplay rules - too broad when you only need region flags plus reset logic - not built around timed temporary-block restoration - not designed cleanly for Folia-aware scheduling
SMP Regions is built for practical gameplay control:
- block break and block place denial - temporary block place / break handling - PvP control - elytra control - ender pearl control - chorus fruit teleport control - trident control - item drop control - wind charge control - hunger decay control - health decay control - whole-world global region support - region overlap priority - timed tracked-block reset queue - crash recovery for tracked temporary blocks - rate-limited denial messages
This makes it a strong fit for:
- SMP spawn protection - warzones and PvP arenas - loot regions - build events - temporary capture zones - mine reset style areas using tracked block restoration - donut-style and competitive SMP servers - Paper servers - Folia servers
---
Core Features
SMP Regions combines Folia-aware execution, Folia-aware execution, Folia-aware execution, Folia-aware execution, Folia-aware execution, Folia-aware execution, and Folia-aware execution in one focused plugin.
It is built for owners searching for:
- Minecraft regions plugin - SMP region flags - warzone region plugin - region reset plugin - temporary block reset plugin - PvP disable region plugin - ender pearl deny region plugin - Paper region plugin - Folia region plugin - Elytra deny region plugin - Wind charge deny region plugin
Region Flag System
SMP Regions includes a practical allow / deny flag system for focused SMP gameplay control.
Shipped gameplay-enforced flags include:
- use-wind-charge - use-wind-charge - use-wind-charge - use-wind-charge - use-wind-charge - use-wind-charge - use-wind-charge - use-wind-charge - use-wind-charge - use-wind-charge - use-wind-charge - use-wind-charge - use-wind-charge
This lets you create zones such as:
- no-build spawn areas - PvP-disabled safe zones - elytra-disabled arenas - ender pearl blocked interiors - drop-disabled event lobbies - temporary block event zones - hunger-free or health-decay-free regions
Temporal Block Tracking and Timed Reset
This is one of the plugin’s main differentiators.
SMP Regions can track:
- original blocks broken inside a region - temporary blocks placed inside a region - temporary block records per region - tracked block restoration through a reset queue
Reset behavior includes:
- region reset window using `reset-every` - tracked-block reset announcements - max blocks per tick throttle - queued restore pipeline - per-region reset scheduling - manual reset trigger command
This is useful for:
- event zones - warzones - loot zones - limited-build combat areas - temporary structures inside protected regions - SMP regions that should return to a clean state automatically
Crash Recovery
Tracked temporary blocks are not treated as throwaway state.
Included:
- persistent temporal block records - startup recovery scan - world recovery scheduling - post-crash tracked block restoration
This helps prevent broken regions after:
- server crashes - forced shutdowns - unexpected restarts
Overlap Priority
When regions overlap, SMP Regions resolves behavior through priority.
Included:
- per-region priority value - top-region resolution for gameplay checks - support for nested zones - safer handling of layered SMP region setups
This is useful for:
- safe zone inside warzone - special event cell inside larger region - global world rules overridden by smaller high-priority zones
Player and Staff Info Tools
SMP Regions includes quick visibility tools for admins and builders.
Included:
- region info output - current-region detection - matching-region probe output - compact flag display - loaded region count and listing - probe interaction with leather item for quick info checks
Localization and Message System
SMP Regions ships with a built-in language system and MiniMessage-style formatting support.
Bundled language files:
- English - Spanish - German - Portuguese - Russian
Text system highlights:
- player locale aware language resolution when available - default language fallback - MiniMessage support - legacy color compatibility - item name and lore formatting through shared text bridge
Performance and Runtime Behavior
SMP Regions is built with focused runtime behavior instead of brute-force region spam.
Included:
- rate-limited denial messages - single-threaded async file storage executor - tracked reset batching - Folia-aware scheduler bridge - global / region / entity task handling through runtime bridge - reloadable configuration and language loading
Storage Format
SMP Regions stores data in file-based YAML format.
Included:
- per-world region files - human-readable region definitions - persistent temporal block records - manual save and load commands
This is a good fit for:
- single SMP servers - simple maintenance - easy manual inspection - admins who prefer file-based management
---
Commands
```text /smprg /smpregions /smpr
/rg (automatic alias registration when safe and when WorldGuard is not already using it)
/smprg help /smprg wand /smprg create <region> [-w <world>] /smprg redefine <region> [-w <world>] /smprg delete <region> [-w <world>] /smprg info [region] [-w <world>] /smprg priority <region> <priority> [-w <world>] /smprg reset /smprg list /smprg flags /smprg flag <region> <flag> <value|unset> [-w <world>] /smprg save /smprg load /smprg reload ```
---
Permissions
Admin
```text smpregions.admin ```
Command access
```text smpregions.command.use smpregions.command.reload smpregions.command.flag smpregions.command.flags smpregions.command.info smpregions.command.list smpregions.command.create smpregions.command.delete smpregions.command.redefine smpregions.command.priority smpregions.command.reset smpregions.command.wand smpregions.command.save smpregions.command.load ```
Bypass
```text smpregions.bypass ```
---
Usage Examples
Give yourself the wand
```text /smprg wand ```
Create a region from your current selection
```text /smprg create warzone ```
Create or edit global world rules
```text /smprg flag __global__ pvp deny /smprg flag __global__ use-elytra deny ```
Block ender pearls in a region
```text /smprg flag vault-room enderpearl deny ```
Allow only temporary block placement in a region while denying normal placement
```text /smprg flag event-zone block-place deny /smprg flag event-zone temporal-block-place allow ```
Set higher overlap priority
```text /smprg priority safezone 100 ```
Show current region info
```text /smprg info ```
Force the tracked reset queue to start now
```text /smprg reset ```
---
Configuration
SMP Regions is built to be configured from files, not hardcoded.
Main config — `config.yml`
config.yml
```yaml general: default-language: en use-player-move-event: true use-physics-event: false max-reset-blocks-per-tick: 150 reset-check-interval-seconds: 60 save-before-disable-timeout-seconds: 10 action-message-cooldown-ms: 1000 announce-prefix: "<gold><bold>SMP Regions</bold></gold><gray> » </gray>"
wand: material: BLAZE_ROD name: "<gold>SMP Regions Wand</gold>" lore: - "<gray>Left click block: <white>set pos1</white>" - "<gray>Right click block: <white>set pos2</white>" - "<dark_gray>smpregions:wand</dark_gray>"
messages: missing-language-fallback: true ```
Example region file — `regions/world/example-region.yml`
regions/world/example-region.yml
```yaml name: example-region enabled: false priority: 0 reset-every: 5 next-reset-at: 0 world: world pos1: "0,64,0" pos2: "20,80,20" flags: pvp: deny use-elytra: deny use-wind-charge: deny block-break: deny block-place: deny temporal-block-place: allow temporal-block-break: allow ```
English language file — `lang/en.yml`
lang/en.yml
```yaml messages: prefix: "<gold><bold>SMP Regions</bold></gold><gray> » </gray>" no-permission: "<red>You do not have permission.</red>" player-only: "<red>Only players can use this command.</red>" usage: root: "<yellow>/smprg help</yellow>" flag: "<yellow>/smprg flag <region> <flag> <value|unset> [-w <world>]</yellow>" create: "<yellow>/smprg create <region> [-w <world>]</yellow>" redefine: "<yellow>/smprg redefine <region> [-w <world>]</yellow>" delete: "<yellow>/smprg delete <region> [-w <world>]</yellow>" info: "<yellow>/smprg info [region] [-w <world>]</yellow>" priority: "<yellow>/smprg priority <region> <priority> [-w <world>]</yellow>" load: "<yellow>/smprg load</yellow>" reset: "<yellow>/smprg reset</yellow>" save: "<yellow>/smprg save</yellow>" help: - "<gold><bold>SMP Regions</bold></gold>" - "<gray>/smprg wand <dark_gray>- give wand / show selection state" - "<gray>/smprg create <name> [-w <world>] <dark_gray>- create region from cached pos1/pos2" - "<gray>/smprg redefine <name> [-w <world>] <dark_gray>- replace region bounds from cached pos1/pos2" - "<gray>/smprg delete <name> [-w <world>] <dark_gray>- delete region and restore tracked blocks" - "<gray>/smprg info [name] [-w <world>] <dark_gray>- show current or named region state" - "<gray>/smprg priority <name> <priority> [-w <world>] <dark_gray>- set overlap priority" - "<gray>/smprg reset <dark_gray>- start tracked reset queue now" - "<gray>/smprg list <dark_gray>- list all loaded regions" - "<gray>/smprg flags <dark_gray>- list supported flags" - "<gray>/smprg flag <name> <flag> <value|unset> [-w <world>] <dark_gray>- update one flag" - "<gray>/smprg reload|load|save" wand-given: "<green>Selection wand granted.</green>" wand-pos1: "<green>Position 1 set to <white><x>, <y>, <z></white> in <white><world></white>.</green>" wand-pos2: "<green>Position 2 set to <white><x>, <y>, <z></white> in <white><world></white>.</green>" selection-missing: "<red>You need both position 1 and position 2 first. Wand granted.</red>" selection-world-mismatch: "<red>Position 1 and position 2 must be in same world.</red>" region-created: "<green>Region <white><region></white> created.</green>" region-updated: "<green>Region <white><region></white> updated.</green>" region-deleted: "<green>Region <white><region></white> deleted.</green>" region-not-found: "<red>Region <white><region></white> not found.</red>" region-already-exists: "<red>Region <white><region></white> already exists in world <white><world></white>.</red>" global-region-use-flag: "<yellow>Use <white>/smprg flag __global__ <flag> <value></white> to create or update world global flags.</yellow>" global-region-cannot-redefine: "<red>The __global__ region covers whole world and cannot be redefined.</red>" invalid-flag: "<red>Unknown flag <white><flag></white>. Available: <white><flags></white>.</red>" invalid-flag-value: "<red>Invalid value <white><value></white> for <white><type></white>. Use: <white><usage></white>.</red>" flags-list-header: "<gold>Available Flags:</gold>" flags-list-entry: "<gray>- <white><key></white> (<white><type></white>)</gray>" flag-updated: "<green>Flag <white><flag></white> for <white><region></white> set to <white><value></white>.</green>" info-header: "<gold>Region <white><region></white></gold>" info-line-world: "<gray>World: <white><world></white>" info-line-bounds: "<gray>Bounds: <white><bounds></white>" list-header: "<gold>Loaded regions</gold><gray>: <white><count></white>" list-entry: "<gray>- <white><region></white> <dark_gray>(<world>)</dark_gray>" reloaded: "<green>SMP Regions reloaded.</green>" saved: "<green>SMP Regions files flushed to disk.</green>" loaded: "<green>Region files reloaded from disk.</green>" reset-announcement: "<yellow>The region <white><region></white> has been reset.</yellow>" bypass-message: "<gray>Bypass active.</gray>" denied-block-break: "<red>You are not allowed to break blocks here.</red>" denied-block-place: "<red>You cannot place blocks here.</red>" denied-temporal-break: "<red>You cannot break temporary blocks here.</red>" denied-elytra: "<red>Elytra is disabled in this region.</red>" denied-enderpearl: "<red>Ender pearl is disabled in this region.</red>" denied-chorus-fruit: "<red>Chorus fruit teleport is disabled in this region.</red>" denied-trident: "<red>Trident use is disabled in this region.</red>" denied-drop: "<red>You cannot drop items here.</red>" denied-wind-charge: "<red>Wind charge is disabled in this region.</red>" denied-pvp: "<red>PvP is disabled in this region.</red>" priority-updated: "<green>Priority for <white><region></white> set to <white><priority></white>.</green>" reset-started: "<green>Tracked reset queue started.</green>" region-ambiguous: "<red>Region <white><region></white> exists in multiple worlds. Use <white>-w <world></white>.</red>" info-current-region-not-found: "<red>You are not inside any region here.</red>" info-flag-default: "default" probe-no-region: "<red>You are not inside any region here.</red>" probe-matches: "<gold>Matching Regions:</gold>" crash-recovery: "<yellow>Recovered <white><count></white> temporal blocks for world <white><world></white>.</yellow>" startup-loaded: "<green>Loaded <white><count></white> region(s).</green>" ```
---
Installation
1. Place the plugin jar in your plugins folder. 2. Start the server once. 3. Edit `config.yml`, language files, and your per-world region files as needed. 4. Use `/smprg wand` to get the selection wand. 5. Create your first region. 6. Set flags with `/smprg flag`. 7. Adjust priority or reset timing as needed. 8. Restart the server or use `/smprg reload`.
---
Recommended Use Cases
SMP Regions is a strong fit for:
- survival SMP servers - PvP zones and safe zones - event regions - warzones - build-limited areas - spawn protection - temporary structure zones - Folia servers that need focused region control
---
What Makes This Resource Valuable
This resource is not positioned as a bloated all-purpose protection suite.
It is a focused region system with:
- real region flag control - real overlap priority - real temporary block tracking - real timed reset workflow - real crash recovery behavior - real file-based admin control - real Folia-aware runtime support - real localization support
If you want a focused SMP regions plugin that handles practical gameplay restrictions, tracked temporary blocks, timed reset behavior, and clean region administration without unnecessary bloat, SMP Regions is built for exactly that.
---
SMP Regions
Region flags. Timed resets. Focused SMP control.