# Minecraft Launcher Reference These are client-side Minecraft launchers that have excellent modpack installation workflows. Stronghold should aim to make server modpack installation as easy as these launchers make client installation. ## ATLauncher **GitHub**: https://github.com/ATLauncher/ATLauncher **Website**: https://atlauncher.com ### Overview Minecraft launcher focused on modpack installation and management. Known for making modpack installation simple and user-friendly. ### Key Features - **Modpack Browser**: Browse and search modpacks from various sources - **One-Click Installation**: Install modpacks with minimal configuration - **Instance Management**: Create multiple Minecraft instances with different modpacks - **Modpack Updates**: Easy updating of installed modpacks - **Server Pack Generation**: Can generate server packs from modpacks - **Integration with Modpack Platforms**: - CurseForge - Modrinth - FTB (Feed The Beast) - **Version Management**: Manage Minecraft and mod versions - **Mod Management**: View, enable, disable individual mods - **Configuration**: Edit modpack configurations easily ### User Experience Highlights - Simple, clean interface - Clear categorization of modpacks - Detailed modpack information before installation - Progress indicators during installation - Pre-configured settings that "just work" - Easy troubleshooting ### Lessons for Stronghold **This is a KEY reference** - the goal is to make modded server creation as simple as ATLauncher makes modpack installation. Stronghold should: 1. **Modpack Browser**: Provide UI to browse/search modpacks 2. **One-Click Server Creation**: Create modded server from modpack in one click 3. **Server Pack Handling**: Automatically detect and install server packs 4. **Configuration Simplification**: Hide complexity, provide good defaults 5. **Mod Management**: Allow viewing/managing mods in installed servers 6. **Update Management**: Easy way to update modpacks **Key Insight**: The magic of ATLauncher is that it handles all the complexity (downloading, dependency resolution, configuration, version matching) behind the scenes. Stronghold needs to do the same for servers. --- ## Prism Launcher **GitHub**: https://github.com/PrismLauncher/PrismLauncher **Website**: https://prismlauncher.org ### Overview Fork of MultiMC, focused on modpack management. Open source and community-driven. ### Key Features - **Multi-Platform**: Windows, macOS, Linux - **Modpack Support**: - Modrinth integration - CurseForge integration - FTB integration - Technic Platform support - **Instance Management**: Multiple instances with isolated configurations - **Mod Management**: Individual mod installation, removal, updates - **Version Control**: Git integration for instance management - **Metadata Management**: Rich metadata for modpacks and mods - **Customization**: Highly customizable interface and workflows ### Technology Stack - C++/Qt for desktop application - Various APIs for modpack platforms ### Lessons for Stronghold - **Modrinth/CurseForge APIs**: Need to integrate with these platforms - **Metadata Handling**: Rich metadata helps users make informed choices - **Version Management**: Proper version handling is critical - **Instance Isolation**: Each server should be isolated (Docker helps here) ### API Integration Notes Both ATLauncher and Prism Launcher integrate with: - **Modrinth API**: Modern modpack/mod platform - **CurseForge API**: Legacy but still popular platform - **FTB API**: Feed The Beast modpacks Stronghold will need to: 1. Integrate with these APIs for modpack discovery 2. Handle server pack downloads from these platforms 3. Parse modpack metadata (version, dependencies, server pack info) 4. Manage modpack installation in Docker containers --- ## Key Takeaways for Stronghold ### The ATLauncher Experience, But for Servers When a user wants to create a modded server, the flow should be: 1. **Browse Modpacks**: Search/browse available modpacks (like ATLauncher) 2. **Select Modpack**: Click on a modpack to see details 3. **Create Server**: One click to create server from modpack 4. **Automatic Setup**: Stronghold handles: - Downloading server pack - Setting up Docker container with correct server type (FORGE/FABRIC) - Installing mods - Configuring environment variables - Setting up volumes - Starting server 5. **Ready to Play**: Server is ready, user can customize further if needed ### Technical Requirements 1. **Modpack Platform Integration**: - Modrinth API client - CurseForge API client - FTB API (if needed) 2. **Modpack Processing**: - Parse modpack manifest files - Download modpack files - Extract server packs - Handle mod dependencies - Version resolution 3. **Docker Integration**: - Detect server type (FORGE/FABRIC) from modpack - Set appropriate `TYPE` environment variable - Configure modpack installation - Set up proper Java versions - Allocate appropriate memory 4. **UI Components**: - Modpack browser/search - Modpack detail view - Installation progress - Mod management UI - Server configuration tied to modpack ### Simplification Goals **From User Perspective:** - Before: User needs to know about modpack formats, server packs, FORGE vs FABRIC, Java versions, memory allocation, Docker, etc. - After: User finds modpack, clicks "Create Server", server is ready **Implementation Complexity:** - Handle all the technical details internally - Provide smart defaults - Allow customization but don't require it - Good error messages if something goes wrong ### Implementation Phases **Phase 1: Basic Modpack Support** - Manual modpack URL/ID input - Support for Modrinth server packs - Basic installation **Phase 2: Modpack Browser** - Integrate Modrinth API - Browse/search modpacks - Server pack detection and installation **Phase 3: Enhanced Features** - CurseForge integration - Modpack updates - Mod management UI - Advanced configuration options --- ## Related Tools ### Server Pack Generators Some modpacks come with server pack generators. Stronghold should: - Detect if server pack is available - Download server pack automatically - Use itzg container's built-in modpack support when possible - Handle cases where manual setup is needed ### itzg Container Modpack Support The itzg/docker-minecraft-server container has extensive built-in modpack support ([Documentation](https://docker-minecraft-server.readthedocs.io/en/latest/mods-and-plugins/)): **Modpack Platforms**: - Modrinth (auto-download) - CurseForge (auto-download) - Feed the Beast (FTB) - Packwiz format **Installation Methods**: - `MODPACK` environment variable: Simple zip file or modpack ID - `GENERIC_PACK` / `GENERIC_PACKS`: Install complete server content from archives - Individual mods via `MODS` / `PLUGINS` environment variables - File-based lists via `MODS_FILE` / `PLUGINS_FILE` **Advanced Features**: - Volume mounts for mods/plugins/configs (`/mods`, `/plugins`, `/config`) - Auto-removal of mods/plugins - Environment variable substitution in configs - Multiple source directories - Disable specific mods **Key Insight**: The container handles much of the complexity internally. Stronghold's role is to: 1. Provide UI for modpack selection/browsing 2. Detect modpack platform and server type automatically 3. Generate appropriate environment variables 4. Handle the container creation with proper configuration 5. Manage modpack updates and mod additions/removals Stronghold should leverage this built-in support heavily to simplify implementation - we don't need to reimplement modpack processing, just orchestrate it via the container's environment variables.