Adding mods
Mods change the game itself — new biomes, new mobs, performance rewrites, full tech trees. They run on Fabric, Forge, NeoForge and Quilt, and unlike plugins they must be installed on every player's client too. The Game Panel ships a built-in Modrinth browser for one-click installs; this guide covers the whole flow and the client-side bits that trip up first-timers.
Mods vs plugins — start here
Mods and plugins look similar in the panel but behave very differently. Pick the right one before you install anything:
- Mods run on a modded loader — Fabric, Forge, NeoForge or Quilt. They change actual game logic (blocks, items, world generation) and every player must have the same mods on their client or they can't join. JARs go in the
/modsfolder. - Plugins run on Paper / Spigot / Purpur / Folia. They're server-side only — vanilla clients can join without any setup. JARs go in the
/pluginsfolder. See Adding plugins.
If your server runs Paper but you want mods like Sodium or Create, you have two options: switch the engine to Fabric/NeoForge (see Changing version), or use a hybrid like Arclight/Mohist that runs both at once.
Open the console and type version. The reply tells you. If it says Fabric, Forge, NeoForge or Quilt, you're in the right place. If it says Paper, Spigot or Purpur, you want plugins instead.
Opening the Mods tab
Sign in to the Game Panel, open your server, and click Minecraft Mods in the left sidebar. You'll see a grid of mod cards with a filter row above:
- Provider —
Modrinth. The open-source marketplace; covers Fabric, Forge, NeoForge and Quilt content. - Per page — how many cards per page. 12 by default; bump to 50 if you want to scroll less.
- All Versions — filter by Minecraft version (e.g.
1.21.1). Set this to your server's MC version before searching. - All Loaders — filter by mod loader. Set this to your server's loader. Otherwise the list will show mods that won't load.
- Sort by Relevance — Relevance, Downloads, Follows, Newest, Recently updated. Downloads is a good quality proxy; Recently updated helps avoid abandoned mods.
- Search mods… — free text. Try
sodium,create,jei,xaero.
Mods are extremely loader- and version-specific. A NeoForge 1.21 mod will not load on a NeoForge 1.20.1 server, and a Fabric mod won't load on NeoForge at all. Filter both before searching and you'll only see things that actually work.
Reading a mod card
Each card surfaces the four numbers that matter at a glance:
- Icon & name — clicks through to the Modrinth page for the full readme.
- Author — By [name]. Trusted names like jellysquid3 (Sodium/Lithium), modmuss50 (Fabric API), shedaniel, mezz (JEI), thexaero are good signals.
- Tagline — one-line description.
- Downloads () — cumulative across all builds.
50M+means battle-tested. - Likes () — community endorsement.
- Last updated — anything older than 6 months on a recent MC version is risky. Modding APIs move fast.
The screenshot above shows the typical "client mod stack" you'll see when filtering by Fabric/NeoForge: Fabric API, Cloth Config API, FerriteCore, Lithium, YetAnotherConfigLib, Fabric Language Kotlin, plus utility mods like Xaero's Minimap, JEI and AppleSkin.
API and library mods — install these first
Most gameplay mods depend on at least one of these. They do nothing on their own — they're plumbing — but the mods you actually want will fail to load without them. Install them up front:
- Fabric API (Fabric) — base hooks that almost every Fabric mod needs.
- Fabric Language Kotlin (Fabric) — only required if a mod is written in Kotlin; install if a mod asks.
- Cloth Config API (Fabric/Forge/NeoForge) — in-game config screens for mods that use it.
- YetAnotherConfigLib (YACL) (Fabric/Forge/NeoForge) — same idea, used by many newer mods.
- Architectury API (Fabric/Forge/NeoForge) — compatibility layer for mods that ship on multiple loaders from a single codebase.
- Forge Config API Port (Fabric) — lets Fabric-side mods read Forge-style config files.
If a mod's Modrinth page lists "Required dependencies", install those first or the server will crash on startup with a missing dependency error.
Installing a mod
Click the install icon on a card. A modal opens with the mod's details and a version dropdown. Using Cloth Config API as the example:
Install Cloth Config API [ × ]
[icon] Cloth Config API
Configuration Library for Minecraft Mods
121.1M downloads · Updated about 2 months ago
VERSION
[ [NeoForge 26.1] v26.1.154 v ]
Select the version of the mod you want to install.
[ Cancel ] [ Install Mod ]
Reading the version dropdown
Each row follows the pattern [Loader MC-version] vMod-version. [NeoForge 26.1] v26.1.154 means "build 26.1.154 of Cloth Config API for NeoForge running Minecraft 1.21." You'll also see entries tagged Fabric, Forge, Quilt. The bracketed prefix must match your server's loader and MC version exactly.
Picking the right build
- Newest release first. The dropdown defaults to the latest stable build for your filtered loader/version.
- Don't mix MC versions. A
[NeoForge 26.1]build is for MC 1.21 — it will not load on a 1.20.1 server. Stick to builds tagged for your exact MC version. - Skip betas / alphas / release-candidates unless you're testing on a staging server. Pre-release builds frequently ship bugs that corrupt worlds.
- Match the dependency chain. If you install Sodium for MC 1.21.4, install Fabric API for MC 1.21.4 as well — not 1.21 or 1.21.1.
Hitting Install Mod
Press Install Mod. The modal closes and the panel:
- Downloads the JAR from Modrinth's CDN.
- Drops it into
/modson your server. - Shows a toast notification confirming success.
The JAR is on disk, but the server is still running with the old set. Mods cannot be hot-loaded — you must restart the server for the new mod to take effect. There is no reload equivalent for mod loaders.
The other half: installing on the client
Plugins are invisible to players — mods are not. Almost every mod (anything that adds blocks, items, recipes, mobs, or world gen) must be installed on each player's client too, with the exact same versions as the server. If a player's mod list doesn't match, they'll get a "Disconnected: missing mod 'X'" or "mismatched mod set" error.
Distributing the mod list
- Install your mods via the panel as above. Make a note of the loader, MC version and every mod with its build number.
- Tell players to install the same mod loader (Fabric Installer from fabricmc.net, NeoForge installer from neoforged.net, the Forge installer from files.minecraftforge.net) for the matching MC version.
- Have them put the same mod JARs in their
.minecraft/mods/folder. - Launch with the modded profile in the Minecraft launcher.
Hand-distributing a folder of JARs gets old fast and is the #1 source of "wrong mod version" disconnects. Use Modrinth App, Prism Launcher or CurseForge to package the same mod list as a single shareable instance — players install it in one click. For larger packs, see Installing a modpack.
Server-side-only mods
Some mods are explicitly marked server-side only on their Modrinth page — they don't change anything the client sees and players can join with a vanilla client. Common examples:
- Lithium — game logic optimisations, server-only.
- FerriteCore — memory optimisation, can be either side.
- Krypton — networking optimisations, server-only.
- ServerCore — performance and admin utilities, server-only.
Look for "Environment: Server" on the mod's Modrinth page. If it lists both, install on both for compatibility.
After installing
- Open the dashboard.
- Click Restart.
- Watch the console — modded startups are slower than vanilla. Loading 50+ mods can take 30–60 seconds on a small server, longer on big modpacks.
[INFO] Loading 14 mods:
[INFO] - fabric-api 0.110.0+1.21.4
[INFO] - cloth-config 17.0.144
[INFO] - lithium 0.14.3
[INFO] - ferritecore 7.1.1
[INFO] - sodium 0.6.5
[INFO] ...
[INFO] Done (12.847s)! For help, type "help"
Most mods drop a config file in /config/<modname>.toml or /config/<modname>-common.toml on first run. Edit via Files, save, then restart again to apply changes.
Updating a mod
- Take a backup. Some mods change save data formats between versions and downgrades are rarely supported.
- Stop the server.
- Open Files →
/mods→ delete the old JAR. Never leave two versions of the same mod in/mods— startup will crash. - Go to Minecraft Mods, find the mod, hit install, pick the newer build.
- Tell every player to update their client copy to the same new build.
- Start the server.
On a 100+ mod build, updating everything at once turns crash debugging into a needle-in-a-haystack problem. Update one mod, restart, check logs, then move on. Tedious — but you'll find the broken one in minutes instead of hours.
Removing a mod
- Stop the server and warn players to remove the same mod client-side.
- Open Files →
/mods. - Delete the mod's JAR.
- (Optional) Delete its file in
/config/if you won't want it back. - Start the server.
If a mod added blocks or items that exist in your world, removing it can leave "missing" blocks (the world will delete them on load) and crash on item NBT it no longer understands. Back up before pruning, and prefer to disable a mod in its config rather than uninstall when you're unsure.
Installing a mod manually
If the mod lives on CurseForge, GitHub Releases, the mod's own site, or it's a custom build the browser doesn't index — grab the JAR and upload it yourself:
- Download the correct JAR — match your loader, MC version and any dependencies.
- Open Files →
/mods. - Click Upload and drop the JAR in. For files over 100 MB, use SFTP — see File manager & SFTP.
- Restart the server.
Common issues
Mod X requires Fabric Loader >= Y. Your loader version is too old for that mod. Update the loader (in Version pick a newer Fabric build) or pick an older mod build.Missing or unsupported mandatory dependencies. Read the list — install each missing dependency (often Fabric API, Architectury, Cloth Config) with matching loader and MC version.Duplicate modon startup. Two versions of the same JAR in/mods. Delete the older one.java.lang.NoSuchMethodErrorin the console. Two mods that expect different versions of a shared library. Usually fixed by aligning their MC versions; check changelogs for compatibility notes.- Players get "You are missing mod 'X'" when joining. Their client's mod list doesn't match the server. Re-share the exact set including build numbers.
- Server starts fine but TPS is awful. Run
/forge tps(Forge/NeoForge) or use the Spark profiler mod (Fabric). Heavy world-gen mods and complex tech mods are the usual suspects. - OutOfMemoryError on startup. Big modpacks need RAM. A 100+ mod build often needs 6–8 GB; upgrade your plan if you're below that.
Still stuck? Open a ticket with the last 200 lines of your console (the part with the crash report or stack trace) and we'll dig in.