Compatibility
Minecraft: Java Edition
Platforms
Tags
Creators
Details

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 Minecraft regions plugin built for SMP servers, warzones, PvP zones, spawn areas, loot zones, and any server that needs WorldGuard-style flag regions with a lighter, more focused workflow.
This plugin is designed around two core goals:
- simple region creation and region flag control
- 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 Minecraft region plugin, SMP region flags plugin, Folia regions plugin, region reset plugin, warzone region plugin, PvP zone plugin, ender pearl disable region plugin, 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 region creation, region flags, temporal block tracking, timed reset workflow, global world rules, priority-based overlap resolution, 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:
- block-break
- block-place
- temporal-block-place
- temporal-block-break
- pvp
- use-elytra
- enderpearl
- chorus-fruit-teleport
- trident
- drop
- hunger-decay
- health-decay
- 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
/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
smpregions.admin
Command access
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
smpregions.bypass
Usage Examples
Give yourself the wand
/smprg wand
Create a region from your current selection
/smprg create warzone
Create or edit global world rules
/smprg flag __global__ pvp deny
/smprg flag __global__ use-elytra deny
Block ender pearls in a region
/smprg flag vault-room enderpearl deny
Allow only temporary block placement in a region while denying normal placement
/smprg flag event-zone block-place deny
/smprg flag event-zone temporal-block-place allow
Set higher overlap priority
/smprg priority safezone 100
Show current region info
/smprg info
Force the tracked reset queue to start now
/smprg reset
Configuration
SMP Regions is built to be configured from files, not hardcoded.
Main config — config.yml
config.yml
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
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
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
- Place the plugin jar in your plugins folder.
- Start the server once.
- Edit
config.yml, language files, and your per-world region files as needed. - Use
/smprg wandto get the selection wand. - Create your first region.
- Set flags with
/smprg flag. - Adjust priority or reset timing as needed.
- 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.


