Compatibility
Minecraft: Java Edition
1.21.x
Platforms
Links
Tags
Creators
Details
Licensed MIT
Published 4 days ago
๐ฅ URLDrop
In-game async download manager for Servers
Download large files directly to your server via URL โ without touching the console.
โจ What is URLDrop?
URLDrop is an admin-focused plugin that turns your Minecraft server into a download station.
Instead of SSH-ing into your machine to wget a backup or a world archive, you open a
chest GUI in-game, paste a URL, choose a destination, and let the server do the rest.
Perfect for:
- ๐ฆ Downloading server backups from remote storage
- ๐ Pulling world archives or data packs
- ๐ Staging plugin updates without leaving the game
- ๐ Migrating large files between servers via URL
๐ฅ๏ธ GUI Overview
Open with /urldrop or /ud:
| Screen | Description |
|---|---|
| Main Menu | Hub for all actions |
| New Download | 5-step wizard: URL โ path โ filename โ checksum โ confirm |
| Active Downloads | Live progress bars, speed, ETA, cancel button |
| Queue | Reorder, start-now, or remove pending jobs |
| History | Re-download or purge completed entries |
| Settings | Toggle runtime options without reloading |
โก Features
Downloads
- โ Async downloads on Java 21 virtual threads โ zero main-thread blocking
- โ HTTP streaming directly to disk โ no RAM spike for large files
- โ HTTP Range resume โ picks up where it left off if interrupted
- โ Configurable retry with exponential back-off
- โ Automatic progress tracking (speed, ETA, % complete)
- โ
Auto-unzip
.ziparchives after download - โ Backup existing files before overwrite (with retention limit)
Security
- ๐ Path traversal prevention (
..blocked before and after normalization) - ๐ URL validation โ
http/httpsonly, optional domain whitelist/blacklist - ๐ Blocked file extensions / content-type filtering
- ๐ Optional SHA-256 checksum verification before file is placed
- ๐ Downloads stage to a temp file first, then atomically move to destination
- ๐ File size hard cap (default 2 GB)
Destinations
- ๐ Any path the server process can reach (relative or absolute)
- ๐ Works with Pterodactyl (
/home/container/...) - ๐ Configurable path aliases (e.g. type
backupโ resolves tobackups/)
Notifications
- ๐ฌ Clickable in-game Adventure messages with
[Retry]/[History]buttons - ๐ Operator join reminders for downloads that finished while you were offline
- ๐ฃ Discord webhook support with rich embeds
Commands
/ud Open GUI
/ud download <url> <path> Start immediately
/ud queue <url> <path> Add to queue
/ud status [id] Show progress
/ud cancel <id> Cancel
/ud retry <id> Retry failed download
/ud history Recent history in chat
/ud debug <id> Full diagnostics
/ud reload Reload config
โ๏ธ Configuration
Four config files are generated on first run:
| File | Purpose |
|---|---|
config.yml |
Limits, timeouts, retry, security, notifications |
messages.yml |
All messages (MiniMessage format โ fully customisable) |
paths.yml |
Aliases, sensitive paths, blocked fragments |
webhook.yml |
Discord webhook URL and event toggles |
Quick example โ config.yml
max-simultaneous-downloads: 3
max-file-size-mb: 2048
allow-resume: true
auto-unzip: false
require-checksum-for-sensitive-paths: false
operator-notify-on-complete: true
Quick example โ paths.yml aliases
aliases:
backup: "backups"
update: "plugins/update"
home: "/home/container"
๐ Permissions
| Permission | Description |
|---|---|
urldrop.admin |
All permissions |
urldrop.open |
Open the GUI |
urldrop.download |
Start downloads |
urldrop.queue |
Queue downloads |
urldrop.cancel |
Cancel downloads |
urldrop.history |
View history |
urldrop.settings |
Toggle settings |
urldrop.reload |
Reload config |
urldrop.debug |
View diagnostics |
All permissions default to operator only.
๐ Requirements
| Requirement | Version |
|---|---|
| Server | Paper 1.21.x |
| Java | 21+ |
No other plugins required. Gson is bundled inside the JAR.


