# A plugin needs another plugin that is not installed

The server or proxy skipped a plugin because a plugin it depends on is missing, so that plugin and its commands are not available.

- Code: `plugin_missing_dependency`
- Severity: error
- Category: Plugins
- Server types: Paper, Spigot, Bukkit, Velocity, BungeeCord, Waterfall
- Page: https://failures.perland.online/failures/plugin_missing_dependency/

## Example log

```text
[09:21:44 INFO]: [bootstrap] Loading Paper 1.21.1-130-main@4f2a6c1 for Minecraft 1.21.1
[09:21:47 ERROR]: [ModernPluginLoadingStrategy] Could not load 'plugins/ChestShopPlus.jar' in 'plugins'
org.bukkit.plugin.UnknownDependencyException: Unknown/missing dependency plugins: [Vault]. Please download and install these plugins to run 'ChestShopPlus'.
    at io.papermc.paper.plugin.entrypoint.strategy.modern.ModernPluginLoadingStrategy.loadProviders(ModernPluginLoadingStrategy.java:82) ~[paper-1.21.1.jar:1.21.1-130-4f2a6c1]
    at io.papermc.paper.plugin.storage.SimpleProviderStorage.enter(SimpleProviderStorage.java:38) ~[paper-1.21.1.jar:1.21.1-130-4f2a6c1]
```

## Parameters

| Parameter | Meaning |
| --- | --- |
| `missing` | The plugin or plugins that are needed and not installed, as the log lists them (several are separated by commas; Velocity names them by their lower-case ids). |
| `plugin` | The plugin that needs them. Absent on older Bukkit and Spigot servers, whose error names only the missing plugin. |

## Log lines this page covers

- `UnknownDependencyException: Unknown/missing dependency plugins: [...]. Please download and install these plugins to run '...'`
- `org.bukkit.plugin.UnknownDependencyException: ...`
- `Can't load plugin ... due to missing dependency ...`
- `... (required by ...) is unavailable`

## What it means

Many plugins are built on top of other plugins: an economy shop needs Vault, a protection add-on needs WorldGuard, a chat plugin may need LuckPerms. A plugin lists these hard dependencies in its `plugin.yml` (`depend:`), or in `velocity-plugin.json` or `bungee.yml` on a proxy.

When the server starts, it checks that every dependency is in the `plugins` folder. If one is missing, it does not load the plugin that needs it. The rest of the server starts normally, but that plugin, its commands and its features are gone until the dependency is installed.

## Why it happens

- **The dependency was never installed.** A plugin's page usually says what it needs, and it is easy to miss.
- **The dependency was removed.** Deleting a plugin that others rely on breaks them at the next start.
- **The dependency failed to load itself.** If the needed plugin is in the folder but could not be loaded (a damaged jar, a build for another server), it counts as missing. Look for a separate load error about it in the same log.
- **The wrong edition of the dependency.** A Velocity or BungeeCord plugin needs the proxy edition of its dependency, not the one for Paper.

## How to fix

1. Read the names in the error: the plugin that was skipped and the one it needs.
2. Download the missing plugin from its official page, in the build for your server software and Minecraft version, and put the jar in the `plugins` folder.
3. Restart the server. A plugin added while the server runs is not loaded until the next start.
4. If you do not need the plugin that was skipped, removing it is also a fix.
5. If the dependency is already installed, search the log for an error about the dependency itself and fix that first.
6. **Proxies:** install the dependency on the proxy, in its Velocity or BungeeCord edition. Installing it on the backend servers does not help a proxy plugin.

## In Perland

The issue appears in the server's Diagnosis tab with the plugin that was skipped and the one it needs. Plugin Studio adds plugins from Modrinth, Hangar or an uploaded jar; for a plugin from a catalog it adds the required dependencies along with it, and it warns when a plugin needs one that nothing provides. You can also upload a jar to the `plugins` folder in the Files tab and restart the server.

## References

- [Paper documentation: adding plugins](https://docs.papermc.io/paper/adding-plugins)
- [Paper documentation: plugin.yml (`depend`)](https://docs.papermc.io/paper/dev/plugin-yml)
