Skip to content

Mods, Plugins & Addons

Manage mods for Java Edition and addons for Bedrock Edition from the same Minepanel workflow.

Mods Tab

Overview

EditionPlatforms / SourcesAutomation
JavaModrinth, CurseForge, Spiget✅ Automatic
BedrockUpload .mcaddon / .mcpack / .zip, CurseForge✅ Import, enable/disable, sync to world

Java Edition Platforms

PlatformBest ForAPI Key Required
ModrinthMods, datapacks, plugins❌ No
CurseForgeModpacks, mods✅ Yes
Feed The BeastFTB modpacks❌ No
SpigetSpigot/Paper plugins❌ No

Learn More

For advanced options and all environment variables, see the docker-minecraft-server mods documentation.

Paper Cross-Play Template

If you want a Java server that also accepts Bedrock players, Minepanel now includes a Paper Cross-Play template in Create Server -> From Template.

It preconfigures:

  • Geyser
  • Floodgate
  • ViaVersion
  • 19132:19132/udp as an extra port for Bedrock connections

This is a preset for faster setup. You can still edit the plugin URLs or extra ports later from the server configuration tabs.

Integrated Mod Search in Minepanel

Minepanel includes an integrated search dialog in the Mods tab for both CurseForge Files and Modrinth Projects.

What it does

  • Searches directly from Minepanel (no need to manually browse first)
  • Filters results by current server compatibility:
    • Minecraft version
    • Loader (Forge/Neoforge/Fabric/Quilt) when available
  • Adds entries in one click as:
    • Slug (default)
    • ID

How to use it

  1. Open Create Server or Edit Server
  2. Go to the Mods tab
  3. In either CurseForge Files or Modrinth Projects, click Search mods
  4. Pick insertion format (Slug or ID)
  5. Click Add mod

The selected entries are appended to the same existing fields (CURSEFORGE_FILES and MODRINTH_PROJECTS) using newline format, preserving manual entries and avoiding duplicates.


Modrinth

Automatically download and manage mods, plugins, and datapacks from Modrinth.

Supported Server Types

  • ✅ Fabric
  • ✅ Forge
  • ✅ Neoforge
  • ✅ CurseForge (AUTO_CURSEFORGE)
  • ✅ Modrinth Modpacks

How to Add Mods from Minepanel

  1. Go to Create Server or Edit Server
  2. Open the Mods tab
  3. Find the Modrinth Projects field (blue border)
  4. Enter project slugs separated by commas or new lines
  5. Configure dependencies and version type if needed
  6. Save the server

Example input:

fabric-api
sodium
lithium
cloth-config

Datapacks from Modrinth

Modrinth also hosts datapacks. To install them, use the datapack: prefix:

In Minepanel (Modrinth Projects field):

fabric-api
sodium
datapack:terralith
datapack:incendium
datapack:nullscape:1.2.4

Syntax:

FormatExampleDescription
datapack:slugdatapack:terralithLatest version
datapack:slug:versiondatapack:terralith:2.5.5Specific version
datapack:slug:betadatapack:terralith:betaLatest beta

Vanilla Servers

For vanilla servers, the datapack: prefix is optional. The system auto-detects datapacks.

WARNING

Datapacks require a compatible Minecraft version. Check the datapack page on Modrinth for compatibility.

Project Reference Formats

The Modrinth Projects field accepts multiple formats:

FormatExampleDescription
Slugfabric-apiLatest release
Slug + versionfabric-api:0.119.2+1.21.4Specific version
Slug + version IDfabric-api:bQZpGIz0By version ID
Slug + release typefabric-api:betaLatest beta/alpha
Project IDP7dR8mSHUsing Modrinth ID
Loader overridefabric:fabric-apiForce loader type
Datapackdatapack:terralithInstall datapack

Configuration Options

FieldDescriptionDefault
Modrinth ProjectsList of mods/plugins/datapacks-
Dependenciesnone, required, or optionalnone
Version Typerelease, beta, or alpharelease

Auto-Removal

Mods removed from the list will be automatically deleted on next server start.

Docker Compose Reference

If you prefer to configure via docker-compose directly:

yaml
environment:
  TYPE: FABRIC
  VERSION: 1.21.4
  MODRINTH_PROJECTS: |
    fabric-api
    sodium
    datapack:terralith
  MODRINTH_DOWNLOAD_DEPENDENCIES: required
  MODRINTH_PROJECTS_DEFAULT_VERSION_TYPE: release
More docker-compose examples

Forge server with specific versions:

yaml
environment:
  TYPE: FORGE
  VERSION: 1.20.1
  MODRINTH_PROJECTS: |
    jei:10.2.1.1005
    geckolib
    create

Using a listing file:

Create /path/to/mods.txt:

# Performance mods
fabric-api
sodium
lithium

# Datapacks
datapack:terralith
datapack:incendium

Then mount and reference:

yaml
volumes:
  - ./mods-list:/extras:ro
environment:
  MODRINTH_PROJECTS: '@/extras/mods.txt'

Modrinth Modpacks

Install complete modpacks from Modrinth using the MODRINTH_MODPACK server type.

Installation Methods in Minepanel

When creating/editing a server with type MODRINTH_MODPACK, there is one method which can be used in several ways.

MethodAuto-updates?Use case
Slug✅ YesAlways gets the latest compatible version
URL✅ YesAlways gets the latest compatible version
URL with verison✅ NoLocks to the specified version

Slug

  1. Enter the modpack project slug (e.g., surface-living) into the Modrinth Modpack field
  2. On each server start, it downloads the latest compatible version

Url

  1. Enter the modpack project URL (e.g., https://modrinth.com/modpack/surface-living)
  2. On each server start, it downloads the latest compatible version

Url (version locked)

  1. Enter the modpack project URL for a specific version (e.g., https://modrinth.com/modpack/surface-living/version/1.2.1)
  2. On each server start, it will ignore any updated version of the modpack

CurseForge Modpacks

Install complete modpacks from CurseForge using the AUTO_CURSEFORGE server type.

API Key Required

You need a CurseForge API key. Get one from CurseForge for Studios.

Installation Methods in Minepanel

When creating/editing a server with type AUTO_CURSEFORGE, you can choose between 3 methods:

MethodAuto-updates?Use case
URL✅ YesAlways get the latest compatible version
Slug❌ NoLock to a specific file version
File❌ NoUse a local modpack zip file
  1. Select URL as installation method
  2. Paste the modpack page URL from CurseForge
  3. On each server start, it downloads the latest compatible version

Example URL:

https://www.curseforge.com/minecraft/modpacks/all-the-mods-9

TIP

Use URL method if you want automatic updates when the modpack releases new versions.

Method: Slug (Lock specific version)

  1. Select Slug as installation method
  2. Enter the modpack slug (e.g., all-the-mods-9)
  3. Enter the File ID for the specific version you want

How to find the File ID:

  1. Go to the modpack page on CurseForge
  2. Click on "Files" tab
  3. Click on the version you want
  4. The File ID is in the URL: .../files/5765432 → File ID is 5765432

WARNING

With Slug method, the version never updates automatically. You must manually change the File ID to update.

Method: File (Local modpack)

  1. Select File as installation method
  2. Upload/mount your modpack zip to the server
  3. Enter the file pattern (e.g., *.zip)

Useful for modpacks downloaded manually or custom modpacks.

Use the modpack URL, not the server-file URL

AUTO_CURSEFORGE always expects the modpack (client) page or file — it reads the manifest and builds the server side from it. Pointing it at a dedicated "server files" download breaks with:

Invalid parameter provided for "install-curseforge" command:
The modpack's manifest file was not valid - did you make sure to reference a client, not server file?

So use the modpack page URL (e.g. https://www.curseforge.com/minecraft/modpacks/<pack>) or a specific modpack file (.../files/<id>), never the server-files variant.

If the install then loops or crashes on start because of a client-only mod, exclude it with the Exclude mods field (CF_EXCLUDE_MODS), which accepts a comma-separated list of mod slugs or filenames, e.g. optifine,client-only-mod.

World source conflict with Worlds tab

For AUTO_CURSEFORGE, CF_SET_LEVEL_FROM and the Java Worlds tab are alternative world-source mechanisms.

  • If you use the Worlds tab (WORLD/LEVEL), Minepanel clears CF_SET_LEVEL_FROM.
  • If you need modpack-provided world data (WORLD_FILE or OVERRIDES), keep using CF_SET_LEVEL_FROM and do not select an external world source.

Browse Modpacks

Minepanel includes a Browse button to search CurseForge modpacks directly from the UI. Click it to find and select modpacks without leaving the panel.

GTNH

Minepanel also supports GT New Horizons through the dedicated GTNH server type.

Use it when you want the container to handle GTNH-specific install and update behavior without manually entering env vars.

Available GTNH fields in Minepanel:

  • GTNH_PACK_VERSION
  • GTNH_DELETE_BACKUPS
  • SKIP_GTNH_UPDATE_CHECK

Recommended workflow:

  1. Keep a fixed pack version such as 2.8.1
  2. Leave update check enabled for the first install
  3. Only enable SKIP_GTNH_UPDATE_CHECK after the server has been installed once

Feed The Beast (FTBA)

Minepanel supports Feed The Beast modpacks through the dedicated FTBA server type. No CurseForge API key is needed — FTB serves the packs directly. The pack pins its own Minecraft and loader version, so you don't set a Minecraft version by hand.

Available FTBA fields in Minepanel:

  • FTB_MODPACK_ID — the numeric modpack ID from the pack's page on feed-the-beast.com (required)
  • FTB_MODPACK_VERSION_ID — a specific version ID; leave it empty to always install the latest

How to set it up:

  1. Create/edit a server and pick Feed The Beast as the server type (under Others)
  2. Open the Mods tab and enter the FTB Modpack ID
  3. Optionally set a FTB Version ID to lock the pack to a specific version

CurseForge Files (Individual Mods)

Download specific mods/plugins from CurseForge to add to any modded server.

API Key Required

Same API key as modpacks. Get one from CurseForge for Studios.

How to Add Mods from Minepanel

  1. Go to Create Server or Edit Server (Forge, Fabric, or AUTO_CURSEFORGE)
  2. Open the Mods tab
  3. Find the CurseForge Files field (green border)
  4. Enter mod slugs separated by commas or new lines
  5. Save the server

Example input:

jei
geckolib
aquaculture

Reference Formats

FormatExampleDescription
SlugjeiLatest compatible version
Slug + File IDjei:4593548Specific version
Slug + versionjei@10.2.1.1005By partial filename
Project ID238222Using CurseForge ID
URLhttps://curseforge.com/.../jeiFrom page URL

Auto-Selection

Without a File ID, the newest compatible file for your Minecraft version is selected automatically.

Docker Compose Reference

Docker-compose examples

Basic mod list:

yaml
environment:
  CF_API_KEY: $2a$10$Iao...
  CURSEFORGE_FILES: |
    jei
    geckolib
    aquaculture

Specific versions:

yaml
environment:
  CURSEFORGE_FILES: |
    jei:4593548
    geckolib@4.2.1

Using listing file:

yaml
volumes:
  - ./cf-list:/extras:ro
environment:
  CURSEFORGE_FILES: '@/extras/cf-mods.txt'

Combining Modrinth and CurseForge

You can use both Modrinth and CurseForge Files together:

yaml
environment:
  TYPE: FABRIC
  VERSION: 1.21.4

  # Modrinth mods (preferred for performance)
  MODRINTH_PROJECTS: |
    fabric-api
    sodium
    lithium
  MODRINTH_DOWNLOAD_DEPENDENCIES: required
  # CurseForge exclusive mods
  CF_API_KEY: your_key
  CURSEFORGE_FILES: |
    some-cf-exclusive-mod
    another-cf-mod

Version Compatibility

Always ensure mods from both sources are compatible with your Minecraft version and loader type.

Plugin Management (Spigot/Paper/etc)

For plugin-based servers (Spigot, Paper, Bukkit, etc.), you can use Spiget:

yaml
environment:
  TYPE: PAPER
  VERSION: 1.21.4
  SPIGET_RESOURCES: |
    9089
    28140
    34315

Where the numbers are Spigot resource IDs from SpigotMC.

Bedrock Addons

Bedrock Edition uses behavior packs and resource packs instead of traditional mods.

Minepanel now includes an Addons tab for Bedrock servers with two sources:

  • Manual upload of .mcaddon, .mcpack, or .zip
  • CurseForge import using your configured API key

Downloaded addon files are stored under servers/<server-id>/addons/ and Minepanel syncs enabled packs into mc-data/behavior_packs/ and mc-data/resource_packs/.

When you enable an addon, Minepanel also updates:

  • worlds/<level-name>/world_behavior_packs.json
  • worlds/<level-name>/world_resource_packs.json

Understanding Bedrock Addons

TypeExtensionPurposeClient Download
Behavior Pack.mcaddonChanges game mechanicsNo
Resource Pack.mcpackChanges textures/soundsYes (prompted)

Both .mcaddon and .mcpack files are actually renamed ZIP files.

Resource Pack vs Behavior Pack

Many Bedrock projects publish the resource pack (RP) and behavior pack (BP) as separate downloads.

  • If you import only the RP, Minepanel can activate it, but gameplay logic will not exist.
  • If the addon changes mechanics, entities, scripts, UI interactions, or world logic, you usually also need the BP companion.
  • The Addons tab shows which packs were detected for each import (RP, BP, or both).

Installation Steps

1. Open the Addons Tab

Go to your Bedrock server and open Addons.

2. Choose a Source

You can:

  • Upload a local .mcaddon, .mcpack, or .zip file
  • Search CurseForge and import directly from the UI

If you use CurseForge, configure your API key first in Settings.

3. Enable the Addon

Imported addons are stored first, then you can enable or disable each one from the list.

When enabled, Minepanel:

  • Extracts and registers pack metadata from each manifest.json
  • Copies behavior packs into mc-data/behavior_packs/<uuid>/
  • Copies resource packs into mc-data/resource_packs/<uuid>/
  • Rebuilds the world pack JSON files for the active Bedrock world

4. Restart the Server

Restart the server to apply the enabled addons.

If you want clients to be forced to download enabled resource packs, also enable TEXTUREPACK_REQUIRED or set it from the Bedrock settings tab.

5. Force Resource Packs (Optional)

To require clients to download resource packs:

yaml
environment:
  TEXTUREPACK_REQUIRED: 'true'

Or set it in Minepanel's Bedrock settings tab.

Players will be prompted to download resource packs when connecting.

Addon Priority

When two addons modify the same content, their order decides which one wins. The Addons tab lets you reorder installed addons just like the pack screen in vanilla Minecraft:

  • Drag an addon by its handle, or use the up/down arrows.
  • The addon at the top of the list has the highest priority and overrides the packs below it.
  • Each card shows its current priority (#1, #2, ...).

When you change the order, Minepanel rewrites the world pack files for the active world:

  • worlds/<level-name>/world_behavior_packs.json
  • worlds/<level-name>/world_resource_packs.json

Managed addon packs are written first, in priority order. Packs you installed manually (outside the Addons tab) are preserved after them, with lower priority.

TIP

Restart the server after reordering so the new priority takes effect in-game. Priority applies to the active world only.

Example: Installing One Player Sleep

  1. Open the server's Addons tab
  2. Upload ops.mcaddon or import it from a supported source
  3. Wait for Minepanel to detect the contained behavior/resource packs
  4. Click Enable on the addon
  5. Restart the server

Troubleshooting Bedrock Addons

IssueSolution
Pack Stack - None in Bedrock logsCheck world_behavior_packs.json / world_resource_packs.json in the active world and restart after enabling addons
Addon appears enabled but has no gameplay effectVerify you imported the BP companion and not only the RP
Version errorVerify the addon contains a valid manifest.json
Resource pack not downloadingSet TEXTUREPACK_REQUIRED: "true"
Pack conflictsCheck for duplicate UUIDs
Server data was clearedMinepanel keeps downloaded addon files, but applied runtime packs are reset. Re-enable the addons you want to use again

Notes About Server Data Reset

If you use Clear server data in Minepanel:

  • mc-data/ is recreated from scratch
  • downloaded addon archives remain in servers/<server-id>/addons/
  • previously applied Bedrock addons are marked as inactive to avoid a broken "enabled but not applied" state

After a reset, go back to Addons and enable the packs you want to apply again.


Best Practices (Java Edition)

  1. Use Modrinth when possible - Generally faster and more reliable
  2. Specify versions for production servers to avoid unexpected updates
  3. Test in development before applying to production
  4. Keep API keys secure - Use environment variables, never commit them
  5. Use listing files for easier management of large mod lists
  6. Document your mods - Add comments in listing files to explain what each mod does

Troubleshooting

Mods not downloading

  • Check API key is correct
  • Verify project slugs/IDs are correct
  • Check server logs for specific errors
  • Ensure network connectivity

Version conflicts

  • Make sure all mods are compatible with your Minecraft version
  • Check mod loader compatibility (Fabric vs Forge)
  • Review dependency requirements

Missing dependencies

  • For Modrinth: Set MODRINTH_DOWNLOAD_DEPENDENCIES: required
  • For CurseForge: Manually add dependencies to your list

Next Steps

Released under the MIT License. · Anonymous, cookieless analytics (self-hosted Umami).