Language

ZRestart

ZRestart

Modrinth

Lightweight Paper-only auto-restart scheduler for Minecraft 26.x with multi-channel countdowns and full message customization.

17 downloads updated 1mo ago
Modrinth
Paper 26.1 – 26.1.2 ManagementOptimizationUtility

ZRestart

Lightweight Paper-only auto-restart scheduler for Minecraft Java 26.x.

ZRestart schedules native Bukkit.restart() calls, broadcasts configurable countdown warnings across chat, title, boss bar, and sound, and gives admins full manual control — with every player, admin, and console-facing message exposed in messages.yml. Built specifically for Paper 26.x and Java 25+, with no legacy version baggage.


Why ZRestart

  • Paper 26.x-first. No compatibility shims for old API versions. Lean codebase targeting the current Paper API directly.
  • Familiar schedule format. Uses DAY;HOUR;MINUTE[;REASON] entries that any experienced admin will recognize on sight.
  • Real timezone handling. IANA timezone IDs with proper DST gap/overlap behavior and a configurable fallback timezone.
  • Atomic reload. A broken config never breaks the plugin — ZRestart keeps the previous valid runtime if a reload fails.
  • Versioned configs with automatic migration. Adds new keys on plugin updates, preserves your customizations, and saves timestamped backups before any rewrite.
  • Restart-script diagnostic. Detects unsafe Bukkit.restart() setups on startup and warns you, so a "restart" doesn't silently become a "stop."
  • Public read-only API for other plugins to query restart state and trigger start/stop programmatically.

Features

⏱️ Scheduling

  • Automatic restart scheduling using Daily or weekday entries (DAY;HOUR;MINUTE[;REASON])
  • Manual restart countdowns: /zrestart now <interval> [reason]
  • Live delay and cancel: /zrestart delay <interval> and /zrestart stop
  • Flexible interval formats: 30m, 1:30, 3600, 1h 30m, and more

📢 Warnings

  • Four channels: chat, title, boss bar, sound — all driven from one shared warning list
  • Per-warning sound entries with configurable sound name, category, volume, pitch
  • Boss bar with configurable color, overlay, progress, and show-from threshold
  • Player title popups when manual restarts are scheduled or pending restarts are cancelled

⚙️ Configuration & reliability

  • Full MiniMessage support alongside legacy & color codes
  • Configurable timezone with DST gap/overlap handling and fallback timezone
  • Versioned config.yml and messages.yml with automatic schema migration
  • Timestamped backups before any auto-update rewrite (config.yml.bak-YYYYMMDD-HHMMSS)
  • Atomic reload — keeps the previous valid runtime config if a reload fails
  • Startup diagnostic for unsafe Bukkit.restart() setups
  • Tab-completion for subcommands, intervals, and configured reasons
  • Unit tests covering parser, scheduler, warnings, and reload paths

🔌 Integration

  • Public read-only API exposing manual + automatic restart state and start/stop triggers
  • Optional pre-restart console commands with CONTINUE or ABORT failure behavior
  • Soft PlaceholderAPI integration for player-bound messages
  • Attempts player and world saves before restart

Use cases

  • Daily or weekly automated maintenance restarts on a fixed schedule
  • One-off manual restarts for hotfixes, plugin reloads, or emergency maintenance
  • Network-wide synchronized restarts using a shared timezone configuration
  • Running pre-restart commands (backups, save-all, broadcasts, kicks, webhook triggers) before every restart
  • Showing countdown warnings through any combination of chat, title, boss bar, and sound

Pre-restart commands — flexible by design

ZRestart doesn't hardcode behaviors like kicking players or skipping empty restarts. The pre-restart commands section lets you run any console commands in sequence before the restart fires:

pre-restart-commands:
  enabled: true
  failure-behavior: CONTINUE
  commands:
    - "save-all"
    - "kick @a Server restarting"
    - "broadcast See you in 30 seconds!"

Set failure-behavior: ABORT to cancel the restart if any command fails.


Commands

| Command | Description | Permission |
|---|---|---|
| /zrestart | Show help | zrestart.time |
| /zrestart time | Show active or next scheduled restart status | zrestart.time |
| /zrestart now <interval> [reason] | Start a manual restart countdown | zrestart.admin |
| /zrestart delay <interval> | Delay the active countdown | zrestart.admin |
| /zrestart stop | Cancel the active countdown | zrestart.admin |
| /zrestart reload | Reload config.yml and messages.yml | zrestart.reload |

Permissions

| Node | Default | Allows |
|---|---|---|
| zrestart.time | true | /zrestart and /zrestart time |
| zrestart.admin | op | Manual now / delay / stop |
| zrestart.reload | op | Config and message reload |


Requirements

  • Paper 26.1.2+
  • Java 25+
  • (Optional) PlaceholderAPI 2.12.2+ for placeholder support in player-bound messages

Installation

  1. Drop ZRestart.jar into your server's plugins/ folder.
  2. Start the server once so config.yml and messages.yml generate.
  3. Confirm spigot.yml has a valid settings.restart-script.
  4. Edit plugins/ZRestart/config.yml for schedules, channels, timezone, and pre-restart commands.
  5. Edit plugins/ZRestart/messages.yml for all user-facing text.
  6. Run /zrestart reload after config changes.

Scope

ZRestart is intentionally focused. It does not support:

  • Spigot, Folia, Velocity, BungeeCord, or any proxy software
  • Minecraft versions older than 26.x
  • A ZRestart PlaceholderAPI expansion (it consumes placeholders, doesn't expose its own)
  • Hardcoded player-kick or skip-empty-server logic — handled flexibly through pre-restart commands instead

Bukkit.restart() requires a properly configured settings.restart-script in spigot.yml. ZRestart will warn you on startup if this looks misconfigured.



Built and maintained by Zenologia.

Versions

No version history available. Use the Download button to get the latest from the source.

Comments 0

No comments yet. Be the first to share your thoughts.

Download ZRestart

Files are served directly from the original source. Modgrid does not host or modify them.