Modpack Import
Import modpacks from Modrinth, CurseForge, or server pack ZIPs into Nimbus as fully managed, auto-scaling server groups.
Nimbus can import modpacks from Modrinth, CurseForge, or a server pack ZIP and turn them into fully managed, auto-scaling server groups — with a single command.
No manual downloading, no extracting ZIPs, no hunting for the right modloader version. Just point Nimbus at a modpack and it handles everything.
Supported Sources
| Source | Example |
|---|---|
| Modrinth slug | import adrenaserver |
| Modrinth URL | import https://modrinth.com/modpack/adrenaserver |
| CurseForge slug | import curseforge:all-the-mods-10 |
| CurseForge URL | import https://curseforge.com/minecraft/modpacks/all-the-mods-10 |
| Server pack ZIP | import /path/to/ServerFiles-6.6.zip |
Local .mrpack file | import /path/to/modpack.mrpack |
CurseForge API fetching requires an API key configured in nimbus.toml under [curseforge] api_key. Server pack ZIPs can always be imported without an API key — just download the server pack from CurseForge and point Nimbus at the file.
Supported Modloaders
| Modloader | Auto-configured | Proxy Forwarding |
|---|---|---|
| Fabric | Yes | Fabric Proxy Mod |
| Forge | Yes | Forge forwarding mod |
| NeoForge | Yes | NeoForge forwarding mod |
| Quilt | Yes (via Fabric) | Fabric Proxy Mod |
Quick Start
Just run the import command with a Modrinth slug or URL:
nimbus » import adrenaserver
Import Modpack
Resolving modpack... ✓
Adrenaserver v1.5.2
MC 1.21.4 · Fabric 0.16.9
47 server mods (12 client-only skipped)
Group name: Adrenaserver
Service type [DYNAMIC]: DYNAMIC
Memory [2G]: 2G
Min instances [1]: 1
Max instances [4]: 4
Installing...
↓ Fabric 0.16.9 ✓
↓ Mods 47/47 ✓
↓ Configs & overrides ✓
↓ Proxy mods ✓
✓ groups/adrenaserver.toml
✓ Group configs reloaded
Modpack 'Adrenaserver' imported as group 'Adrenaserver'!
↑↓ navigate · enter select · esc back
› ● Yes, start now
○ No, start later
✓ Service start initiated.That's it. Your modded server is live and accepting players through the proxy.
How It Works
Behind the scenes, the import command runs through six stages:
- Resolve — Downloads the
.mrpackfrom Modrinth, fetches the server pack from CurseForge, or reads a local file. Modrinth/CurseForge slugs and URLs are resolved via their respective APIs. Server pack ZIPs are analyzed directly. - Parse — For
.mrpack: readsmodrinth.index.jsonfor the mod list and dependencies. For server pack ZIPs: auto-detects modloader and MC version from installer JARs, startup scripts, and args files. - Configure — Interactive prompts ask for group name, service type, memory allocation, and scaling limits. Sensible defaults are pre-filled based on the pack metadata.
- Download — For Modrinth packs: fetches the modloader JAR and all server-side mods (8 parallel downloads with SHA1 verification). For server packs: extracts the pre-built files directly (mods are already included).
- Install — Extracts config overrides, installs the modloader, adds the appropriate proxy forwarding mod for Velocity, and auto-accepts the EULA.
- Create — Generates a group config file in
groups/<name>.tomlwith all the settings you chose.
What Gets Installed
After import, your template directory looks like this:
templates/Adrenaserver/
├── fabric-server-launch.jar
├── mods/
│ ├── lithium-0.14.3.jar
│ ├── fabric-api-0.100.1.jar
│ └── ... (47 mods)
├── config/
│ └── ... (extracted from overrides)
└── eula.txt (auto-accepted)A matching group config is created at groups/Adrenaserver.toml with the modloader, memory, and scaling settings you selected.
Auto-Scaling Modded Servers
Imported modpacks are configured as DYNAMIC groups by default. This means Nimbus will automatically spin up new instances when player demand increases and shut them down when they're empty — just like it does for vanilla server groups.
The scaling engine monitors player counts across all instances and applies the same fill-rate rules described in the Auto-Scaling Guide. You get elastic modded infrastructure without lifting a finger.
Memory Recommendation
Modded servers typically need 2-4G per instance. Heavy modpacks (200+ mods) may need 4-6G. Set this during import or adjust later in config/groups/<name>.toml under [group.resources] memory.
Automatic Proxy Forwarding
One of Nimbus's strongest features for modded servers: proxy forwarding mods are installed and configured automatically. You never need to manually download or set up forwarding mods.
| Modloader | Auto-installed Mod | Dependencies |
|---|---|---|
| Fabric / Quilt | FabricProxy-Lite | Fabric API (also auto-installed) |
| Forge | proxy-compatible-forge | None |
| NeoForge | NeoForwarding | None |
When Nimbus starts a modded service, it:
- Checks the template's
mods/directory for an existing forwarding mod - If missing, downloads the correct mod from Modrinth (matched to your MC version)
- Configures the mod with the correct forwarding mode (modern or legacy)
- Copies the
forwarding.secretfor modern forwarding mode
No manual configuration needed. Players connect to your Velocity proxy on port 25565 and get forwarded to modded servers as if they were vanilla.
This works for both imported modpacks AND manually created modded groups. Any Forge, Fabric, or NeoForge group automatically gets proxy forwarding support.
Smart Client Routing
When you run multiple modded groups (e.g. ATM10 on NeoForge 1.21.1 and a Forge 1.20.1 pack), Nimbus automatically routes each connecting client to the correct group using mod list matching:
- Protocol version filter -- A Forge 1.20.1 client (protocol 763) won't match a NeoForge 1.21.4 group (protocol 769)
- Connection type filter -- Legacy Forge clients only match Forge groups; modern Forge/NeoForge clients match both
- Mod overlap scoring -- The client's mod list (from the Forge handshake) is compared against each group's server mods. The group with the highest overlap ratio wins (minimum 50% match required)
- Fallback -- If no group scores above 50%, the player falls back to the lobby
This happens automatically. Nimbus scans the mods/ directory of each modded group's template on startup and caches the mod IDs. The mod list is also exposed via GET /api/groups in the modIds field.
Fabric clients appear as vanilla to Velocity (no FML marker in the handshake) and are routed to the lobby like any other vanilla client. This is a Fabric design choice -- Fabric doesn't modify the Minecraft protocol handshake.
Updating a Modpack
To update to a new modpack version, simply re-run the import command:
nimbus » import adrenaserver
Import Modpack
Resolving modpack... ✓
Adrenaserver v1.6.0
MC 1.21.5 · Fabric 0.17.0
49 server mods (+2 new, 3 updated)Alternatively, you can manually update individual mods by replacing JAR files in the templates/<name>/mods/ directory.
Re-importing will overwrite the existing template. For STATIC services, world data in services/ is preserved since it lives outside the template. For DYNAMIC services, a fresh template copy is applied on every start, so changes to the template take effect immediately.
Examples
Fabric Performance Pack
A lightweight server optimization pack — perfect for high-player-count lobbies:
nimbus » import adrenaserver
Import Modpack
Resolving modpack... ✓
Adrenaserver v1.5.2
MC 1.21.4 · Fabric 0.16.9
47 server mods (12 client-only skipped)
Modpack 'Adrenaserver' imported as group 'Adrenaserver'!Forge Modpack
Import a heavyweight Forge kitchen-sink pack straight from a Modrinth URL:
nimbus » import https://modrinth.com/modpack/all-the-mods-10
Import Modpack
Resolving modpack... ✓
All the Mods 10 v2.40
MC 1.21.1 · NeoForge 21.1.77
341 server mods (89 client-only skipped)
Installing...
↓ NeoForge 21.1.77 ✓
↓ Mods 341/341 ✓
↓ Configs & overrides ✓
↓ Proxy mods ✓
Modpack 'All the Mods 10' imported as group 'AllTheMods10'!CurseForge Server Pack ZIP
Download the server pack from CurseForge and import the ZIP directly — no API key needed:
nimbus » import ServerFiles-6.6.zip
Import Modpack
Resolving modpack... ✓
Server Pack ServerFiles-6.6.zip
MC 1.21.1 · NEOFORGE 21.1.224
449 mods
Group name [66]: ATM10
Static services keep their data (world, configs) across restarts.
Dynamic services start fresh from the template every time.
✓ Static
Memory per instance [4G]: 8G
Min instances [1]: 1
Max instances [1]: 1
Installing...
↓ Extracting server pack... ✓
✓ 449 mods extracted
↓ NEOFORGE 21.1.224 ✓
↓ Proxy mod ✓
✓ config/groups/atm10.toml
✓ Group configs reloaded
✓ Server pack imported as group 'ATM10'!
✓ Service start initiated.CurseForge API (with API key)
With a CurseForge API key configured, you can import by slug — Nimbus auto-downloads the server pack:
nimbus » import curseforge:all-the-mods-10Local Modpack File
Import a custom pack you built yourself or downloaded manually:
nimbus » import ./my-custom-pack.mrpack
Import Modpack
Resolving modpack... ✓
My Custom Pack v1.0.0
MC 1.20.4 · Quilt 0.26.4 (via Fabric)
23 server mods
Modpack 'My Custom Pack' imported as group 'MyCustomPack'!