Configuration
Configuration
Complete reference for all settings, environment variables, cache behavior, and detailed provider documentation with error descriptions.
Admin Panel Settings
Open settings via the gear icon on the Modpack Browser page.
Settings Reference
| Setting | Default | Range | Env Variable | Description |
|---|---|---|---|---|
| Cache Duration | 30 min | 0–1440 min | MODPACKS_CACHE_DURATION (seconds, default 1800) |
How long API responses are cached |
| Request Timeout | 10 sec | 1–30 sec | MODPACKS_REQUEST_TIMEOUT |
Max wait time for API response |
| Modpacks Per Page | 20 | 5–100 | MODPACKS_PER_PAGE |
Results per browse page |
| CurseForge API Key | — | Text | CURSEFORGE_API_KEY |
Required for CurseForge (password field) |
All Environment Variables
| Variable | Default | Description |
|---|---|---|
MODPACKS_CACHE_DURATION |
1800 |
Cache duration in seconds |
MODPACKS_REQUEST_TIMEOUT |
10 |
API timeout in seconds |
MODPACKS_PER_PAGE |
20 |
Modpacks per browse page |
CURSEFORGE_API_KEY |
— | CurseForge API key (shared with Game Mods + Plugins) |
After changes: php artisan config:clear
Provider: Modrinth (Detailed)
Overview
No configuration required. Direct server-side installation supported.
Technical Details
| Property | Value |
|---|---|
| API Base | https://api.modrinth.com/v2 |
| Auth | None required |
| Facets | [["project_type:modpack"], ["server_side:required","server_side:optional"]] |
| Download | Direct URL with SHA-1 hash |
Direct Install Process
- Downloads
.mrpackfile (renamed to.zip) - Extracts content
- Parses
modrinth.index.jsonfor dependencies - Resolves loaders:
fabric→ fabricmc.net,quilt→ quiltmc.org forge/neoforge→ logged as unsupported for direct install- Copies
overrides/directory contents to server root - Generates
run.sh+run.batscripts
Modrinth-Specific Errors
| Error | Cause | Solution |
|---|---|---|
| Empty search results | API temporarily unavailable | Check status.modrinth.com |
| Download failed | CDN URL expired | Clear cache, search again |
| Forge/NeoForge unsupported | Direct install doesn't support these loaders | Use egg-based installation instead |
| .mrpack extraction failed | Corrupted download | Re-download, check disk space |
Provider: CurseForge (Detailed)
Overview
Requires free API key. Direct server-side installation supported.
Technical Details
| Property | Value |
|---|---|
| API Base | https://api.curseforge.com/v1 |
| Auth | x-api-key header |
| Class ID | 4471 (Modpacks) |
| Game ID | 432 (Minecraft) |
| Max page size | 50, total cap 10,000 |
| Sort | Dynamic — Popularity(2) if no query, Featured(1) with query |
Direct Install Process
- Downloads modpack archive
- Parses
manifest.jsonfor file references - Downloads each mod file individually from CurseForge
- Applies overrides from the archive
CurseForge-Specific Errors
| Error | Cause | Solution |
|---|---|---|
| "CurseForge API key not set" | No key configured | Add key in settings or CURSEFORGE_API_KEY |
| HTTP 403 | Invalid or expired key | Regenerate at console.curseforge.com |
| HTTP 429 | Rate limit exceeded | Increase cache duration, wait |
| Empty download URL | Author restricted downloads | Try different modpack version |
Provider: ATLauncher (Detailed)
Overview
Requires launcher — no direct server download.
Technical Details
| Property | Value |
|---|---|
| API | GraphQL at https://api.atlauncher.com/v2/graphql |
| Icons CDN | https://cdn.atlcdn.net/ |
| Search | GraphQL mutation searchPacks with pagination |
| Versions | GraphQL query pack(slug) → versions array |
requires_launcher |
true — Cannot install directly to server |
ATLauncher-Specific Notes
- Search uses GraphQL mutations, not REST
- Paginated results
- Must download via ATLauncher client and upload to server
Provider: FeedTheBeast (Detailed)
Overview
Requires launcher — no direct server download.
Technical Details
| Property | Value |
|---|---|
| API | https://api.feed-the-beast.com/v1/modpacks/public/modpack |
| Skip | packId=81 (placeholder/test pack, automatically excluded) |
requires_launcher |
true — Cannot install directly to server |
FTB-Specific Notes
- Pack ID 81 is a placeholder pack and is always filtered out
- Must download via FTB launcher and upload to server
Provider: Technic (Detailed)
Overview
Requires launcher — no direct server download.
Technical Details
| Property | Value |
|---|---|
| API | https://api.technicpack.net |
| Build number | Fetched from /launcher/version/stable4 (fallback: '822') |
| Search | Requires query — defaults to 'Technic' if empty |
| Details | /modpack/{slug} requires separate request |
requires_launcher |
true — Cannot install directly to server |
Technic-Specific Notes
- Empty search falls back to searching "Technic"
- Build number is fetched dynamically from the stable channel
- Each modpack detail requires an additional API call
Provider: VoidsWrath (Detailed)
Overview
Direct server pack download available. Browse-only (no search function).
Technical Details
| Property | Value |
|---|---|
| API | Static JSON at https://www.ric-rac.org/minecraft-modpack-server-installer/voidswrath.json |
| Versions | Only "latest" version per modpack |
| Download | serverPackUrl for direct server-side download |
supportsSearch() |
false — Browse only, no search |
| Pagination | Client-side (all data loaded at once) |
VoidsWrath-Specific Notes
- All data loaded in a single JSON request
- Only one version available per modpack (latest)
- Direct server pack URL available — no launcher needed
- Cannot search — must browse the full list
Cache Behavior
Cache Prefix: MP_
| What's cached | TTL | Key Pattern |
|---|---|---|
| Browse search | Config duration (1800s) | modpacks:{operation}:{provider}:{md5} |
| Version list | Config duration | Same pattern |
| Modpack details | Config duration | Same pattern |
| Download info | Config duration | Same pattern |
| Installation progress | 10 min | Step/progress tracking |
| Widget update check | 5 min | modpack_widget_update_{uuid} |
⚠️ Global Cache Flush Warning
ModpackManager::clearCache() uses Cache::flush() which clears ALL cached data — not just modpack data. This affects all plugins and the entire panel cache.
Use the "Clear Cache" button sparingly. If other plugins stop working after clearing modpack cache, clear their caches individually or wait for TTL expiry.
Troubleshooting
Settings don't save
- Check
storage/directory write permissions php artisan config:clear- Check browser console (F12) for JS errors
CurseForge not working
- API key must be set — get one free at console.curseforge.com
- Check key hasn't expired
- Same key is used by Game Mods and Minecraft Plugins plugins