Operations manual

Operator wiki

Everything required to install, configure, operate, recover, and migrate ResourceWorldResetter 5 across its two supported platform families.

01 · Foundations

Getting started

ResourceWorldResetter schedules and coordinates resource-world regeneration. It evacuates players, invokes the installed world provider, verifies the result, and records a terminal history entry.

Requirements

  • Java 21+ for Spigot, or Java 25+ for Paper/Purpur/Folia with Worlds 4.4.0+
  • Minecraft API baseline 1.21.4
  • A supported server in the 1.21.4 or 26.x line
  • One matching world provider

Non-negotiable rules

  • Install one RWR platform JAR only
  • Never install rwr-core separately
  • Back up plugin data and worlds
  • Use full restarts, not hot reloaders
02 · Spigot

Spigot / CraftBukkit installation

  1. Install Multiverse-Core 5.8.0+.
  2. Confirm every intended resource world already exists in Multiverse-Core.
  3. Place RWR-Spigot-5.1.0.jar in plugins/.
  4. Remove any Paper/Folia RWR artifact and restart fully.
  5. Configure worlds using the plain legacy name reported by Multiverse-Core.

Multiverse-Core is a hard dependency for this artifact. RWR delegates regeneration to its API; RWR does not directly delete world folders.

03 · Paper / Folia

Paper, Purpur, and Folia installation

  1. Install Worlds by TheNextLvl 4.4.0+.
  2. Confirm intended resource dimensions are registered in Worlds.
  3. Place RWR-Paper-Folia-5.1.0.jar in plugins/.
  4. Remove the Spigot RWR artifact and restart fully.
  5. Use the Worlds key detected by the admin GUI, such as worlds:resource.

Do not install Multiverse-Core for RWR on this platform. The Paper/Folia artifact uses Worlds and Folia-safe schedulers. Player evacuation is asynchronous and does not block the global-region thread.

04 · Configuration

Configuration model

v5 requires config-version: 5. A reload is transactional: invalid input is rejected while the previous active settings and schedules remain in service.

SettingPurpose
timezoneIANA timezone used for schedules and history output.
default-hub-worldDefault safe evacuation destination.
reset-policySafe retry count, delay, and completion broadcast behavior.
worlds.<id>Stable RWR identifier used by commands and configuration.
multiverse-worldProvider identity. The compatibility-oriented field name is also used for Worlds keys on Paper/Folia.
display-nameSingle presentation name for chat, logs, status, history, and GUIs.
warning-minutesWhole-minute countdown points; use [] to disable warnings.
regeneration.seed-policySAME, RANDOM, or a fixed seed configuration.
evacuation.destinationLoaded provider world used as the safe destination.
teleportDiscovery, visibility, locked entries, and destination permission overrides.
worlds:
  rainforest:
    multiverse-world: rainforest
    display-name: "Rainforest"
    enabled: true
    managed: true
    schedule:
      type: DAILY
      time: "03:00"
    warning-minutes: [30, 10, 5, 1]
    regeneration:
      seed-policy: RANDOM
      keep-world-config: true
      keep-gamerules: true
      keep-world-border: true
    evacuation:
      enabled: true
      destination: world
05 · Commands

Command reference

CommandPermissionUse
/rwr helpNone / relevant nodesShow the available command tree.
/rwr status [id]rwr.statusShow managed-world state, active reset phase, and calculated next schedule.
/rwr history [count]rwr.historyRead persisted terminal and interrupted operations.
/rwr reset <id>rwr.resetStart a guarded immediate reset through the coordinator.
/rwr reloadrwr.reloadTransactionally validate and activate YAML changes.
/rwr guirwr.adminOpen the administration dashboard.
/rwr tprwr.tpOpen the player destination GUI.
06 · Access

Permissions

These nodes are registered in both platform artifacts. Destination-specific access is configured per teleport entry rather than as a second static plugin node.

NodeDefaultAllows
rwr.adminOperatorAdministration GUI and admin actions.
rwr.reloadOperatorTransactional reload.
rwr.resetOperatorImmediate reset requests.
rwr.statusOperatorStatus inspection.
rwr.historyOperatorReset history inspection.
rwr.tpEveryoneOpen and use the teleport GUI.
rwr.teleport.world.*OperatorBypass destination-specific teleport permissions.

Leave a destination permission blank to make it public to anyone with rwr.tp. Set it to any Bukkit node (for example a LuckPerms group) to restrict that destination. Operators with rwr.teleport.world.* still see and use locked destinations.

07 · Lifecycle

Reset phases and safety

PRECHECK

Validate provider registration, loaded state, configuration, and recovery journal.

EVACUATE

Move players and confirm the source world is empty. Incoming RWR teleports are blocked.

REGENERATE

Invoke the authoritative provider while retaining world and global reset locks.

VERIFY

Confirm provider registry, loaded state, identity, and safe spawn.

COMPLETE / FAILED

Persist terminal outcome and release locks.

INTERRUPTED

Record an operation found active after restart without replaying it.

08 · Automation

Schedules and warnings

Supported types are daily, weekly, monthly, and interval. Calendar schedules use the configured timezone. Warning values are whole minutes and are deduplicated before scheduling.

  • After editing schedules manually, run /rwr reload.
  • Confirm the calculated next schedule with /rwr status.
  • Use an empty warning list when countdown broadcasts are unwanted.
  • Shutdown cancels one-shot reset and warning tasks; schedules are reconstructed on normal startup.
09 · Player safety

Evacuation and teleport protection

The destination must resolve to a loaded, safe location. A disabled or unavailable destination stops the reset safely while players remain.

  • Spigot performs synchronous Bukkit teleports on its server thread.
  • Paper uses its safe primary-thread path without waiting on teleportAsync.
  • Folia begins entity-region asynchronous teleports and resumes the reset from the global scheduler only after completion.
  • Regeneration is never invoked while the remaining-player count is non-zero.
10 · Interfaces

Admin and player GUIs

The administration dashboard supports managed-world setup, global settings, teleport configuration, history, and guarded confirmations. The player GUI discovers eligible provider worlds without loading them, paginates destinations, shows player counts, respects custom permissions, and blocks unsafe access during resets.

If anvil text input is unavailable, RWR falls back to chat input. GUI changes pass through the same configuration validation and persistence path as manual edits.

11 · Recovery

Interrupted and failed operations

  1. Read /rwr status and /rwr history 10.
  2. Inspect the server log and reset-history.json.
  3. Verify the provider reports the expected world identity and loaded state.
  4. Confirm no players remain in the managed world.
  5. Retry only when the result says safe to retry. Review ambiguous outcomes manually.

RWR intentionally does not auto-repeat an interrupted regeneration. Repeating an operation whose provider outcome is unknown can destroy valid world state.

12 · Legacy

Migration from v4.2.1 or earlier

v4.2.1 is the final legacy maintenance release. v5 does not automatically load v4 configuration.

  1. Back up worlds and the complete legacy plugin folder.
  2. Choose the v5 artifact and provider matching the server platform.
  3. Remove the v4 JAR; never run both generations together.
  4. Start v5 once to generate config-version: 5.
  5. Manually recreate stable world IDs, provider identities, display names, schedules, warning minutes, evacuation destinations, and teleport permissions.
  6. Run a supervised reset before enabling unattended schedules.

Read the complete Operations & Migration guide →

13 · Diagnostics

Troubleshooting

Plugin will not enable

Confirm Java 21+ for Spigot or Java 25+ for Paper/Purpur/Folia, the correct RWR artifact, and its hard dependency. Remove the other platform artifact.

World is unavailable

Confirm it is registered and loaded in Multiverse-Core or Worlds using the exact provider identity.

Players remain

Validate the evacuation destination and teleport permissions. Another plugin may cancel or redirect teleports.

Configuration rejected

Read every validation issue in the log. The previous active snapshot remains in use after a failed reload.

Folia watchdog warning

Confirm the running JAR includes the non-blocking v5 evacuation fix and attach the complete watchdog stack.

History says interrupted

Inspect provider state manually. Do not retry an ambiguous operation until the world is verified.

14 · FAQ

Frequently asked questions

Does Paper/Folia use Multiverse-Core?

No. It requires Worlds by TheNextLvl. Multiverse-Core belongs to the Spigot/CraftBukkit artifact.

Should I install rwr-core?

No. It is shaded into both platform JARs.

Can v5 load my v4 config?

No. Migrate values manually into a fresh v5 configuration.

Does RWR delete world folders itself?

No. It delegates the authoritative regeneration operation to the selected provider and independently verifies the outcome.

Can I hot reload the plugin?

No. Replace JARs and platform dependencies only while stopped, then perform a full restart.

15 · Support

Report a useful problem

Open a GitHub issue and include:

  • Complete logs/latest.log, not only the final exception
  • Exact server build and Java version
  • Exact RWR artifact filename
  • World-provider name and version
  • Relevant configuration with secrets removed
  • The command, scheduled event, or GUI action that triggered the issue

No wiki sections matched

Try a shorter term such as “Folia,” “schedule,” “permission,” or “recovery.”