aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/packages/docs/content/en/features
diff options
context:
space:
mode:
authorNtskwK <natsukawa247@outlook.com>2026-02-28 09:03:19 +0800
committerNtskwK <natsukawa247@outlook.com>2026-02-28 09:03:19 +0800
commitcc53b1cf260e1c67939e50608ef18764da616d55 (patch)
tree119109c62331d4d26612e2df7726cee82d1871f5 /packages/docs/content/en/features
parentee37d044e473217daadd9ce26c7e2e2ad39a0490 (diff)
parent81a62402ef6f8900ff092366121a9b7a4263ba52 (diff)
downloadDropOut-cc53b1cf260e1c67939e50608ef18764da616d55.tar.gz
DropOut-cc53b1cf260e1c67939e50608ef18764da616d55.zip
Merge remote-tracking branch 'upstream/main'
Diffstat (limited to 'packages/docs/content/en/features')
-rw-r--r--packages/docs/content/en/features/authentication.mdx266
-rw-r--r--packages/docs/content/en/features/index.mdx176
-rw-r--r--packages/docs/content/en/features/java.mdx394
-rw-r--r--packages/docs/content/en/features/meta.json9
-rw-r--r--packages/docs/content/en/features/mod-loaders.mdx409
5 files changed, 0 insertions, 1254 deletions
diff --git a/packages/docs/content/en/features/authentication.mdx b/packages/docs/content/en/features/authentication.mdx
deleted file mode 100644
index b6fc4ba..0000000
--- a/packages/docs/content/en/features/authentication.mdx
+++ /dev/null
@@ -1,266 +0,0 @@
----
-title: Authentication
-description: Microsoft OAuth and offline authentication in DropOut
----
-
-# Authentication
-
-DropOut supports two authentication methods: Microsoft Account (for official Minecraft) and Offline Mode (for testing and offline play).
-
-## Microsoft Authentication
-
-### Overview
-
-DropOut uses the **Device Code Flow** for Microsoft authentication, which:
-- Doesn't require a redirect URL (no browser integration)
-- Works on any device with a browser
-- Provides a simple code-based authentication
-- Fully compliant with Microsoft OAuth 2.0
-
-### Authentication Process
-
-The authentication chain consists of multiple steps:
-
-1. **Device Code** → User authorization
-2. **MS Token** → Access + refresh tokens
-3. **Xbox Live** → Xbox token + UHS
-4. **XSTS** → Security token
-5. **Minecraft** → Game access token
-6. **Profile** → Username + UUID
-
-#### Step 1: Device Code Request
-1. Click "Login with Microsoft"
-2. DropOut requests a device code from Microsoft
-3. You receive:
- - User code (e.g., `A1B2-C3D4`)
- - Verification URL (usually `https://microsoft.com/link`)
- - Device code (used internally)
-
-#### Step 2: User Authorization
-1. Visit the verification URL in any browser
-2. Enter the user code
-3. Sign in with your Microsoft account
-4. Authorize DropOut to access your Minecraft profile
-
-#### Step 3: Token Exchange
-- DropOut polls Microsoft for authorization completion
-- Once authorized, receives an access token and refresh token
-- Refresh token is stored for future logins
-
-#### Step 4: Xbox Live Authentication
-- Microsoft token is exchanged for Xbox Live token
-- Retrieves User Hash (UHS) for next step
-
-#### Step 5: XSTS Authorization
-- Xbox Live token is used to get XSTS token
-- This token is specific to Minecraft services
-
-#### Step 6: Minecraft Login
-- XSTS token is exchanged for Minecraft access token
-- Uses endpoint: `/launcher/login`
-
-#### Step 7: Profile Fetching
-- Retrieves your Minecraft username
-- Fetches your UUID
-- Checks if you own Minecraft
-
-### Token Management
-
-**Access Token:**
-- Short-lived (typically 1 hour)
-- Used for game authentication
-- Automatically refreshed when expired
-
-**Refresh Token:**
-- Long-lived (typically 90 days)
-- Stored securely in `accounts.json`
-- Used to obtain new access tokens
-
-**Auto-refresh:**
-```rust
-// Automatic refresh when token expires
-if account.expires_at < current_time {
- refresh_full_auth(&account).await?;
-}
-```
-
-### Security Considerations
-
-- Tokens are stored in platform-specific app data directory
-- HTTPS only for all API calls
-- No credentials stored (only tokens)
-- User-Agent header required (bypasses MS WAF)
-
-### Troubleshooting Microsoft Login
-
-**"Device code expired"**
-- Codes expire after 15 minutes
-- Start the login process again
-
-**"Authorization pending"**
-- Normal during the waiting phase
-- Complete authorization in the browser
-
-**"Invalid token"**
-- Token may have expired
-- Log out and log back in
-
-**"You don't own Minecraft"**
-- Verify your Microsoft account owns Minecraft Java Edition
-- Check at https://www.minecraft.net/profile
-
-## Offline Authentication
-
-### Overview
-
-Offline mode creates a local account that doesn't require internet connectivity or a Microsoft account. This is useful for:
-- Testing and development
-- Playing without internet
-- LAN multiplayer
-- Mod development
-
-### Creating an Offline Account
-
-1. Click "Offline Mode" in the login screen
-2. Enter a username (3-16 characters)
-3. Click "Create Account"
-
-### How It Works
-
-**UUID Generation:**
-```rust
-// Deterministic UUID v3 from username
-let uuid = generate_offline_uuid(&username);
-```
-
-- Uses UUID v3 (namespace-based)
-- Deterministic: same username = same UUID
-- No network requests
-
-**Authentication:**
-- Returns `"null"` as access token
-- Minecraft accepts null token in offline mode
-- Username and UUID stored locally
-
-### Limitations
-
-- Cannot join online servers
-- No skin support
-- No cape support
-- No Microsoft account features
-
-### Use Cases
-
-**Development:**
-```bash
-# Testing mod development
-cargo tauri dev
-# Use offline mode to test quickly
-```
-
-**LAN Play:**
-- Join LAN worlds without authentication
-- Host LAN worlds
-
-**Offline Play:**
-- Singleplayer without internet
-- No authentication required
-
-## Account Management
-
-### Switching Accounts
-
-Currently, DropOut supports one active account at a time. Multi-account support is planned.
-
-**To switch accounts:**
-1. Log out of current account
-2. Log in with new account
-
-### Account Storage
-
-Accounts are stored in `accounts.json`:
-
-```json
-{
- "current_account_id": "uuid-here",
- "accounts": [
- {
- "id": "uuid",
- "type": "Microsoft",
- "username": "PlayerName",
- "access_token": "...",
- "refresh_token": "...",
- "expires_at": 1234567890
- }
- ]
-}
-```
-
-### Deleting Accounts
-
-To remove an account:
-1. Open Settings
-2. Navigate to Accounts
-3. Click "Log Out"
-4. Or manually delete `accounts.json`
-
-## API Reference
-
-### Tauri Commands
-
-**Start Microsoft Login:**
-```typescript
-const { user_code, verification_uri } = await invoke('start_microsoft_login');
-```
-
-**Complete Microsoft Login:**
-```typescript
-const account = await invoke('complete_microsoft_login', { deviceCode });
-```
-
-**Offline Login:**
-```typescript
-const account = await invoke('offline_login', { username: 'Player' });
-```
-
-**Logout:**
-```typescript
-await invoke('logout');
-```
-
-**Get Current Account:**
-```typescript
-const account = await invoke('get_current_account');
-```
-
-### Events
-
-**Authentication Status:**
-```typescript
-listen('auth-status', (event) => {
- console.log(event.payload); // "logged_in" | "logged_out"
-});
-```
-
-## Best Practices
-
-### For Players
-
-1. **Use Microsoft Account** for official servers
-2. **Keep tokens secure** - don't share accounts.json
-3. **Refresh tokens regularly** by logging in
-4. **Use offline mode** only for testing
-
-### For Developers
-
-1. **Handle token expiration** gracefully
-2. **Implement retry logic** for network failures
-3. **Cache account data** to reduce API calls
-4. **Validate tokens** before game launch
-
-## Future Enhancements
-
-- **Multi-account support**: Switch between accounts easily
-- **Account profiles**: Save per-account settings
-- **Auto-login**: Remember last account
-- **Token encryption**: Enhanced security for stored tokens
diff --git a/packages/docs/content/en/features/index.mdx b/packages/docs/content/en/features/index.mdx
deleted file mode 100644
index 3a463d0..0000000
--- a/packages/docs/content/en/features/index.mdx
+++ /dev/null
@@ -1,176 +0,0 @@
----
-title: Features Overview
-description: Comprehensive guide to all DropOut features
----
-
-# Features Overview
-
-DropOut is packed with features designed for both casual players and power users. This guide covers all major capabilities.
-
-## Core Features
-
-<Cards>
- <Card
- title="Authentication"
- href="authentication"
- description="Microsoft OAuth and offline authentication"
- />
- <Card
- title="Java Management"
- href="java"
- description="Auto-detection and installation of Java runtimes"
- />
- <Card
- title="Mod Loaders"
- href="mod-loaders"
- description="Fabric and Forge support with easy installation"
- />
- <Card
- title="Instances"
- href="instances"
- description="Isolated game environments with independent configs"
- />
- <Card
- title="Downloads"
- href="downloads"
- description="Fast concurrent downloads with resume support"
- />
- <Card
- title="AI Assistant"
- href="assistant"
- description="Built-in AI helper for troubleshooting and guidance"
- />
-</Cards>
-
-## Quick Feature Matrix
-
-| Feature | Status | Description |
-|---------|--------|-------------|
-| Microsoft Authentication | Complete | OAuth 2.0 with device code flow |
-| Offline Authentication | Complete | Local accounts for offline play |
-| Token Auto-refresh | Complete | Automatic refresh of expired tokens |
-| Java Auto-detection | Complete | Scans system for Java installations |
-| Java Download | Complete | Download Adoptium JDK/JRE versions |
-| Fabric Support | Complete | Install and launch Fabric loader |
-| Forge Support | Complete | Install and launch Forge loader |
-| Instance System | Complete | Isolated game environments |
-| GitHub Integration | Complete | View releases and changelogs |
-| Concurrent Downloads | Complete | Multi-threaded asset downloads |
-| Resume Downloads | Complete | Resume interrupted downloads |
-| AI Assistant | Complete | Built-in troubleshooting helper |
-| Config Editor | Complete | JSON/TOML configuration editor |
-| Custom Resolution | Complete | Set game window dimensions |
-| Memory Allocation | Complete | Customize JVM memory settings |
-| Multi-account | In Progress | Switch between multiple accounts |
-| Mods Manager | Planned | Enable/disable mods in launcher |
-| Launcher Auto-update | Planned | Self-updating mechanism |
-| Custom Game Directory | Planned | Choose game files location |
-| Import Profiles | Planned | Import from MultiMC/Prism |
-
-## Performance Features
-
-### Concurrent Downloads
-- Configurable thread count (default: 10)
-- Parallel asset and library downloads
-- Progress tracking per file
-- ETA calculation
-
-### Resume Support
-- Interrupted downloads auto-resume
-- `.part` files track progress
-- Multi-segment downloads for large files
-- Metadata files for state tracking
-
-### Caching
-- Java catalog cached for 24 hours
-- Version manifests cached locally
-- Asset index caching
-- Library deduplication
-
-## User Interface Features
-
-### Modern Design
-- Dark mode enforced for eye comfort
-- Particle background effects
-- Clean, distraction-free layout
-- Responsive design
-
-### Real-time Feedback
-- Live download progress
-- Game console output
-- Log streaming
-- Toast notifications
-
-### Settings Management
-- Memory allocation slider
-- Resolution customization
-- Java path selection
-- Thread count configuration
-- Custom JVM arguments
-
-## Advanced Features
-
-### Version Inheritance
-Modded versions (Fabric/Forge) automatically inherit from parent vanilla versions:
-- Libraries merged from parent + mod loader
-- Arguments combined and deduplicated
-- Assets inherited from vanilla version
-
-### Native Library Extraction
-- Platform-specific native extraction
-- Automatic cleanup
-- Proper library path configuration
-
-### Rules Engine
-- OS-specific library filtering
-- Feature flag support
-- Architecture detection
-
-### Download Queue Persistence
-- Save incomplete downloads
-- Resume after launcher restart
-- Queue priority management
-
-## Developer Features
-
-### Config Editor
-Built-in JSON/TOML editor with:
-- Syntax highlighting
-- Validation
-- Quick access to all configs
-
-### Log Access
-- Real-time game logs
-- Launcher debug logs
-- Copy/export functionality
-
-### AI Assistant
-- Troubleshooting guidance
-- Error analysis
-- Configuration help
-- Documentation search
-
-## Coming Soon
-
-### Multi-account Management
-- Switch between accounts easily
-- Account profiles
-- Quick switching
-
-### Mods Manager
-- Browse and install mods
-- Enable/disable mods
-- Mod compatibility checking
-- Version management
-
-### Profile Import
-- Import from MultiMC
-- Import from Prism Launcher
-- Import from other launchers
-- Preserve settings and saves
-
-### Launcher Auto-update
-- Background update checks
-- One-click updates
-- Version history
-- Rollback support
diff --git a/packages/docs/content/en/features/java.mdx b/packages/docs/content/en/features/java.mdx
deleted file mode 100644
index 21b95a9..0000000
--- a/packages/docs/content/en/features/java.mdx
+++ /dev/null
@@ -1,394 +0,0 @@
----
-title: Java Management
-description: Automatic Java detection, download, and installation
----
-
-# Java Management
-
-DropOut provides comprehensive Java management, automatically detecting installed versions and downloading new ones as needed.
-
-## Auto-detection
-
-### System Scan
-
-DropOut scans multiple locations for Java installations:
-
-**Linux:**
-- `/usr/lib/jvm/`
-- `/usr/java/`
-- `$JAVA_HOME`
-- `PATH` environment variable
-
-**macOS:**
-- `/Library/Java/JavaVirtualMachines/`
-- `/System/Library/Java/JavaVirtualMachines/`
-- `$JAVA_HOME`
-- `PATH` environment variable
-
-**Windows:**
-- `C:\Program Files\Java\`
-- `C:\Program Files (x86)\Java\`
-- `%JAVA_HOME%`
-- `PATH` environment variable
-- Windows Registry
-
-### Version Detection
-
-For each Java installation found, DropOut:
-1. Runs `java -version` to get version info
-2. Parses major version (8, 11, 17, 21, etc.)
-3. Detects architecture (x64, ARM64)
-4. Identifies vendor (Oracle, Adoptium, etc.)
-
-### Results
-
-All detected Java installations appear in Settings → Java:
-- Version number
-- Installation path
-- Architecture
-- Current selection status
-
-## Java Download
-
-### Adoptium Integration
-
-DropOut integrates with the Eclipse Adoptium API to download high-quality, free JDK/JRE builds.
-
-**Supported Versions:**
-- Java 8 (LTS)
-- Java 11 (LTS)
-- Java 17 (LTS)
-- Java 21 (LTS)
-- Java 23+ (Latest)
-
-**Features:**
-- Automatic platform detection
-- Architecture-specific builds
-- JDK or JRE selection
-- Checksum verification
-
-### Download Process
-
-1. Navigate to Settings → Java
-2. Click "Download Java"
-3. Select version (e.g., Java 17)
-4. Choose JDK or JRE
-5. Click Download
-6. Wait for download and extraction
-
-**Progress Tracking:**
-- Real-time download speed
-- ETA calculation
-- Extraction progress
-- Installation confirmation
-
-### Catalog Management
-
-The Java catalog is cached for 24 hours to improve performance:
-
-```rust
-// Catalog structure
-{
- "versions": [
- {
- "version": "17.0.9+9",
- "major": 17,
- "url": "https://api.adoptium.net/...",
- "sha256": "...",
- "size": 123456789
- }
- ],
- "last_updated": 1234567890
-}
-```
-
-**Refresh:**
-- Automatic after 24 hours
-- Manual refresh in settings
-- Forced refresh on download failure
-
-## Installation
-
-### Download Directory
-
-Downloaded Java runtimes are installed to:
-
-```
-~/.local/share/com.dropout.launcher/java/ (Linux)
-~/Library/Application Support/com.dropout.launcher/java/ (macOS)
-%APPDATA%/com.dropout.launcher/java/ (Windows)
-```
-
-### Directory Structure
-
-```
-java/
-├── jdk-17.0.9+9/
-│ ├── bin/
-│ │ └── java (or java.exe)
-│ └── lib/
-├── jdk-21.0.1+12/
-│ ├── bin/
-│ └── lib/
-└── download_queue.json
-```
-
-### Extraction
-
-1. Download to `.part` file
-2. Verify checksum
-3. Extract archive:
- - `.tar.gz` on Linux/macOS
- - `.zip` on Windows
-4. Move to `java/<version>/` directory
-5. Set executable permissions (Unix)
-
-## Configuration
-
-### Memory Allocation
-
-Configure JVM memory in Settings:
-
-**Minimum Memory:**
-- Default: 1024 MB
-- Recommended: 2048 MB for vanilla
-- Recommended: 4096+ MB for modded
-
-**Maximum Memory:**
-- Default: 4096 MB
-- Adjust based on your system RAM
-- Leave 4GB for OS and other apps
-
-**Format:**
-```bash
--Xms1024M -Xmx4096M
-```
-
-### Custom JVM Arguments
-
-Add custom JVM arguments for advanced configuration:
-
-**Common Arguments:**
-```bash
-# Garbage collection
--XX:+UseG1GC
--XX:+UnlockExperimentalVMOptions
-
-# Performance
--XX:G1NewSizePercent=20
--XX:G1ReservePercent=20
--XX:MaxGCPauseMillis=50
-
-# Memory
--XX:G1HeapRegionSize=32M
-```
-
-### Java Path Selection
-
-**Auto-select:**
-- DropOut recommends the best Java version for each Minecraft version
-- Java 8 for Minecraft 1.12.2 and older
-- Java 17 for Minecraft 1.18-1.20.4
-- Java 21 for Minecraft 1.20.5+
-
-**Manual selection:**
-1. Go to Settings → Java
-2. Choose from detected installations
-3. Or specify custom path
-
-## Version Recommendations
-
-### Minecraft Version → Java Version
-
-| Minecraft Version | Recommended Java | Minimum Java |
-|-------------------|------------------|--------------|
-| 1.7.10 and older | Java 8 | Java 8 |
-| 1.8 - 1.12.2 | Java 8 | Java 8 |
-| 1.13 - 1.16.5 | Java 8 or 11 | Java 8 |
-| 1.17 - 1.17.1 | Java 16 | Java 16 |
-| 1.18 - 1.20.4 | Java 17 | Java 17 |
-| 1.20.5+ | Java 21 | Java 21 |
-
-### Modded Minecraft
-
-**Fabric:**
-- Usually matches vanilla requirements
-- Some mods may require newer Java
-
-**Forge:**
-- May require specific Java versions
-- Check mod loader documentation
-- Often requires exact version match
-
-## Troubleshooting
-
-### Java Not Detected
-
-**Issue:** Installed Java not showing up
-
-**Solutions:**
-1. Verify Java is in standard location
-2. Check `JAVA_HOME` environment variable
-3. Add Java `bin` directory to `PATH`
-4. Restart DropOut
-5. Manual path selection
-
-### Download Fails
-
-**Issue:** Java download doesn't complete
-
-**Solutions:**
-1. Check internet connection
-2. Verify disk space
-3. Try different version
-4. Clear download queue
-5. Manual download from Adoptium
-
-### Wrong Java Version
-
-**Issue:** Game crashes due to Java version
-
-**Solutions:**
-1. Check Minecraft version requirements
-2. Download correct Java version
-3. Select appropriate Java in settings
-4. Verify Java path is correct
-
-### OutOfMemoryError
-
-**Issue:** Game crashes with memory error
-
-**Solutions:**
-1. Increase maximum memory allocation
-2. Close other applications
-3. Upgrade system RAM
-4. Use 64-bit Java
-5. Optimize JVM arguments
-
-### Performance Issues
-
-**Issue:** Low FPS or stuttering
-
-**Solutions:**
-1. Adjust memory allocation (not too high!)
-2. Enable G1GC garbage collector
-3. Add performance JVM arguments
-4. Use newer Java version if compatible
-5. Allocate 4-8GB for modpacks
-
-## API Reference
-
-### Tauri Commands
-
-**Detect Java Installations:**
-```typescript
-const javas = await invoke('detect_java_installations');
-// Returns: Array<{ path: string, version: string, major: number }>
-```
-
-**Get Java Catalog:**
-```typescript
-const catalog = await invoke('get_java_catalog');
-// Returns: { versions: Array<JavaVersion>, last_updated: number }
-```
-
-**Download Java:**
-```typescript
-await invoke('download_java', {
- version: '17.0.9+9',
- variant: 'jdk' // or 'jre'
-});
-```
-
-**Cancel Java Download:**
-```typescript
-await invoke('cancel_java_download');
-```
-
-**Set Java Path:**
-```typescript
-await invoke('set_java_path', { path: '/path/to/java' });
-```
-
-### Events
-
-**Download Progress:**
-```typescript
-listen('java-download-progress', (event) => {
- const { percent, speed, eta } = event.payload;
-});
-```
-
-**Download Complete:**
-```typescript
-listen('java-download-complete', (event) => {
- const { path, version } = event.payload;
-});
-```
-
-## Best Practices
-
-### For Players
-
-1. **Use Adoptium builds** - Free, high-quality, maintained
-2. **Match Java to Minecraft** - Check version requirements
-3. **Don't over-allocate memory** - Leave RAM for OS
-4. **Keep Java updated** - Security and performance
-5. **Use 64-bit Java** - Required for large memory
-
-### For Developers
-
-1. **Test multiple Java versions** - Ensure compatibility
-2. **Document Java requirements** - Help users
-3. **Handle missing Java** - Graceful fallbacks
-4. **Validate Java path** - Before launching
-5. **Provide clear errors** - When Java is wrong
-
-## Advanced Topics
-
-### Custom Java Installation
-
-To use a custom Java installation:
-
-1. Install Java manually
-2. Note the installation path
-3. In DropOut Settings → Java
-4. Click "Custom Path"
-5. Browse to Java executable
-6. Verify version is correct
-
-### Java for Servers
-
-When running a Minecraft server:
-
-```bash
-# Recommended server JVM arguments
--Xms4G -Xmx4G \
--XX:+UseG1GC \
--XX:+ParallelRefProcEnabled \
--XX:MaxGCPauseMillis=200 \
--XX:+UnlockExperimentalVMOptions \
--XX:+DisableExplicitGC \
--XX:G1NewSizePercent=30 \
--XX:G1MaxNewSizePercent=40 \
--XX:G1HeapRegionSize=8M \
--XX:G1ReservePercent=20 \
--XX:G1HeapWastePercent=5 \
--XX:G1MixedGCCountTarget=4 \
--XX:InitiatingHeapOccupancyPercent=15 \
--XX:G1MixedGCLiveThresholdPercent=90 \
--XX:G1RSetUpdatingPauseTimePercent=5 \
--XX:SurvivorRatio=32 \
--XX:+PerfDisableSharedMem \
--XX:MaxTenuringThreshold=1
-```
-
-### GraalVM
-
-GraalVM is supported for advanced users:
-
-1. Download GraalVM from graalvm.org
-2. Install manually
-3. Add to DropOut as custom Java
-4. May improve performance
-5. Test thoroughly before use
diff --git a/packages/docs/content/en/features/meta.json b/packages/docs/content/en/features/meta.json
deleted file mode 100644
index 4725321..0000000
--- a/packages/docs/content/en/features/meta.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "title": "Features",
- "pages": [
- "index",
- "authentication",
- "java",
- "mod-loaders"
- ]
-}
diff --git a/packages/docs/content/en/features/mod-loaders.mdx b/packages/docs/content/en/features/mod-loaders.mdx
deleted file mode 100644
index d6fdf4f..0000000
--- a/packages/docs/content/en/features/mod-loaders.mdx
+++ /dev/null
@@ -1,409 +0,0 @@
----
-title: Mod Loaders
-description: Fabric and Forge installation and management
----
-
-# Mod Loaders
-
-DropOut supports the two most popular Minecraft mod loaders: Fabric and Forge. Both can be easily installed and managed directly from the launcher.
-
-## Fabric Support
-
-### Overview
-
-Fabric is a lightweight, modular modding toolchain focused on:
-- Fast updates to new Minecraft versions
-- Clean, minimal API
-- Strong developer community
-- Excellent performance
-
-### Installation
-
-1. Navigate to **Versions** tab
-2. Click **"Install Fabric"**
-3. Select Minecraft version
-4. Choose Fabric loader version
-5. Click **"Install"**
-6. Wait for installation to complete
-
-### How It Works
-
-**Meta API Integration:**
-```rust
-// Fetch available Fabric versions
-let url = format!(
- "https://meta.fabricmc.net/v2/versions/loader/{}",
- minecraft_version
-);
-```
-
-**Profile Generation:**
-1. Fetch Fabric loader metadata
-2. Download Fabric libraries
-3. Generate version JSON with `inheritsFrom`
-4. Merge with parent Minecraft version
-5. Add to versions list
-
-**Version Format:**
-```json
-{
- "id": "fabric-loader-0.15.0-1.20.4",
- "inheritsFrom": "1.20.4",
- "mainClass": "net.fabricmc.loader.impl.launch.knot.KnotClient",
- "libraries": [...]
-}
-```
-
-### Fabric Versions
-
-**Loader Versions:**
-- Latest stable (recommended)
-- Specific versions for compatibility
-- Beta/snapshot versions
-
-**Game Versions:**
-- All Minecraft versions from 1.14+
-- Snapshots supported
-- Combat Test versions
-
-### Library Management
-
-Fabric libraries are resolved from Maven:
-
-**Main Library:**
-```
-net.fabricmc:fabric-loader:0.15.0
-```
-
-**Dependencies:**
-- `net.fabricmc:tiny-mappings-parser`
-- `net.fabricmc:sponge-mixin`
-- `net.fabricmc:access-widener`
-
-**Download:**
-```rust
-// Maven resolution
-let url = format!(
- "https://maven.fabricmc.net/{}/{}",
- artifact_path, filename
-);
-```
-
-### Fabric API
-
-Fabric Loader ≠ Fabric API:
-- **Fabric Loader**: Mod loader (installed by DropOut)
-- **Fabric API**: Library mod (download separately)
-
-Many mods require Fabric API:
-1. Download from [Modrinth](https://modrinth.com/mod/fabric-api) or [CurseForge](https://www.curseforge.com/minecraft/mc-mods/fabric-api)
-2. Place in instance's `mods/` folder
-
-## Forge Support
-
-### Overview
-
-Forge is the original and most popular Minecraft mod loader:
-- Extensive mod ecosystem
-- Mature API
-- Wide version support
-- Large community
-
-### Installation
-
-1. Navigate to **Versions** tab
-2. Click **"Install Forge"**
-3. Select Minecraft version
-4. Choose Forge version
-5. Click **"Install"**
-6. Wait for installer to run
-7. Installation complete
-
-### How It Works
-
-**Forge Installer:**
-```rust
-// Download Forge installer
-let installer_url = format!(
- "https://maven.minecraftforge.net/net/minecraftforge/forge/{}/forge-{}-installer.jar",
- full_version, full_version
-);
-
-// Run installer
-java -jar forge-installer.jar --installClient
-```
-
-**Profile Parsing:**
-1. Forge installer creates version JSON
-2. DropOut parses install profile
-3. Extracts library dependencies
-4. Processes processors (if any)
-5. Generates launcher profile
-
-**Version Format:**
-```json
-{
- "id": "1.20.4-forge-49.0.26",
- "inheritsFrom": "1.20.4",
- "mainClass": "cpw.mods.bootstraplauncher.BootstrapLauncher",
- "libraries": [...]
-}
-```
-
-### Forge Versions
-
-**Release Types:**
-- **Latest**: Most recent stable
-- **Recommended**: Most stable for production
-- **Specific**: Version-locked for compatibility
-
-**Minecraft Version Support:**
-- Legacy versions (1.6.4+)
-- Modern versions (1.13+)
-- Latest versions (1.20+)
-
-### Library Management
-
-Forge has many libraries:
-
-**Core Libraries:**
-- `net.minecraftforge:forge:<version>`
-- `net.minecraftforge:fmlloader:<version>`
-- `org.ow2.asm:asm:<version>`
-
-**Resolution:**
-```rust
-// Forge Maven
-"https://maven.minecraftforge.net/"
-
-// Dependencies may use:
-// - Maven Central
-// - Minecraft Libraries
-```
-
-### Forge Processors
-
-Some Forge versions run "processors" during installation:
-- Bytecode manipulation
-- Library patching
-- Mapping generation
-
-DropOut handles these automatically.
-
-## Version Inheritance
-
-Both Fabric and Forge use Minecraft's inheritance system:
-
-### Parent Version
-
-```json
-{
- "id": "fabric-loader-0.15.0-1.20.4",
- "inheritsFrom": "1.20.4" // Parent vanilla version
-}
-```
-
-### Merging Process
-
-**Libraries:**
-```rust
-// Merged from both
-parent_libraries + modded_libraries
-// Duplicates removed
-```
-
-**Arguments:**
-```rust
-// Combined
-parent_jvm_args + modded_jvm_args
-parent_game_args + modded_game_args
-```
-
-**Assets:**
-```rust
-// Inherited from parent
-assets = parent.assets
-```
-
-**Main Class:**
-```rust
-// Overridden by modded
-main_class = modded.mainClass
-```
-
-## Comparison
-
-| Feature | Fabric | Forge |
-|---------|--------|-------|
-| **Performance** | Excellent | Good |
-| **Update Speed** | Very Fast | Moderate |
-| **Mod Selection** | Growing | Extensive |
-| **API Simplicity** | Simple | Complex |
-| **Version Support** | 1.14+ | 1.6.4+ |
-| **Developer Friendly** | Very | Moderate |
-| **Stability** | Excellent | Excellent |
-
-## Installing Mods
-
-### Fabric Mods
-
-1. Create/select instance
-2. Ensure Fabric is installed
-3. Download mods from:
- - [Modrinth](https://modrinth.com/)
- - [CurseForge](https://www.curseforge.com/)
- - [GitHub Releases](https://github.com/)
-4. Place `.jar` files in `instances/<name>/mods/`
-5. Launch game
-
-**Compatibility:**
-- Check Minecraft version
-- Check Fabric Loader version
-- Check for Fabric API requirement
-- Read mod dependencies
-
-### Forge Mods
-
-1. Create/select instance
-2. Ensure Forge is installed
-3. Download mods from:
- - [CurseForge](https://www.curseforge.com/)
- - [Modrinth](https://modrinth.com/)
-4. Place `.jar` files in `instances/<name>/mods/`
-5. Launch game
-
-**Compatibility:**
-- Check Minecraft version exactly
-- Check Forge version range
-- Read mod dependencies
-- Check for conflicts
-
-## Troubleshooting
-
-### Fabric Issues
-
-**"Fabric Loader not found"**
-- Reinstall Fabric
-- Check version JSON exists
-- Verify libraries downloaded
-
-**"Mixin apply failed"**
-- Mod incompatibility
-- Remove conflicting mods
-- Update Fabric Loader
-
-**"Fabric API required"**
-- Download Fabric API
-- Match Minecraft version
-- Place in mods folder
-
-### Forge Issues
-
-**"Forge installer failed"**
-- Verify Java installation
-- Check disk space
-- Try older Forge version
-- Check logs for details
-
-**"Missing dependencies"**
-- Install required mods
-- Check mod version compatibility
-- Read error message carefully
-
-**"Class not found"**
-- Forge version mismatch
-- Reinstall Forge
-- Verify libraries downloaded
-
-### General Mod Issues
-
-**Crash on Launch:**
-1. Check crash report
-2. Identify problematic mod
-3. Remove or update mod
-4. Test with minimal mods
-5. Add mods back incrementally
-
-**Performance Problems:**
-1. Too many mods installed
-2. Increase memory allocation
-3. Install performance mods:
- - Fabric: Sodium, Lithium
- - Forge: OptiFine, Magnesium
-4. Remove resource-heavy mods
-
-## API Reference
-
-### Tauri Commands
-
-**Install Fabric:**
-```typescript
-await invoke('install_fabric', {
- minecraftVersion: '1.20.4',
- loaderVersion: '0.15.0'
-});
-```
-
-**Install Forge:**
-```typescript
-await invoke('install_forge', {
- minecraftVersion: '1.20.4',
- forgeVersion: '49.0.26'
-});
-```
-
-**List Fabric Versions:**
-```typescript
-const versions = await invoke('get_fabric_versions', {
- minecraftVersion: '1.20.4'
-});
-```
-
-**List Forge Versions:**
-```typescript
-const versions = await invoke('get_forge_versions', {
- minecraftVersion: '1.20.4'
-});
-```
-
-### Events
-
-**Installation Progress:**
-```typescript
-listen('mod-loader-progress', (event) => {
- const { stage, percent } = event.payload;
- // Stages: "downloading", "installing", "processing", "complete"
-});
-```
-
-## Best Practices
-
-### For Players
-
-1. **Choose one mod loader** per instance
-2. **Match versions exactly** - Minecraft and loader
-3. **Read mod requirements** before installing
-4. **Start small** - Add mods incrementally
-5. **Backup worlds** before adding mods
-6. **Check compatibility** lists
-7. **Update cautiously** - Test in separate instance
-
-### For Modpack Creators
-
-1. **Document versions** - MC, loader, all mods
-2. **Test thoroughly** - All features
-3. **List dependencies** - Including API
-4. **Provide changelog** - For updates
-5. **Version lock** - For stability
-6. **Include configs** - Pre-configured
-7. **Test updates** - Before release
-
-## Future Features
-
-- **Mod browser** - Install mods from launcher
-- **Automatic updates** - Keep mods current
-- **Dependency resolution** - Auto-install requirements
-- **Conflict detection** - Warn about incompatibilities
-- **Profile export** - Share modpack configurations
-- **CurseForge integration** - Direct modpack import
-- **Modrinth integration** - Mod search and install