Compatibility
Minecraft: Java Edition
26.2
26.1.x
1.21.x
1.20.x
1.19.x
1.18.x
Platforms
Tags
Creators
Details
Licensed ARR
Published 18 hours ago
Features
- Scheduled Automatic Backup: Configurable backup interval, default 60 minutes
- Time-Based Backup Mode: Trigger backups at specific times in a specified timezone (supports 24/12-hour format)
- Manual Backup Trigger: Execute backup immediately via command
- Startup Backup: Auto-execute backup on server start (optional)
- Hot Backup: Asynchronous execution, non-blocking main thread
- World Save Control: Save worlds before backup, pause autosave during backup to prevent data inconsistency
- Compressed Backup: Support compressing backups as zip format to save disk space
- Backup File Management: Auto-clean old backups, keep specified count of recent backups (also cleans after manual GitHub upload)
- Multi-Cloud Upload: Local directory, FTP/FTPS, WebDAV, Baidu Netdisk, 123 Cloud
- GitHub Backup: Upload/download backups via GitHub Release API, supports auto-creation of private repository
- Alert Notifications: Send alerts via Email, Lark bot, DingTalk bot on backup failure
- Backup Restore: Restore world data from specified backup (will reload worlds)
- Hot Config Reload: Reload config without server restart
- Status Query: View plugin status and scheduler info
Installation
- Download the latest
PluralBackupJava-1.0.0.jar - Place the jar file in the server's
plugins/directory - Start the server, the plugin will auto-generate default config at
plugins/PluralBackup/config.yml - Edit the config file as needed
- Execute
/backup reloador restart the server to apply changes
Commands
All commands require pluralbackup.admin permission (default: OP).
| Command | Description |
|---|---|
/backup now |
Execute a backup immediately |
/backup list |
List all backups |
/backup restore <backup-name> |
Restore specified backup |
/backup clean |
Clean old backups |
/backup reload |
Reload configuration file |
/backup status |
View plugin status |
/backup github-list |
List backup versions on GitHub |
/backup github-download <version> |
Download specified version from GitHub |
/backup github-upload |
Backup server and upload to GitHub |
Aliases: /pbackup, /pluralbackup
Configuration
Config file located at plugins/PluralBackup/config.yml:
# Basic Backup Settings
backup:
auto-backup: true # Enable automatic backup (interval mode)
interval-minutes: 60 # Backup interval in minutes (interval mode only)
backup-on-start: false # Execute backup on server start
broadcast-message: true # Broadcast backup messages
# Scheduled backup (time-based trigger, independent from interval mode, can be enabled together)
schedule:
enabled: false # Enable time-based mode
timezone: "Asia/Shanghai" # Trigger timezone, e.g. Asia/Shanghai, America/New_York, Europe/London
use-24-hour-format: true # Use 24-hour format (false for 12-hour format with AM/PM)
times: # Trigger times list
- "00:00" # 24-hour examples: ["00:00", "06:00", "12:00", "18:00"]
- "12:00" # 12-hour examples: ["12:00 AM", "06:00 AM", "12:00 PM", "06:00 PM"]
backup-dir: "backups" # Backup directory (relative to plugin data folder)
max-backups: 10 # Maximum backup count (0 = unlimited)
compress: true # Compress as zip
exclude-dirs: # Excluded directories (relative to server root)
- "plugins/PluralBackup/backups"
# Backup Behavior
save-world-before-backup: true # Save all worlds before backup
pause-autosave-during-backup: true # Pause autosave during backup
file-copy-retry-count: 3 # File copy retry count
file-copy-retry-delay-ms: 500 # Retry delay in milliseconds
# Cloud Upload
cloud:
enabled: false
type: "local" # local / ftp / webdav / baidu / pan123
local:
path: "cloud-backups"
ftp:
host: "127.0.0.1"
port: 21
username: "ftpuser"
password: "ftppass"
remote-dir: "/backups"
use-ssl: false
webdav:
url: "https://dav.example.com/backups"
username: "user"
password: "pass"
# Baidu Netdisk (https://pan.baidu.com/union/console)
baidu:
app-id: ""
app-secret: ""
app-folder: "" # Product name, files stored at /我的应用数据/{app-folder}/
access-token: "" # Leave empty for auto-fetch and cache
# 123 Cloud (https://www.123pan.cn/developer)
pan123:
client-id: ""
client-secret: ""
access-token: "" # Leave empty for auto-fetch and cache
parent-folder-id: 0 # Target folder ID, 0 for root
# Alert Notifications
notification:
enabled: false # Enable backup failure notifications
# Email notification
email:
enabled: false
smtp-host: "" # e.g. smtp.qq.com
smtp-port: 465
use-ssl: true
username: "" # Sender login account
password: "" # Authorization code (QQ Mail requires auth code)
from: "" # Sender email
to: "" # Recipient email
subject: "PluralBackup Backup Alert"
# Lark bot
feishu:
enabled: false
webhook: "" # Custom bot Webhook
secret: "" # Signing secret (leave empty if not using signature)
# DingTalk bot
dingtalk:
enabled: false
webhook: "" # Custom bot Webhook
secret: "" # Signing secret (leave empty if not using signature)
# GitHub Backup
github:
enabled: false
token: "your-github-token" # PAT with repo permission
owner: "your-username"
repo: "PluralGamneBackup"
auto-create-repo: true # Auto-create private repo if not exists
# Message Settings
backup-start-message: "§e[Backup] §bServer is performing automatic backup..."
backup-done-message: "§e[Backup] §aBackup complete! Time: {time}s"
backup-fail-message: "§e[Backup] §cBackup failed: {error}"
GitHub Backup Instructions
- Create GitHub Personal Access Token with
repopermission, recommend no expiration - Configure
token,owner,repoin config file - Enable
github.enabled: true - Private repo auto-created if not exists (requires
auto-create-repo: true) - Empty repo auto-initialized (README.md written), otherwise Release creation fails
- Backup files uploaded as Release Assets, single file limit 2GB
- GitHub scheduled backup shares
interval-minuteswith local backup - All network operations (upload/download) execute asynchronously, non-blocking main thread
- Manual
/backup github-uploadwill auto-clean local old backups (subject tomax-backupslimit)
Dual-Mode Scheduled Backup
The plugin supports two independent trigger modes that can be enabled simultaneously:
1. Interval Mode (backup.auto-backup: true + backup.interval-minutes: 60)
- Execute backup every N minutes
- Suitable for high-frequency backup scenarios
2. Time-Based Mode (backup.schedule.enabled: true)
- Execute backup at specific times in a specified timezone
- Supports custom timezone (e.g.
Asia/Shanghai,America/New_York,Europe/London) - Supports 24-hour format (
HH:mm, e.g.00:00,12:00,18:30) - Supports 12-hour format (
hh:mm a, e.g.12:00 AM,06:00 PM) - Multiple trigger times configurable
Both modes can be enabled together without conflict. Example: interval mode backs up every hour, time-based mode adds extra backups at 00:00 and 12:00 daily.
Permissions
| Permission | Default | Description |
|---|---|---|
pluralbackup.admin |
OP | Use all backup management commands |
Build
mvn clean package
Generated jar file at target/PluralBackupJava-1.0.0.jar.
License
Copyright © PluralTeam


