[HYDRO] Premium Backups | Cloud icon

[HYDRO] Premium Backups | Cloud 1.0

The Most Advanced Backup Solution - Ever. Local, or Cloud you choose!

aboutplugin.png

HydroPremiumBackups v1.0.0 is the all-in-one safety net for your Minecraft server.
It automatically creates crash-safe, compressed backups of your worlds — locally or in the cloud — and uploads them to Dropbox and/or Google Drive.
Every process runs asynchronously, ensuring zero performance loss, with optional Discord notifications for live feedback!


core%20fea.png

✅ Multi-Layer Backup System (Choose Any or All)
• Local backups for fast restores
• Dropbox uploads for off-site security
• Google Drive integration for cloud redundancy
• Use one, two, or all three — completely up to you!


✅ Automated Scheduling
• Backups every X minutes (default: every 3 hours)
• Crash-triggered and pre-restart backups
• Automatic cleanup of old archives (keep-last) Configurable.

✅ Discord Webhook Alerts
• Live backup notifications — Start ✔️ Success and Error ❌ for Backups!
• Clean, color-coded embeds sent straight to your Discord

✅ Crash Protection & Restart Integration
• Detects freezes or unexpected crashes
• Backs up before restarting — no lost progress

✅ File Watcher Protection
• Auto-backup before plugins are reloaded or replaced

✅ Checksum Validation
• Generates .sha256 files for each archive
• Verifies file integrity before restore

✅ Lightweight & Async
• Zero TPS impact — all compression and uploads handled off-thread
• Tested on Paper and Spigot 1.21+



config.png

# ===========================================================
#  HydroPremiumBackups v2.0 - Main Configuration
#  Developed by TheMeanOneDevelopments
#  → Discord Support: https://discord.gg/dZJH8BUbej
#  Only Verified Buyers of the Plugin will be offered Support/ be allowed Requests.
# -----------------------------------------------------------
#  This plugin creates automatic, crash-safe backups of your
#  Minecraft server — uploading them to Dropbox and/or Google
#  Drive with detailed Discord notifications.
# ===========================================================


# -------------------------------------------------------------------
#  DISCORD WEBHOOK INTEGRATION
#   -  To do this click on the discord channel gear Icon, and then Integrations → Webhooks → Create
#   -  Copy the Link it Provides into the webhook field below, between the parenthasis!
# -------------------------------------------------------------------
discord:
  webhook: ""                              # → Paste your Discord webhook URL here.
    #   (Example: https://discord.com/api/webhooks/xxxxxxxxx/xxxxxxxxx)
  #   Used for sending embeds about backup creation, uploads, and errors.

notifications:
  enabled: true                            # → Show in-game messages to players.
  console: true                            # → Log to console for transparency.


# -------------------------------------------------------------------
#  AUTO BACKUP SETTINGS
#   -  This is really important to add. Not only gives you more peace of mind, but also really gives your players this as well.
# -------------------------------------------------------------------
autoBackup:
  enabled: true                            # → Enables automatic backups at the defined interval.
  interval-minutes: 360                    # → Every 6 hours (360 minutes). Set lower for more frequent backups.
  keep-last: 2                            # → How many backup ZIPs to retain before older ones are auto-deleted.
  preRestartBackup: true                   # → Run a backup before any restart event.
  crashBackup: true                        # → Run a backup automatically if the server crashes or freezes.


# -------------------------------------------------------------------
#  CLOUD STORAGE DESTINATIONS
# -------------------------------------------------------------------
storage:

  # ===========================================================
  #  LOCAL STORAGE (always HIGHLY recommended)
  #   -  This is really needed. It's set to default to keep 2 backups.
  #   - Difficulty: 0/5 (Easiest and Automatic!)
  # ===========================================================
  local:
    enabled: true
    path: "backups/"                       # → Local folder to save backup ZIPs before upload. It will be in the main container file.

  # ===========================================================
  #  DROPBOX STORAGE (Personal or App Folder Access)
  #   - Difficulty: 1/5
  # ===========================================================
  #  HOW TO:
  #   1. Visit https://www.dropbox.com/developers/apps
  #   2. Click “Create app” → choose "Scoped access" and "App folder".
  #   3. Under Permissions, enable:
  #        - files.content.write
  #        - files.content.read
  #        - files.metadata.read
  #   4. Click "Generate access token" and paste below.
  #   5. The plugin will upload ZIPs directly to your Dropbox app folder.
  #   -  NEVER Share your Token ID.
  # ===========================================================
  dropbox:
    enabled: false  #Set to false by default
    token: "sl.xxxxxYOUR_DROPBOX_ACCESS_TOKENxxxxx"
    folder: "/MinecraftBackups"             # → Folder path within Dropbox.
    #   Default is inside your App Folder; change if you granted Full Dropbox access.


  # ===========================================================
  #  GOOGLE DRIVE STORAGE (OAuth 2.0 - Refresh Token)
  #   - NEVER Share any of your personal Tokens, Client ID, ClientSecret, RefreshTokens! These are direct access to your files.
  #   - Only share them with trusted people such as your friends. If you share these with me, I will help but immediately delete them after.
  #   - Difficulty: 4/5
  # ===========================================================
  #  HOW TO:
  #   1. Go to https://console.cloud.google.com/apis/credentials
  #   2. Create OAuth client ID → type “Web application”. (This is SO Important!)
  #   3. Add “https://developers.google.com/oauthplayground” as an Authorized redirect URI. REDIRECT URI!!!!
  #   4. Open https://developers.google.com/oauthplayground
  #        a) On the right, click the gear ⚙ icon → check “Use your own OAuth credentials”. (It's at the Bottom of that box)
  #        b) Paste your Client ID and Secret from step 2.
  #        c) On the left, select the scope:
  #           https://www.googleapis.com/auth/drive.file
  #        d) Click “Authorize APIs”.
  #        e) Click “Exchange authorization code for tokens”.
  #        f) Copy the “Refresh token” and paste it below.
  #   5. The plugin will automatically refresh the access token on every upload.
  # ===========================================================
  google:
    enabled: false  #set to false by default
    clientId: ""
    clientSecret: ""
    refreshToken: ""
    folderId: ""    # → The Google Drive folder ID where backups should be stored.
      #   To get it: open your Drive folder → copy the ID from its URL.
      #   Example: https://drive.google.com/drive/folders/<folderId>
      #
    #   ⚠️ Make sure the OAuth user account has WRITE access to that folder!!!!


# -------------------------------------------------------------------
#  AUTO RESTART SCHEDULER
#  - Default this is set to every 3 hours the Server will Restart. Remove them and have as few or many as you want.
# -------------------------------------------------------------------
autoRestart:
  enabled: true                             # → Enables automatic restarts at scheduled times.
  times:                                    # → Times (24-hour format) when server restarts occur.
    - "00:00"
    - "03:00"
    - "06:00"
    - "09:00"
    - "12:00"
    - "15:00"
    - "18:00"
    - "21:00"
  notifyTimes: [60, 30, 10, 5, 1]           # → Seconds before restart when countdowns are broadcast.
  preRestartBackup: true                    # → Automatically backs up the server before restarting.


# -------------------------------------------------------------------
#  PLUGIN FILE WATCHER (auto-backup before updates)
#  - I would leave this alone, do not touch. This is EASY added protection.
# -------------------------------------------------------------------
fileWatcher:
  enabled: true                             # → Detects when plugin .jar files are replaced or modified.
  #   Creates a backup automatically before reload/update.


# -------------------------------------------------------------------
#  ADVANCED SETTINGS
#  - This really does not need touched. When backups are done, the validation adds 2 files to the local
#  - These files are the backup and the .sha256 which is a check to ensure you have a good file.
# -------------------------------------------------------------------
advanced:
  checksumValidation: true                  # → Verifies backup integrity (.sha256) before restoring.
  compressionFormat: "zip"                  # → Currently supports "zip".


# -------------------------------------------------------------------
#  TROUBLESHOOTING & INFO
# -------------------------------------------------------------------
#  - Dropbox 401 error → Token expired; generate a new one.
#  - Google 403 error  → Folder not shared with your OAuth user.
#  - You can safely enable both Dropbox and Google at once. Dropbox comes with 2GB Free and I believe 15GB for Google.
#  - All uploads are async; no TPS loss or lag.
#  - Discord embeds show start, success, and failure messages.
#  - The easiest route is the Local or Dropbox options. Google is very good, BUT is a little harder to Setup. Plenty of notes
#  - Are above!
#  - Verified Buyers ONLY will receive Support. Otherwise, requests will be ignored.
# -------------------------------------------------------------------
 


dropbox.png

Step 1: Go to the Dropbox Developer Console
Visit https://www.dropbox.com/developers/apps

Step 2: Create a New App
Click "Create app"
When asked for access type, choose “Scoped access”
Under “Type of access”, select either:
App folder (Recommended — safer, creates a private /Apps/HydroPremiumBackups folder)
or Full Dropbox (if you want backups to go anywhere in your Dropbox)
Give your app a name (e.g. HydroPremiumBackups) for Example.
⚠️ App names must be unique across Dropbox, so you may need to add a number or your server name.


Step 3: Set Required Permissions
Once your app is created:
Go to the Permissions tab on the left.
Enable these scopes:
files.metadata.read
files.content.write
files.content.read
Scroll to the bottom and click Submit to save your permissions.
Step 4: Generate an Access Token
Go to the Settings tab.
Scroll down to the OAuth 2 section.
Click the “Generate access token” button.
Dropbox will create a long string of letters and numbers — this is your personal access token.

⚠️ Keep it private!
Anyone with this token can upload and view files in your Dropbox app folder.
Never share it publicly, even in screenshots or logs. UNLESS WITH THE DEVELOPER OR CLOSEST ADMINS!
Step 5: Add Your Token to the Config
Open your config.yml and find this section:



Code (YAML):
storage:
  dropbox:
   enabled: true
   token: "sl.xxxxxYOUR_DROPBOX_ACCESS_TOKENxxxxx"
   folder: "/MinecraftBackups"

Paste your token exactly where it says! YOUR_DROPBOX_ACCESS_TOKEN.

You can customize the folder: name to whatever you want inside Dropbox (the plugin will auto-create it if missing).


Step 6: Restart Your Server
Once your token is saved:
Restart your server normally.
HydroPremiumBackups will automatically create and upload backups to Dropbox.
Check your Discord webhook or console logs — you’ll see confirmation messages. Also, run in your console /backup start and you will be able to verify it is connected.



Optional Tips
App Folder access is safest — backups stay isolated in /Apps/HydroPremiumBackups/

You can use Full Dropbox access if you need custom folder paths or multiple servers sharing one folder

Your access token may expire if you delete or edit app permissions; simply generate a new one and replace it in the config. Not a big deal!

drive.png

Step-by-Step Setup Guide
⚙️ Step 1: Open Google Cloud Console
Visit https://console.cloud.google.com/apis/credentials

If you’ve never used it before, you’ll need to sign in with your Google account and accept the terms.


Step 2: Create a New Project
At the top of the page, click the Project dropdown (next to the Google Cloud logo).
Click New Project.
Give it a name that you like that is Unique.
Click Create.
Once it’s created, make sure it’s selected in the top bar.


Step 3: Enable the Google Drive API
With your project selected, go to https://console.cloud.google.com/apis/library

Search for “Google Drive API”.

Click it, then press Enable.
Step 4: Create OAuth 2.0 Credentials
Now we’ll create the connection your plugin will use to upload files. This is the MOST important piece of this process.
Go to https://console.cloud.google.com/apis/credentials
Click “+ Create Credentials” → “OAuth client ID”
If prompted, click Configure consent screen:
Choose External
Fill in the App name (ex., HydroPremiumBackups)
Add your email
Save and Continue (you don’t need to fill out the rest)
Now back under “Create OAuth client ID”:
Choose Web Application
Under Authorized redirect URIs, click Add URI and paste:


https://developers.google.com/oauthplayground


Click Create
You’ll get two things:
Client ID
Client Secret
Save both — you’ll need them soon. and DO NOT SHARE THESE WITH ANYONE!!!


Step 5: Use Google OAuth Playground
Google’s OAuth Playground helps you generate a Refresh Token for your Drive account.

Go to https://developers.google.com/oauthplayground

Click the ⚙️ gear icon (top right)
Check ✅ “Use your own OAuth credentials” Its at the bottom.
Paste your Client ID and Client Secret from Step 4
On the left side, under Step 1, scroll and select:




https://www.googleapis.com/auth/drive.file


(This allows the plugin to read/write its own files.) It will be under the "Drive API" option about half way down.

Click Authorize APIs
Log in with the Google account you want to store backups under
Click Exchange authorization code for tokens
A “Refresh Token” will appear in the box on the right
You now have:
Client ID
Client Secret
Refresh Token
Step 6: Add Your Credentials to the Config
Open your config.yml and fill in this section:

Code (YAML):
storage:
  google:
   enabled: true
   clientId: "YOUR_CLIENT_ID"
   clientSecret: "YOUR_CLIENT_SECRET"
   refreshToken: "YOUR_REFRESH_TOKEN"
   folderId: "YOUR_FOLDER_ID"
⚠️ Keep these values private.
Anyone with your credentials can access your backups!!!!

Step 7: Get Your Google Drive Folder ID
Create a new folder in your Google Drive (e.g., “MinecraftBackups”).
Open the folder and copy the last part of the URL: EX:
https://drive.google.com/drive/folders/<folderId>
Paste the Folder ID into the FolderID slot in the config. This will allow the Plugin to know where to communicate backups with Google API.
Step 8: Restart Your Server
Once everything is set, restart your server and run a /backup start command. If done properly, you will be notified in the Console a verification!

Optional Tips
The OAuth refresh token keeps your access valid long-term.
You don’t need to redo these steps unless you change your credentials or revoke app access.

The plugin automatically refreshes access tokens in the background — no manual renewals needed. BUT in the event that you need to refresh them you can do so on the same site you went to create it.

Store your credentials in a safe place outside the server (for future reinstallation). Dont provide it to ANYONE as this will give your entire Server Setup out!

perm.png

Permissions & Access
Below is a full list of available permissions and what each one does:


Core Backup Commands
Permission Description Default
hydrobackups.command Grants access to all /backup subcommands. op
hydrobackups.command.start Allows a player to manually start a backup using /backup start. op
hydrobackups.command.list Allows viewing existing backups using /backup list. op


Restart & Scheduler Controls
Permission Description Default
hydrobackups.restart Allows manual use of /restart — triggers a safe pre-restart backup and countdown. op
hydrobackups.restart.notify Allows receiving restart notifications and countdown alerts. true


⚙️ Administrative Control
Permission Description Default
hydrobackups.admin Grants full access to all HydroPremiumBackups commands and features. op
This includes:
/backup start, /backup list,

/restart command access

All restart notifications
Permission Tips
Use hydrobackups.admin for trusted staff or server owners.

Regular players don’t need any permissions unless you want them to view backup logs or restart timers.

devp.png

As a developer, I’m no stranger to support tickets, feature requests, and bug reports — they come with the territory.
But what truly matters to me is how those are handled.

If you ever run into an issue or have an idea that could make HydroPremiumBackups better, I encourage you to reach out through my official Discord.
Be as detailed as you can — logs, screenshots, version info, whatever helps me understand the problem faster — and I promise you’ll be treated with respect, urgency, and transparency.

I built HydroPremiumBackups with the same mindset I bring to every Hydro plugin:
⭐ Consistent updates
⭐ Real support from a real person
⭐ A commitment to making your server run smoother, safer, and more stable

There are too many “fly-by-night” developers out there who disappear the moment a sale is made.

That’s not how I work.

When you invest your hard-earned money in one of my plugins, you’re getting long-term reliabilityactive development, and a developer who actually listens. I have a proven track record on many other games of doing just this.

Your trust and satisfaction mean everything — and I’ll always stand behind my work. And together, we can build some amazing things.

lic.png

Copyright © 2025 TheMeanOneDevelopments
All Rights Reserved.
Proprietary and Confidential — United States

1. Grant of License
You are granted a non-exclusive, non-transferable license to use HydroPremiumBackups (“the Software”) solely for operation on your own Minecraft servers.
You may not:

Redistribute, resell, rent, lease, sublicense, or otherwise transfer the Software or any of its components.

Modify, decompile, disassemble, or reverse-engineer any portion of the Software.

Publish, share, or upload the Software (or derivatives) to any public or private repository, hosting site, or file distribution platform.
2. Ownership
The Software remains the exclusive property of TheMeanOneDevelopments.
You obtain no ownership rights, only the limited license expressly granted above.

3. Commercial Use and Redistribution
Resale, redistribution, or inclusion of the Software in any commercial product, paid package, or public modpack is strictly prohibited without prior written permission from TheMeanOneDevelopments.

4. Modification and Derivative Works
No modifications or derivative works may be created or distributed based on the Software.
Internal configuration or plugin.yml edits are permitted only for private server operation.

5. Revocation
TheMeanOneDevelopments reserves the right to revoke this license at any time, for any violation of these terms.

6. Liability Disclaimer
The Software is provided “as is,” without warranty of any kind. TheMeanOneDevelopments is not liable for any data loss, damages, or issues resulting from the Software’s use.

Discord%20Notify.png

Backup%20List.png

In%20Game%20Example.png

You might also like...