SimpleDownload - The Ultimate Server-Side Mod Manager for Minecraft 🛠️
By SnowFinch-Loran | GitHub Repository
🌟 Introduction
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!
🔧 Requirements
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).
🚀 Features Breakdown
1️⃣ Mod Distribution Made Easy
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" } }
2️⃣ In-Game Commands for Mod Management
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 |
3️⃣ Security & Anti-Abuse
-
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).
4️⃣ Configuration File
Mod URLs and settings are stored in mods/SDSetup/Settings.json:
{ "urls": { "1": "https://example.com/mod1.jar" }, "settings": { "logConnections": true, "logBans": true } }
🛠️ How to Use
Step 1: Installation
-
Download the mod from files or from here.
-
Place it in your server’s
modsfolder. -
Start the server—the HTTP service will launch automatically on port 8000.
Step 2: Adding Mods
-
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!
Step 3: Managing Logs & Security
-
Disable connection logs:
/durl clo Disable -
View ban logs: Check server console for
[Simpledownload][Security]messages.
📜 Command Outputs Explained
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.
🔍 Behind the Scenes
How It Works
-
HTTP Server: Built using
com.sun.net.httpserver, it listens for/getDurlDatarequests. -
IP Tracking: The
GetDurlDataHandlerclass enforces rate limits usingConcurrentHashMap. -
Commands: Leverage Minecraft’s
Brigadiersystem for rich in-game control.
Key Classes
-
Simpledownload.java: Main mod class; starts the HTTP server and registers commands. -
GetDurlDataHandler.java: Handles client requests, IP blocking, and JSON responses.
❓ FAQ
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.*
🎯 Future Plans
-
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.
🙌 Final Thoughts
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 😎)