
WorldGuard but better. Folia support, High Performance, Extra Flags, Area block reset.


Fast, focused, configurable region flags, temporal block reset, global world flags, overlap priority, and Folia-aware region control for Bukkit, Spigot, Paper, and Folia.
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:
Instead of trying to be an everything-plugin, SMP Regions focuses on practical SMP use cases:
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.
Many region plugins are either:
SMP Regions is built for practical gameplay control:
This makes it a strong fit for:
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:
SMP Regions includes a practical allow / deny flag system for focused SMP gameplay control.
Shipped gameplay-enforced flags include:
This lets you create zones such as:
This is one of the plugin’s main differentiators.
SMP Regions can track:
Reset behavior includes:
reset-everyThis is useful for:
Tracked temporary blocks are not treated as throwaway state.
Included:
This helps prevent broken regions after:
When regions overlap, SMP Regions resolves behavior through priority.
Included:
This is useful for:
SMP Regions includes quick visibility tools for admins and builders.
Included:
SMP Regions ships with a built-in language system and MiniMessage-style formatting support.
Bundled language files:
Text system highlights:
SMP Regions is built with focused runtime behavior instead of brute-force region spam.
Included:
SMP Regions stores data in file-based YAML format.
Included:
This is a good fit for:
/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
smpregions.admin
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
smpregions.bypass
/smprg wand
/smprg create warzone
/smprg flag __global__ pvp deny
/smprg flag __global__ use-elytra deny
/smprg flag vault-room enderpearl deny
/smprg flag event-zone block-place deny
/smprg flag event-zone temporal-block-place allow
/smprg priority safezone 100
/smprg info
/smprg reset
SMP Regions is built to be configured from files, not hardcoded.
config.ymlgeneral:
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
regions/world/example-region.ymlname: 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
lang/en.ymlmessages:
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>"
config.yml, language files, and your per-world region files as needed./smprg wand to get the selection wand./smprg flag./smprg reload.SMP Regions is a strong fit for:
This resource is not positioned as a bloated all-purpose protection suite.
It is a focused region system with:
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.
Region flags. Timed resets. Focused SMP control.