▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/RegionRestore

RegionRestore

Restore world regions/chunks to their original state at fast speeds, maintaining performance even during massive operations. Use it for PvP arenas and mini-games that need instant, lag-free resets.

28
1

RegionRestore

High-Performance World Region Restoration for Paper/Folia Servers

RegionRestore is a powerful, performance-focused plugin designed to restore parts of your world back to their original state at exceptional speeds. Whether you're managing PvP arenas, mini-game lobbies, or need reliable world state resets, RegionRestore delivers sub-10ms restoration for small regions while maintaining server stability even for massive operations.


Why RegionRestore?

Lightning-Fast Restores

Small regions (like duels arenas) restore in under 10 milliseconds, ensuring minimal disruption to gameplay.

Chunk Streaming Technology

Large restores use intelligent chunk-by-chunk streaming that progressively loads and restores chunks rather than loading everything at once. This prevents overloading Minecraft's chunk system and maintains consistent TPS even during extensive restoration operations.

Instant Light Restoration

Unlike other solutions that trigger expensive light recalculation, RegionRestore features instant light restore technology. This dramatically reduces CPU usage during restoration operations and eliminates the lag spikes commonly associated with lighting updates.

Perfect for Arena Management

Ideal for:

  • PvP Duels Arenas - Instant reset between matches
  • Mini-Game Lobbies - Restore lobby state after each game
  • Event Arenas - Reset builds, terrain, and structures
  • Practice Arenas - Fast environment resets
  • Plot Worlds - Mass plot regeneration

Supported Versions

PlatformSupported Versions
Paper1.21.4 - 26.1.1
Folia1.21.4 - 26.1.1

Minecraft Version Support

RegionRestore uses NMS adapters for maximum performance on specific versions:

  • 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1-26.1.1

Note: The plugin requires a matching NMS adapter for your server version. Updates are released shortly after new Minecraft versions.


Dependencies

A PaperMC based server (eg Paper, Purpur)

Optional

  • PlaceholderAPI - Access RegionRestore data via %regionrestore_*% placeholders
  • MiniPlaceholders - Use <regionrestore_*> placeholders in MiniMessage-formatted text

Placeholders

PlaceholderAPI Placeholders
PlaceholderDescription
%regionrestore_instance_count%Total number of instances
%regionrestore_instance_count_pooled%Count of pooled instances
%regionrestore_instance_count_manual%Count of manual instances
%regionrestore_instance_count_<world>%Instance count for a specific world
%regionrestore_template_count%Total number of templates
%regionrestore_template_<name>_versions%Number of versions for a template
%regionrestore_template_<name>_active_version%Active version ID for a template
%regionrestore_pool_count%Total number of configured pools
%regionrestore_pool_<world>_<template>_count%Instance count for a specific pool
%regionrestore_pool_<world>_<template>_target%Target instance count for a pool
%regionrestore_pool_<world>_<template>_occupied%Occupied instance count for a pool
%regionrestore_instance_<uuid>_world%World name of an instance
%regionrestore_instance_<uuid>_template%Template name of an instance
%regionrestore_instance_<uuid>_occupancy%Occupancy count of an instance
%regionrestore_instance_<uuid>_type%Instance type (pooled/manual)
%regionrestore_instance_<uuid>_originx%Origin chunk X coordinate
%regionrestore_instance_<uuid>_originz%Origin chunk Z coordinate
%regionrestore_instance_<uuid>_sizex%Size in chunks (X)
%regionrestore_instance_<uuid>_sizez%Size in chunks (Z)
%regionrestore_instance_<uuid>_minblockx%Minimum block X coordinate
%regionrestore_instance_<uuid>_maxblockx%Maximum block X coordinate
%regionrestore_instance_<uuid>_minblockz%Minimum block Z coordinate
%regionrestore_instance_<uuid>_maxblockz%Maximum block Z coordinate
MiniPlaceholders Placeholders
PlaceholderDescription
<regionrestore_instance_count>Total number of instances
<regionrestore_instance_count_pooled>Count of pooled instances
<regionrestore_instance_count_manual>Count of manual instances
<regionrestore_template_count>Total number of templates
<regionrestore_pool_count>Total number of pools
<regionrestore_instance_count_world:'world_name'>Instance count for a world
<regionrestore_pool_instance_count:'world':'template'>Instance count for a pool
<regionrestore_pool_target:'world':'template'>Target count for a pool
<regionrestore_pool_occupied:'world':'template'>Occupied count for a pool
<regionrestore_template_versions:'template_name'>Version count for a template
<regionrestore_template_active_version:'template_name'>Active version for a template

Commands

All commands use /regionrestore (or aliases /rr, /arena, /arenas).

GUI Command
CommandDescriptionPermission
/rr guiOpen the interactive management GUIregionrestore.gui

The GUI provides visual management of templates, instances, pools, and timers with intuitive menu navigation.

Template Commands
CommandDescriptionPermission
/rr template create <name> <minX> <minZ> <maxX> <maxZ> [world]Create a new template from world coordinatesregionrestore.template.create
/rr template listList all saved templatesregionrestore.template.list
/rr template info <name>View template details and versionsregionrestore.template.info
/rr template setactive <name> <versionId>Set the active version for a templateregionrestore.template.setactive
/rr template delete <name>Delete a templateregionrestore.template.delete

Versioning System: Templates support multiple versions, allowing you to maintain different snapshots of the same region. The "active" version is used by default for restores.

Restore Commands
CommandDescriptionPermission
/rr restore <template> [version/active] [scope]Restore template at its original positionregionrestore.restore
/rr restore at <template> <world> <x> <z> [version]Restore template at specific coordinatesregionrestore.restore
/rr restore in <template> <seconds> [version] [scope]Schedule restore with countdownregionrestore.restorein
/rr restore version <template> [version/active] [scope]Restore specific versionregionrestore.restore

Audience Scopes:

  • NEARBY - Notify players within configured radius
  • WORLD - Notify all players in the world
  • SERVER - Notify all online players
  • NONE - Silent restore
Instance Commands
CommandDescriptionPermission
/rr instance create <template> <chunkX> <chunkZ> [world] [version] [boot] [vacate] [interval]Create a tracked region instanceregionrestore.instance.create
/rr instance list allList all instancesregionrestore.instance.list
/rr instance list world <world> [type]List instances in a worldregionrestore.instance.list
/rr instance info <instanceId>View instance detailsregionrestore.instance.info
/rr instance delete <instanceId>Delete an instanceregionrestore.instance.delete
/rr instance restore <instanceId>Trigger restore for an instanceregionrestore.instance.restore

Instance Types:

  • Pooled - Auto-managed instances for mass cloning
  • Manual - Individually created and managed instances

Instance Options:

  • boot - Restore on server startup
  • vacate - Restore when all players leave
  • interval - Auto-restore interval in seconds
Cloner (Pool) Commands
CommandDescriptionPermission
/rr cloner status [world]View pool status and configurationregionrestore.cloner.status
/rr cloner restore [world] [template]Trigger restore for pool instancesregionrestore.cloner.restore
/rr cloner regen [world] [--force]Regenerate all pool instancesregionrestore.cloner.regen

Mass Cloner: Automatically manages multiple copies (instances) of a template across configured worlds. Perfect for duels servers that need dozens or hundreds of identical arenas.

Timer Commands
CommandDescriptionPermission
/rr timer set instance <instanceId> <intervalSeconds> [scope]Set repeating restore timer for instanceregionrestore.timer.set
/rr timer set template <templateName> <intervalSeconds> [scope]Set timer for template at original positionregionrestore.timer.set
/rr timer cancel id <instanceId>Cancel timer by instance IDregionrestore.timer.cancel
/rr timer cancel template-all <templateName>Cancel all timers for a templateregionrestore.timer.cancel
Selection Commands
CommandDescriptionPermission
/rr selection wandGet the selection wand itemregionrestore.wand
/rr selectionView current selection inforegionrestore.selection
/rr selection clearClear your selectionregionrestore.selection
/rr selection create <name>Create template from current selectionregionrestore.template.create

Using the Selection Wand:

  • Right-click to set positions (alternates between pos1 and pos2)
  • Left-click to view current selection info
  • Supports cross-world selection detection

Scheduling Features

RegionRestore provides a comprehensive scheduling system that allows you to automate restores based on various triggers and conditions.

Countdown Scheduling (Delayed/Scheduled Restores)

Schedule restores to happen after a countdown delay with automatic player notifications. This allows you to schedule restores for a future time and warn players before restoration occurs.

/rr restore in <template> <seconds> [version] [scope]

Features:

  • Scheduled Restore - Delay restoration by specified seconds
  • Configurable Announce Points - Notify players at specific intervals (default: 60, 30, 10, 5, 4, 3, 2, 1 seconds)
  • Audience Scope Control - Choose who receives countdown notifications:
    • NEARBY - Players within configured radius
    • WORLD - All players in the world
    • SERVER - All online players
    • NONE - Silent countdown
  • Plurality-Aware Messages - Automatic "second/seconds" grammar

Example - Schedule arena restore in 30 seconds:

/rr restore in my_arena 30 WORLD

Announces to all players: "Restoring region in 30 seconds..." counting down to "Restoring region in 1 second..."

Tip: Use this for scheduled maintenance, event endings, or to give players time to finish their current activity before the restore.

Repeating/Interval Scheduling

Set up automatic periodic restores for instances or templates.

/rr timer set instance <instanceId> <intervalSeconds> [scope]
/rr timer set template <templateName> <intervalSeconds> [scope]

Features:

  • Instance-Based - Timer follows a specific region instance
  • Template-Based - Creates a hidden instance at template's original location
  • Persistent - Timers survive server restarts
  • Configurable Scope - Per-timer audience notification settings

Use Cases:

  • Event arenas that reset every 5 minutes
  • Practice arenas that auto-reset every 60 seconds
  • Lobby areas that refresh periodically

Cancellation:

/rr timer cancel id <instanceId>        # Cancel specific instance timer
/rr timer cancel template-all <name>    # Cancel all timers for a template
Boot Restoration

Automatically restore regions when the server starts.

Configuration:

mass-cloner {
    worlds=[
        {
            name="duels_world"
            pools=[
                {
                    template-name="classic_arena"
                    restore-on-boot=true
                }
            ]
        }
    ]
}

Instance-Level:

/rr instance create <template> <x> <z> [world] [version] true false [interval]

(5th parameter true enables boot restore)

Use Cases:

  • Reset all arenas on server restart
  • Ensure plots are clean after maintenance
  • Restore event areas to known state
Vacate Restoration

Automatically restore a region when all players leave it.

How It Works:

  • Tracks player occupancy in real-time
  • Monitors chunk movements, teleports, world changes, joins, and quits
  • Triggers restore after all players have left + configurable delay

Configuration:

mass-cloner {
    worlds=[
        {
            name="duels_world"
            pools=[
                {
                    template-name="classic_arena"
                    restore-on-vacate=true
                }
            ]
        }
    ]
}

Instance-Level:

/rr instance create <template> <x> <z> [world] [version] [boot] true [interval]

(6th parameter true enables vacate restore)

Configuration Options:

mass-cloner {
    vacate-delay-seconds=5  # Delay after last player leaves before restoring
}

Use Cases:

  • Duels/PvP arenas that auto-reset after matches
  • Mini-game instances that clean up when finished
  • Private arenas that refresh between uses
Concurrent Restore Management

Prevent server overload with intelligent concurrent restore limiting.

Configuration:

restore {
    max-concurrent-restores=5  # Maximum simultaneous restores
}

Behavior:

  • When limit is reached, new restores are skipped with configurable notification
  • Prevents TPS drops from too many simultaneous chunk operations
  • Restores automatically queue and execute when slots become available

Notification: Players receive a message explaining why the restore was skipped:

"Region restore skipped: maximum concurrent restores (5) reached"

Scheduling Configuration Examples

Example 1: Duels Arena with Vacate

mass-cloner {
    vacate-delay-seconds=3  # 3 second delay after last player leaves
    worlds=[
        {
            name="duels"
            pools=[
                {
                    template-name="1v1_arena"
                    count=20
                    restore-on-vacate=true
                    restore-on-boot=false
                }
            ]
        }
    ]
}

Example 2: Event Arena with Repeating Timer

# Create instance at specific location
/rr instance create event_arena 100 100 events 0 false false

# Set 5-minute repeating timer with WORLD notifications
/rr timer set instance <instance-id> 300 WORLD

Example 3: Lobby with Boot + Timer

mass-cloner {
    worlds=[
        {
            name="lobby"
            pools=[
                {
                    template-name="main_lobby"
                    count=1
                    restore-on-boot=true
                    restore-interval-seconds=3600  # Restore every hour
                }
            ]
        }
    ]
}

Example 4: Silent Background Restore

# Restore with no notifications
/rr restore in silent_arena 10 NONE

Permissions

Complete Permission List
PermissionDescriptionDefault
regionrestore.*Grants all RegionRestore permissionsOP
regionrestore.guiOpen the management GUIOP
regionrestore.template.createCreate templatesOP
regionrestore.template.listList templatesOP
regionrestore.template.infoView template infoOP
regionrestore.template.setactiveSet active versionOP
regionrestore.template.deleteDelete templatesOP
regionrestore.restoreRestore templatesOP
regionrestore.restoreinSchedule timed restoresOP
regionrestore.instance.createCreate instancesOP
regionrestore.instance.listList instancesOP
regionrestore.instance.infoView instance infoOP
regionrestore.instance.deleteDelete instancesOP
regionrestore.instance.restoreTrigger instance restoreOP
regionrestore.cloner.statusView cloner statusOP
regionrestore.cloner.restoreTrigger pool restoresOP
regionrestore.cloner.regenRegenerate poolsOP
regionrestore.timer.setSet restore timersOP
regionrestore.timer.cancelCancel timersOP
regionrestore.wandUse selection wandOP
regionrestore.selectionManage selectionsOP

Use Cases

Duels Server

Create a pool of 50 identical PvP arenas that auto-restore when players leave:

Example Configuration
mass-cloner {
    worlds=[
        {
            name="duels_world"
            pools=[
                {
                    template-name="classic_arena"
                    count=50
                    separation-chunks=10
                    restore-on-vacate=true
                }
            ]
        }
    ]
}

Event Arena

Restore an arena on a timer with countdown announcements:

/rr timer set template event_arena 300 SERVER

Practice Server

Instantly reset practice arenas between rounds:

/rr restore template my_arena

Plot World

Mass regenerate all plots on server restart:

Example Configuration ```hocon mass-cloner { worlds=[ { name="plot_world" pools=[ { template-name="default_plot" count=100 restore-on-boot=true } ] } ] } ```

Performance Notes

  • Small Regions (< 100 chunks): Sub-10ms restore times
  • Large Regions: Uses chunk streaming to maintain TPS
  • Light Updates: Restore original light by default (instant light restore)
  • Async Operations: Optional fully async restoration
  • Chunk Unloading: Automatic cleanup prevents memory leaks

Support

For support, feature requests, or bug reports, please use the GitHub issue tracker.

Website: https://github.com/bruhmomen69/OpenProjects Discord: https://discord.gg/A6NG8DaAb7


RegionRestore - Restore your worlds at the speed of gameplay.

Совместимость

Minecraft: Java Edition

26.1.x1.21.x

Платформы

Поддерживаемые окружения

Сервер

Детали

Лицензия:AGPL-3.0-or-later
Опубликован:2 месяца назад
Обновлён:1 неделю назад
Главная