SMP Regions

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

26

SMP Regions

SMP Regions Banner Logo Seamless

This plugin supports Folia

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.

ADS