# A mod needs another mod that is not installed

The mod loader stopped the server because a mod depends on another mod, or on a version of Minecraft or the loader, that the server does not have.

- Code: `mod_missing_dependency`
- Severity: fatal
- Category: Mods
- Server types: Forge, NeoForge, Fabric, Quilt
- Page: https://failures.perland.online/failures/mod_missing_dependency/

## Example log

```text
[09:12:41] [main/ERROR] [ne.mi.fm.lo.ModSorter/LOADING]: Missing or unsupported mandatory dependencies:
	Mod ID: 'balm', Requested by: 'waystones', Expected range: '[7.3.0,)', Actual version: '[MISSING]'
	Mod ID: 'geckolib', Requested by: 'mowziesmobs', Expected range: '[4.4.2,)', Actual version: '[MISSING]'
```

## Parameters

| Parameter | Meaning |
| --- | --- |
| `mod` | The mod that needs the dependency, as the loader names it (its mod id, or its display name on Quilt). |
| `missing` | The first dependency the loader lists as not installed; when nothing is missing, the first one installed in a version the mod refuses (often Minecraft itself). |
| `dependencies` | Every dependency of that kind the log lists, sorted and joined by commas; a very long list is cut short. |

## Log lines this page covers

- `Missing or unsupported mandatory dependencies:`
- `Actual version: '[MISSING]'`
- `Error during pre-loading phase: Mod <mod> requires <dependency>`
- `Currently, <dependency> is not installed`
- `Loading errors encountered:`
- `requires any version of <dependency>, which is missing!`
- `but only the wrong version is present`
- `but only wrong versions are present`

## What it means

Every mod declares what it needs to run: other mods (a library such as Architectury, Cloth Config or GeckoLib), a range of Minecraft versions and a range of loader versions. Before any mod starts, the loader checks that list. When something is missing, or present in a version the mod does not accept, the loader refuses to go on and the server stops before the world loads.

The loader usually lists every problem at once. The diagnosis reports them as one issue per run, names the first dependency that is not installed, and lists the rest. A dependency that is installed in the wrong version is named only when nothing is missing outright: the loader often adds Minecraft in a refused version next to the libraries a mod lacks.

## Why it happens

- **A library was not added.** Many mods ship their shared code as a separate mod, and the modpack or the `mods` folder has the mod but not its library.
- **A mod was removed** that another mod still needs.
- **Versions do not fit.** The dependency is installed, but older or newer than the range the mod asks for, often after updating one mod and not the other.
- **The mod is made for another game version.** It needs a Minecraft or loader version the server does not run, so the dependency named is `minecraft`, `forge`, `neoforge` or `fabricloader`.

## How to fix

1. Read the issue's `missing` and `mod`: the first is what to add, the second is what needs it. The full list is in `dependencies` and in the log.
2. Add each missing mod in a version made for the server's Minecraft version and loader. The mod's page (Modrinth or CurseForge) lists its required dependencies.
3. If a dependency is installed but in the wrong version, update or downgrade it to fit the range the log prints (`Expected range` on Forge and NeoForge, `requires version ...` on Fabric and Quilt).
4. If the dependency is `minecraft` or the loader itself, use the version of the mod made for your Minecraft version, or remove that mod.
5. **Forge and NeoForge:** the ranges use Maven notation: `[9.1,)` means 9.1 or newer, `[1.20,1.21)` means 1.20 up to, but not including, 1.21.
6. **Fabric and Quilt:** the loader prints "A potential solution has been determined" above the details, with the installs or replacements it suggests.

## In Perland

The issue appears in the server's Diagnosis tab with the mod and the dependency it lacks. On a server whose mods come from a modpack, the fix button leads to the server's Sources, and Mod Studio is where you add, update or remove the pack's mods; it adds a mod's required dependencies for you. Otherwise, add the missing jar to the `mods` folder in the Files tab.

## References

- [Forge documentation: mod files and dependencies](https://docs.minecraftforge.net/en/latest/gettingstarted/modfiles/)
- [NeoForge documentation: mod files](https://docs.neoforged.net/docs/gettingstarted/modfiles)
- [Fabric wiki: fabric.mod.json (`depends`)](https://wiki.fabricmc.net/documentation:fabric_mod_json)
