By SnowFinch-Loran | GitHub Repository
Hey server admins and modpack creators! 👋 Tired of manually distributing mods to players or dealing with outdated client-side files? Meet SimpleDownload—a powerful server-side mod that works hand-in-hand with ModAutoDownload to automate mod distribution, enforce version control, and even protect your server from abuse!
Currently optimized for Minecraft 1.16.5 Forge, this mod is designed to:
✅ Host and distribute mods via a simple HTTP endpoint (/getDurlData).
✅ Manage mod lists dynamically with in-game commands.
✅ Protect against abuse with IP rate-limiting and auto-banning.
✅ Log connections and bans for security monitoring.
✅ Sync mods effortlessly—players using ModAutoDownload will always have the right files!
Future plans include support for 1.12.X, 1.14.X, 1.18.X, 1.20.X, and 1.21.X, plus Fabric compatibility!
Before installing, ensure your server has:
Minecraft 1.16.5 Forge (for now).
Java 8+ (required for the embedded HTTP server).
Clients using ModAutoDownload (optional but recommended for auto-syncing).
SimpleDownload hosts a lightweight HTTP server (port 8000) that serves a JSON list of mod URLs. Clients (like ModAutoDownload) fetch this list to download missing/updated mods automatically.
Endpoint: http://yourserver:8000/getDurlData
Response Format:
{ "urls": { "1": "https://example.com/mod1.jar", "2": "https://example.com/mod2.jar" } }
Admins can manage the mod list without restarting the server using the /durl command:
| Command | Description | Example |
|---|---|---|
/durl file |
Opens the Settings.json config file. |
/durl file |
/durl add <number> <url> |
Adds a mod URL to the list. | /durl add 1 https://example.com/mod.jar |
/durl delete <number> |
Removes a mod by its ID. | /durl delete 1 |
/durl list |
Lists all registered mod URLs. | /durl list |
/durl clear |
Clears the entire mod list. | /durl clear |
/durl clo Enable/Disable |
Toggles connection logging. | /durl clo Disable |
/durl banlog Enable/Disable |
Toggles ban logging. | /durl banlog Enable |
Rate Limiting: Blocks IPs exceeding 100 requests/minute.
Temporary Bans: Banned IPs are blocked for 30 minutes.
Logging: Tracks connections and bans (configurable via commands).
Mod URLs and settings are stored in mods/SDSetup/Settings.json:
{ "urls": { "1": "https://example.com/mod1.jar" }, "settings": { "logConnections": true, "logBans": true } }
Download the mod from files or from here.
Place it in your server’s mods folder.
Start the server—the HTTP service will launch automatically on port 8000.
Use /durl add <number> <url> to register mods.
Example:
/durl add 1 https://cdn.modrinth.com/awesome-mod.jar
Players with ModAutoDownload will now fetch these mods automatically!
Disable connection logs: /durl clo Disable
View ban logs: Check server console for [Simpledownload][Security] messages.
SimpleDownload uses a color-coded tag system in its logs and command feedback:
| Tag | Meaning | Example |
|---|---|---|
[Event] |
Server lifecycle events (e.g., startup). | [Simpledownload][Event] Server started on port 8000 |
[CMD] |
Command execution feedback. | [Simpledownload][CMD] URL added for table 1 |
[Query] |
Status checks (e.g., logging toggles). | [Simpledownload][Query] Connection logging is Enabled |
[Security] |
IP bans/rate-limiting alerts. | [Simpledownload][Security] IP blocked: 192.168.1.1 |
[Error] |
Critical failures. | [Simpledownload][Error] Failed to load settings! |
Colors:
Green: Success.
Red: Errors/warnings.
Blue: Informational.
Yellow: Neutral status.
HTTP Server: Built using com.sun.net.httpserver, it listens for /getDurlData requests.
IP Tracking: The GetDurlDataHandler class enforces rate limits using ConcurrentHashMap.
Commands: Leverage Minecraft’s Brigadier system for rich in-game control.
Simpledownload.java: Main mod class; starts the HTTP server and registers commands.
GetDurlDataHandler.java: Handles client requests, IP blocking, and JSON responses.
Q: Can I change the HTTP port?
A: Not yet—currently hardcoded to 8000. Future updates may add configs!
Q: How do I unban an IP?
A: Restart the server or wait 30 minutes (bans are temporary).
Q: Can clients download mods without ModAutoDownload?
A: Yes! They can manually fetch http://yourserver:8000/getDurlData and download the files.
Q: Why is my IP blocked?
A: You exceeded 100 requests/minute. Reduce polling frequency in ModAutoDownload.*
Multi-Version Support: 1.12.2 → 1.21.X.
Fabric Compatibility: Because Forge isn’t the only option!
Port Configuration: Let admins choose the HTTP port.
GeoIP Integration: Better location tracking for logs.
SimpleDownload saves hours of manual mod management and ensures players always have the right files. Pair it with ModAutoDownload for a seamless experience!
Star the GitHub repo to support development, and suggest features via issues!
Happy hosting! 🚀
📜 License: MIT
🐦 Follow Me: SnowFinch-Loran on GitHub
Last Updated : 2025 (because future-proofing is cool 😎)