AutoUpdatePlugins for Minecraft 1.20.1, 1.21.1
(Original AutoUpdatePlugins) Automatically update any plugin you wish!
AutoUpdatePlugins v12.2.0
Keep your server’s plugins up-to-date - automatically, safely, and across platforms.
TL;DR Drop in the jar ➜ list the plugins you want ➜ it finds, downloads, validates, and stages updates from a ton of sources - on a schedule, in parallel, without blocking your main thread.
Table of Contents
- Highlights
- Supported Sources & Platforms
- Requirements
- Installation
- Quick Start
- Configuration
- config.yml
- list.yml
- Scheduling Cheat Sheet
- Performance Tuning Guide
- Commands & Permissions
- How It Works (Under the Hood)
- Examples for Every Source
- Troubleshooting & FAQ
- Building from Source
- Security Notes
- Contributing, Issues & Support
- License
Highlights
- One list, many sources. Pull updates from GitHub Releases/Actions, Jenkins, SpigotMC (Spiget), dev.bukkit,
Modrinth, Hangar, BusyBiscuit, blob.build, Guizhanss v2, MineBBS, CurseForge, or any page with a direct .jar link.
- Local sources. Point at local jar files or run scripts that output a jar path for custom/patched builds.
- Smart file selection. Use ?get=, [N] (pick the N-th asset - works for both GitHub and Jenkins
artifacts), ?artifact=2 for GitHub Actions bundles, ?prerelease=true, ?alpha=true, ?beta=true, ?latest=true, ?channel=Alpha, ?autobuild=true - mix and match to land on the exact build you need.
- Zero-friction config evolution. New options are auto-added to config.yml without clobbering your comments or
existing values.
- HTTP flexibility. Add custom headers, rotate User-Agents, and route through proxies when needed.
- Performance built-in.
- Fully async downloads; no main-thread stalls.
- Java 11+ HTTP/2 client for modern, non-blocking transfers.
- Java 21+ virtual threads for ultra-lightweight concurrency.
- Connection pooling, parallel downloads, and retry with exponential backoff.
- Flexible scheduling. Interval + boot delay or cron with timezone support.
- Cross-platform. Works on Spigot, Paper, Folia, Velocity, BungeeCord.
- Safe updates. Download ➜ validate ➜ atomic replace, staged through temp/update paths.
- Integrity + dedupe. Optional zip integrity checks and MD5 comparison skip corrupted or unchanged downloads.
- Rollback safety net. Snapshot the previous jar and auto-restore if the new build fails to start.
Supported Sources & Platforms
Download Sources
Source - Release/Build Discovery - Notes / Selectors Supported
GitHub - Releases & Actions - [N], ?artifact=2, ?get=regex, ?prerelease=true, ?alpha=true, ?beta=true, ?latest=true, ?autobuild=true Jenkins - Latest build artifacts - [N], ?get=regex SpigotMC (Spiget) - Resource page URL - Auto-resolves latest dev.bukkit - Project page - Auto-resolves latest Modrinth - Project/version URL - ?get=regex, ?alpha=true, ?beta=true, ?latest=true Hangar - Project/releases - ?get=regex, ?alpha=true, ?beta=true, ?latest=true, ?channel=Alpha BusyBiscuit - Project index - Auto-resolves blob.build - Build artifacts - ?get=regex Guizhanss v2 - Project index - Auto-resolves MineBBS - Resource page - Auto-resolves CurseForge - Project/files - ?get=regex Generic - Direct .jar link - Exact file URL Local file - Local path - file:, local:, path:, or absolute/relative path Local script - Script stdout path - script: or exec: (script prints jar path to stdout)
Note: GitHub and Jenkins links both accept [N] to pick the N-th artifact on their release/build pages ( 1-indexed). Tip: You can pass just the project root URL for most sources (e.g., a GitHub repo or Spigot resource page) and let AutoUpdatePlugins choose the latest artifact. Add selectors for precision.
Server Platforms
- Spigot, Paper, Folia
- Velocity, BungeeCord
Minecraft & Java
- Minecraft: 1.8 → Latest
- Java: 8+ (uses advanced features automatically on 11+ and 21+)
Requirements
- Java 8 or newer.
- Uses Java 11+ HTTP/2 client when available.
- Uses Java 21+ virtual threads when available.
- Network access for source builds (Gradle/Maven wrappers or system gradle/mvn, if used).
Installation
- Download the latest .jar from Spigot.
- Place it into your server’s plugins/ directory.
- Start the server to generate default config files.
- Edit plugins/AutoUpdatePlugins/config.yml and plugins/AutoUpdatePlugins/list.yml.
- Run /update or /aup update (or restart) to kick off the first check.
Velocity / BungeeCord: Same process - drop the jar in plugins/, configure, then trigger an update run.
Quick Start
- Add a few entries to list.yml:
ViaVersion: "https://www.spigotmc.org/resources/viaversion.19254/" Geyser: "https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/spigot" EssentialsXChat: "https://github.com/EssentialsX/Essentials[3]"
- Leave updates.interval at the default (every 120 minutes), or set a cron schedule.
- Optional: Add a GitHub token in config.yml to avoid rate limits.
- Trigger a run:
/update
- New jars are staged atomically in your plugins folder (using temp/update paths under the hood). Restart the
server to load the updated jars.
Configuration
config.yml
The plugin adds new options automatically without overwriting your comments. Below is the full schema with defaults and notes.
AutoUpdatePlugins - Main Configuration
updates:
How often to run plugin updates (minutes). Default: 120 (every 2 hours)
interval: 120
Delay after server startup (seconds) before the first run. Default: 50
bootTime: 50
Schedule (experimental): Use a cron expression to control exactly when
updates run. When set, this overrides both interval and bootTime.
Examples:
Every day at 03:30: "30 3 * * *"
Every 15 minutes: "*/15 * * * *"
At 5 past every hour on weekdays: "5 * * * 1-5"
schedule: cron: "" # Cron expression (UNIX 5-field). Leave blank to disable. timezone: "UTC" # Timezone for the cron schedule, e.g. "America/New_York"
Optional GitHub personal access token (PAT). Strongly recommended if you use
many GitHub links to avoid API rate-limits when listing releases/artifacts.
Scope: public_repo is enough for public repos.
Generate a token: https://github.com/settings/tokens
key:
HTTP configuration (optional)
http:
If blank, a rotating pool of realistic User-Agents will be used.
userAgent: ""
Extra request headers added to every request. Only add if you know you need it.
headers: [ ]
Verify TLS certificates (set to false to trust all; only if you must)
sslVerify: true
Optional pool of User-Agents; the plugin will rotate between them to avoid
strict CDNs blocking automation.
userAgents:
- { ua: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36" }
- { ua: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Safari/605.1.15" }
- { ua: "Mozilla/5.0 (X11; Linux x86_64; rv:126.0) Gecko/20100101 Firefox/126.0" }
Proxy configuration (optional)
proxy: type: "NONE" # HTTP | SOCKS | (anything else = disabled) host: "proxy.example" port: 8080
Behavior toggles
behavior: useUpdateFolder: true
Open downloaded .jar/.zip to ensure integrity before install (recommended)
zipFileCheck: true
Skip replacing an existing plugin if the new jar has the same MD5
ignoreDuplicates: true
Allow GitHub/Modrinth/Hangar pre-releases by default for release queries.
allowPreRelease: false
Enable source-build fallback for GitHub repositories.
autoCompile: enable: false
Build when a release has no .jar asset (zip-only)
whenNoJarAsset: true
Build from source if default branch is newer than latest (pre)release by N months
branchNewerMonths: 6
Verbose debug logging. Toggle with /aup debug on|off
debug: false
Restart the server/proxy automatically after updates.
restartAfterUpdate: false
Delay in seconds before restarting after updates.
restartDelaySec: 5
Broadcast message before restarting (supports {delay}).
restartMessage: "Server restarting to apply updates."
Optional custom paths
paths: tempPath: '' updatePath: '' filePath: '' rollbackPath: ''
Performance and reliability options
performance:
How to install AutoUpdatePlugins
A server on Paper, Purpur, Spigot, Bukkit, Folia or BungeeCord
The plugin runs on the server core for Minecraft 1.8–1.21.11; players do not need to install anything.
File goes into the plugins folder
Download the file autoupdateplugins-12.2.0.jar (4.3 MB) and put it into the server’s plugins folder.
Restart the server
On startup the plugin creates its own settings folder in plugins.
Or use the “To hosting” button
On Millida Hosting, the button at the top of the page uploads the file to your server and restarts it for you.
Minecraft 1.21.11 runs on Java 21: with a different Java version the game may close right after launch.
Versions
With dependencies
| Minecraft | Loader | File | Date | Actions |
|---|---|---|---|---|
| 1.12.2 | Bukkit, BungeeCord, Folia, Paper, Purpur, Spigot | 1.12.24.3 MB | — |
Reviews
Be the first to rate AutoUpdatePlugins




