AutoUpdatePlugins icon

AutoUpdatePlugins -----

AutoUpdatePlugins for Velocity/Spigot/Bungeecord automates the updating process for any plugin




AutoUpdatePlugins v12.0.0

[​IMG]
[​IMG]
[​IMG]
[​IMG]
[​IMG]

Keep your server’s plugins up-to-date — automatically, safely, and across platforms.

TL;DR
Drop the jar into plugins/ → list the plugins you want → it finds, downloads, validates, and stages updates from many sources — scheduled, parallel, and async.

LATEST BUILDS AND INFO/GUIDE ON GITHUB NewAmazingPVP/AutoUpdatePlugins: Automatically update any spigot/folia/bungeecord/velocity plugin you wish!

Highlights
  • One list, many sources. GitHub (Releases/Actions), Jenkins, SpigotMC (Spiget), dev.bukkit, Modrinth, Hangar, BusyBiscuit, blob.build, Guizhanss v2, MineBBS, CurseForge, or any direct .jar link.
  • Smart selectors. Use ?get=<regex>, [N] to pick the N-th asset, ?prerelease=true, ?autobuild=true.
  • Auto-evolving config. New options auto-added without clobbering your comments.
  • HTTP flexibility. Custom headers, rotating User-Agents, proxies supported.
  • Performance built-in. Async downloads, connection pooling, parallel downloads, retries & backoff. Uses Java11+ HTTP/2 and Java21+ virtual threads when available.
  • Flexible scheduling. interval + boot delay or cron with timezone.
  • Cross-platform. Spigot, Paper, Folia, Velocity, BungeeCord.
  • Safe updates. Download → validate → atomic replace (staging via temp/update paths).
  • Integrity & dedupe. Optional zip checks and MD5 skip for unchanged files.
Supported Sources & Platforms

Download Sources
  • GitHub — Releases & Actions. Supports [N], ?get=regex, ?prerelease=true, ?autobuild=true
  • Jenkins — Latest build artifacts. Supports [N], ?get=regex
  • SpigotMC (Spiget) — Resource page URL (auto-resolves latest)
  • dev.bukkit — Project page (auto-resolves latest)
  • Modrinth — Project/version URL. Supports ?get=regex
  • Hangar, BusyBiscuit, blob.build, Guizhanss v2, MineBBS — index/resource pages
  • CurseForge — Project/files with ?get=regex
  • Generic — Direct .jar link (exact file URL)

Platforms: Spigot, Paper, Folia, Velocity, BungeeCord
Minecraft: 1.8 → Latest
Java: 8+ (features auto-used on 11+ / 21+)

Requirements
  • Java 8 or newer. (Uses Java 11+ HTTP/2 client and 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 Resource
  • Place the jar into your server’s
    Code (Text):
    plugins/
    directory.
  • Start the server to generate default config files.
  • Edit
    Code (Text):
    plugins/AutoUpdatePlugins/config.yml
    and
    Code (Text):
    plugins/AutoUpdatePlugins/list.yml
    .
  • Run
    Code (Text):
    /update
    or
    Code (Text):
    /aup update
    (or restart) to start the first check.
Quick Start
  • Add entries to
    Code (Text):
    list.yml
    :
    Code (Text):

    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
    Code (Text):
    updates.interval
    default (120 minutes) or set cron.
  • Optional: Add a GitHub token to avoid rate limits in
    Code (Text):
    config.yml
    .
  • Trigger run with:
    Code (Text):

    /update
     
  • Updated jars are staged atomically. Restart the server to load them.
Configuration

config.yml (full schema with defaults)
Code (Text):

################################################################################
# AutoUpdatePlugins — Main Configuration
################################################################################

updates:
  interval: 120        # minutes
  bootTime: 50         # seconds
  schedule:
    cron: ""           # cron expression (UNIX 5-field). Leave blank to disable.
    timezone: "UTC"    # timezone for cron (e.g. "America/New_York")
  key:                  # optional GitHub PAT

http:
  userAgent: ""
  headers: []
  sslVerify: true
  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:
  type: "NONE"   # HTTP | SOCKS | NONE
  host: "proxy.example"
  port: 8080

behavior:
  useUpdateFolder: true
  zipFileCheck: true
  ignoreDuplicates: true
  allowPreRelease: false
  autoCompile:
    enable: false
    whenNoJarAsset: false
    branchNewerMonths: 6
  debug: false

paths:
  tempPath: ''
  updatePath: ''
  filePath: ''

performance:
  maxParallel: 4
  connectTimeoutMs: 10000
  readTimeoutMs: 30000
  perDownloadTimeoutSec: 0
  maxRetries: 3
  backoffBaseMs: 500
  backoffMaxMs: 5000
  maxPerHost: 3
 
Key options explained
  • updates.schedule.cron + timezone — cron overrides interval/bootTime.
  • updates.key — GitHub PAT for Releases/Actions access (public_repo scope is usually enough).
  • http.userAgents — rotate UAs to avoid server-side blocks.
  • proxy — supports HTTP/SOCKS proxies.
  • behavior.autoCompile — build from GitHub source if needed (Gradle/Maven required).
  • behavior.zipFileCheck — verify downloaded jars/zips before install.
  • behavior.ignoreDuplicates — skip replacements when MD5 matches.
  • behavior.useUpdateFolder — stage jars in update/ for atomic replace.
  • performance — tune for your server and Java version.

list.yml (example)
Code (Text):

# A list of plugins to update.
# Format: <plugin-name>: <download-url>

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]
Worldedit: https://dev.bukkit.org/projects/worldedit
Worldguard: https://dev.bukkit.org/projects/worldguard
ViaRewindLegacySupport: https://ci.viaversion.com/view/ViaRewind/job/ViaRewind%20Legacy%20Support/
Troll: https://dev.bukkit.org/projects/troll-extreme
AntiPopup: "https://github.com/KaspianDev/AntiPopup"
ChatColor: "https://www.spigotmc.org/resources/chatcolor.22692/"
Chunky: "https://www.spigotmc.org/resources/chunky.81534/"
CoreProtect: "https://github.com/PlayPro/CoreProtect"
EssentialsX: "https://ci.ender.zone/job/EssentialsX/"
EssentialsXChat: "https://ci.ender.zone/job/EssentialsX/[3]"
EssentialsXSpawn: "https://ci.ender.zone/job/EssentialsX/[8]"
ForceXaeroFairPlay: "https://www.spigotmc.org/resources/forcexaerofairplay.121907/"
Floodgate: "https://download.geysermc.org/v2/projects/floodgate/versions/latest/builds/latest/downloads/spigot"
Geyser: "https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/spigot"
InventoryRollbackPlus: "https://modrinth.com/plugin/inventoryrollbackplus"
LightningGrim: "https://modrinth.com/plugin/lightning-grim-anticheat"
LuckPerms: "https://ci.lucko.me/job/LuckPerms/"
PacketEvents: "https://www.spigotmc.org/resources/packetevents-api.80279/"
PlaceholderAPI: "https://ci.extendedclip.com/job/PlaceholderAPI/[3]"
PlayerStats: "https://www.spigotmc.org/resources/playerstats.102347/"
PlugmanX: "https://github.com/Test-Account666/PlugManX"
ServerBackup: "https://github.com/SF-Sudio/ServerBackup"
ServerListPlus: "https://ci.codemc.org/job/Minecrell/job/ServerListPlus/[3]"
SkinsRestorer: "https://github.com/SkinsRestorer/SkinsRestorer/[3]"
TAB: "https://github.com/NEZNAMY/TAB"
Tebex: "https://github.com/tebexio/Tebex-Minecraft"
Themis: "https://www.spigotmc.org/resources/themis-anti-cheat-1-17-1-21-bedrock-support-paper-compatibility-free-optimized.90766/"
UnlimitedNameTags: "https://github.com/alexdev03/UnlimitedNametags"
ViaRewind: "https://ci.viaversion.com/view/ViaRewind/job/ViaRewind/"
ViaVersion: "https://ci.viaversion.com/job/ViaVersion/"
Vault: "https://www.spigotmc.org/resources/vault.34315/"
VoiceChat: "https://modrinth.com/plugin/simple-voice-chat"
CombatLogX: https://www.spigotmc.org/resources/combatlogx.31689/
AuthMeReloaded: https://ci.codemc.io/job/AuthMe/job/AuthMeReloaded/[4]
BlueSlimeCore: https://www.spigotmc.org/resources/blueslimecore.83189/
Chunky: https://www.spigotmc.org/resources/chunky.81534/
ChunkyBorder: https://www.spigotmc.org/resources/chunkyborder.84278/
DiscordSRV: https://get.discordsrv.com/
Dynmap: https://dev.bukkit.org/projects/dynmap
EasyPrefix: https://www.spigotmc.org/resources/easyprefix-gui-custom-prefixes-sql-support.44580/
EssentialsX: https://github.com/EssentialsX/Essentials
EssentialsXChat: https://github.com/EssentialsX/Essentials[3]
FAWE: https://ci.athion.net/job/FastAsyncWorldEdit/
Floodgate: https://download.geysermc.org/v2/projects/floodgate/versions/latest/builds/latest/downloads/spigot
Geyser-spigot: https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/spigot
lssmp: https://www.spigotmc.org/resources/lifesteal-smp-plugin.94387/
LuckPerms: https://www.spigotmc.org/resources/luckperms.28140/
PlaceholderAPI: https://www.spigotmc.org/resources/placeholderapi.6245/
PlayerStats: https://www.spigotmc.org/resources/playerstats.102347/
ProtocolLib: https://github.com/dmulloy2/ProtocolLib
SkinsRestorer: https://ci.codemc.io/job/SkinsRestorer/job/SkinsRestorer/
TAB: https://github.com/NEZNAMY/TAB
ViewDistanceTweaks: https://www.spigotmc.org/resources/view-distance-tweaks.75164/
Voicemod: https://modrinth.com/plugin/simple-voice-chat/
ViaVersion-Dev: https://ci.viaversion.com/job/ViaVersion-DEV/
ViaBackwards: https://hangar.papermc.io/ViaVersion/ViaBackwards
ViewDistanceTweaks: https://ci.froobworld.com/job/ViewDistanceTweaks/
"
 
Selectors you can use
  • [N] — pick the N-th jar asset (1-indexed) from a release or build.
  • ?get=&lt;regex&gt; — match filenames (escape dots: `\\.jar`).
  • ?prerelease=true — allow pre-releases.
  • ?autobuild=true — force source build on GitHub.
Scheduling Cheat Sheet
Examples (America/New_York):
  • Every 2 hours: `0 */2 * * *`
  • Every day at 05:00: `0 5 * * *`
  • Mon & Thu at 03:30: `30 3 * * 1,4`
  • Every 15 minutes: `*/15 * * * *`
If cron empty → uses interval (minutes) with bootTime (seconds) delay.

Performance Tuning Guide
  • Java 21+: raise `performance.maxParallel` (8–16) for many small artifacts (virtual threads).
  • Java 11+: tune `maxPerHost` for origins hosting many jars.
  • Java 8: increase `readTimeoutMs` for large downloads and lower `maxParallel` if network-saturated.
  • Retries: plugin retries `maxRetries` times with exponential backoff (`backoffBaseMs` → `backoffMaxMs`).
  • Set `perDownloadTimeoutSec` to protect against stuck transfers (0 disables).
  • Place `tempPath`/`updatePath` on fast local storage if possible.
Commands & Permissions
Commands
  • Code (Text):
    /update
    — Trigger update run.
  • Code (Text):
    /aup download [names...]
    — Update all or named plugins.
  • Code (Text):
    /aup update [names...]
    — Alias of download.
  • Code (Text):
    /aup stop
    — Request stop of current update process.
  • Code (Text):
    /aup reload
    — Reload config.
  • Code (Text):
    /aup add <name> <link>
    — Add entry to list.yml.
  • Code (Text):
    /aup remove <name>
    — Remove entry.
  • Code (Text):
    /aup list [page]
    — View configured list.
  • Code (Text):
    /aup debug <on|off|toggle|status>
    — Verbose logging.
  • Code (Text):
    /aup enable|disable <name>
    — Toggle an entry.

Permissions
  • autoupdateplugins.update — Allows `/update`
  • autoupdateplugins.manage — Allows `/aup ...` commands
How It Works (Under the Hood)
  • Discovery — Detect provider for each list.yml entry and compute latest matching artifact using selectors.
  • Download (async) — Pooled connections; HTTP/2 on Java11+; virtual threads on Java21+ when available.
  • Validation — Optional zip integrity checks and duplicate detection (name + size or MD5).
  • Staging & Atomic Replace — Write to temp, then move atomically into update/plugins target.
  • Repeat — According to interval/cron with retries/backoff for transient failures.
Examples for Every Source
Code (Text):

# GitHub Releases (2nd asset, spigot-only)
MyPlugin: "https://github.com/Owner/MyPlugin[2]?get=.*spigot.*\\.jar"

# GitHub Actions (force build)
MyActionsPlugin: "https://github.com/Owner/MyActionsPlugin?autobuild=true"

# Jenkins
CoolThing: "https://ci.example.com/job/CoolThing/lastSuccessfulBuild/artifact/?get=.*-all\\.jar"
CoolThingAlt: "https://ci.example.com/job/CoolThing/lastSuccessfulBuild/artifact/[2]"

# SpigotMC
ViaVersion: "https://www.spigotmc.org/resources/viaversion.19254/"

# dev.bukkit
Vault: "https://dev.bukkit.org/projects/vault"

# Modrinth
Fancy: "https://modrinth.com/plugin/fancy?get=.*(paper|spigot).*\\.jar"

# Hangar
HangarThing: "https://hangar.papermc.io/Owner/Project?get=.*spigot.*\\.jar"

# CurseForge
CFThing: "https://www.curseforge.com/minecraft/bukkit-plugins/cfthing/files?get=.*release.*\\.jar"

# Direct jar
DirectJar: "https://downloads.example.com/plugins/DirectJar-1.2.3.jar"
 
Troubleshooting & FAQ
  • Q: Updates downloaded, but server didn’t change.
    A: Most servers load jars only at startup. Restart the server after a run.
  • Q: GitHub rate-limited / cannot access Actions artifacts.
    A: Add a GitHub PAT in `config.yml` → `updates.key`. Ensure token has read access for private repos.
  • Q: Wrong file selected.
    A: Use `?get=regex` or `[N]`. Escape dots in regex (e.g., `\\.jar`).
  • Q: Timeouts or slow downloads.
    A: Increase `readTimeoutMs`, decrease `maxParallel`, or set `perDownloadTimeoutSec` and tune `maxRetries`/backoff.
  • Q: Need pre-releases.
    A: Append `?prerelease=true` to the URL or set `behavior.allowPreRelease: true`.
  • Q: Behind a corporate proxy.
    A: Configure `proxy.type/host/port`. If proxy MITM TLS, add proxy CA to Java trust store.
  • Q: Build from source didn’t trigger.
    A: Ensure `behavior.autoCompile.enable: true`, use `?autobuild=true` or allow it when no jar asset exists. Server must have outbound network access.
Security Notes
  • Use least-privileged tokens. For GitHub, a PAT scoped only to required repos is best.
  • Treat third-party downloads as untrusted: keep `zipFileCheck: true`.
  • Pin sources with `?get=regex` to avoid accidental switches to incompatible artifacts.
Contributing, Issues & Support

Thanks for using AutoUpdatePlugins!


Support
Discord : https://discord.gg/u3u45vaV6G

Bstats

Bukkit
[​IMG]

Bungeecord
[​IMG]

Velocity
[​IMG]

Resource Information
Author:
----------
Total Downloads: 2,812
First Release: May 7, 2023
Last Update: Aug 31, 2025
Category: ---------------
All-Time Rating:
2 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings