Fix "ShopUI plugin requires missing dependency: ImageLibrary" in Oxide
The plugin header declares a dependency that Oxide cannot find in the loaded plugin list, so Oxide refuses to initialize ShopUI. Install the missing plugin (or remove the dependency declaration if it is not actually used) and reload.
ShopUI plugin requires missing dependency: ImageLibrary
Why it happens
Oxide reads the // Requires: ImageLibrary line in the file header before it initializes the plugin. Every name on that line must match a plugin that is already loaded on the server — Oxide looks up the plugin title, not a .cs file. The message appears when that lookup returns nothing: the dependency plugin is not in oxide/plugins (or carbon/plugins on Carbon), its file failed to compile so it never loaded, or the name in the comment has a typo (Image Library, Imagelibrary). Note that Oxide only checks that the plugin exists when the dependent plugin loads; it does not validate that the dependency's version is the one you expected, and it does not auto-install anything. If the dependency finishes loading after ShopUI, ShopUI will not initialize retroactively on that boot.
How to fix it
- Check what is loaded: run
oxide.pluginsin the console and confirm the dependency is in the list under its exact title. - If it is missing, put the dependency
.csfile inoxide/plugins(orcarbon/plugins) and runoxide.reload ImageLibrary. Watch the console forError while compiling ImageLibrary— a dependency that fails to compile stays missing. - If the name in the header is different from the loaded title, correct the
// Requires:line so it matches exactly. - If the plugin does not need the dependency at all, delete the
// Requires:line. - Run
oxide.reload ShopUI. A clean load printsLoaded plugin ShopUI v... by ...with no "requires missing dependency" line. If the plugin still does nothing useful, check its[PluginReference]fields next.
Before and after
// Requires: ImageLibrary
using System.Collections.Generic;
using Oxide.Core.Plugins;
using UnityEngine;
namespace Oxide.Plugins
{
[Info("ShopUI", "RustPluginGenerator", "1.0.0")]
[Description("Opens a small shop panel in chat for players")]
public class ShopUI : RustPlugin
{
[PluginReference] private Plugin ImageLibrary;
[ChatCommand("shop")]
private void CmdShop(BasePlayer player, string command, string[] args)
{
if (player == null) return;
string icon = ImageLibrary != null ? ImageLibrary.Call<string>("GetImage", "scrap") : null;
if (string.IsNullOrEmpty(icon))
{
SendReply(player, "Shop icons are not available right now.");
return;
}
SendReply(player, "Shop opened. Image: " + icon);
}
}
}using Oxide.Core.Plugins;
namespace Oxide.Plugins
{
[Info("ShopUI", "RustPluginGenerator", "1.0.0")]
[Description("Opens a small shop panel in chat for players")]
public class ShopUI : RustPlugin
{
[PluginReference] private Plugin ImageLibrary;
[ChatCommand("shop")]
private void CmdShop(BasePlayer player, string command, string[] args)
{
if (player == null) return;
if (ImageLibrary == null)
{
SendReply(player, "The image library plugin is not loaded, shop icons are unavailable.");
return;
}
string icon = ImageLibrary.Call<string>("GetImage", "scrap");
if (string.IsNullOrEmpty(icon))
{
SendReply(player, "Shop icons are not available right now.");
return;
}
SendReply(player, "Shop opened. Image: " + icon);
}
}
}FAQ
Does Oxide download the missing plugin automatically?
No. Oxide only checks that the dependency is loaded before it initializes your plugin. You must place the dependency file in the plugins folder yourself and make sure it compiles and loads.
The dependency is in the folder but still reported missing. Why?
A file in oxide/plugins is not a loaded plugin until it compiles. Scroll up in the console for Error while compiling <Dependency>. Fix that error first, reload the dependency, then reload the dependent plugin.
Should I list ImageLibrary in // Requires even when using [PluginReference]?
Only if you want Oxide to refuse loading when the dependency is absent. [PluginReference] alone lets the plugin load and Call returns null when the plugin is missing, which you must null-check. The // Requires: line turns a soft dependency into a hard one.
Carbon shows the same message. Same fix?
Yes. Carbon loads Oxide plugins and honors the // Requires: header. Put the dependency in carbon/plugins (Carbon also reads the oxide folder layout in mixed setups) and reload both plugins.
Different error?
Paste the full console output and get the cause and a fix in plain English.
Open the error explainerSkip the debugging
Generated plugins are compiled before you get them, and compiler errors are fixed automatically.
Generate a plugin2 free plugins a month, no card.
Last updated Oct 26, 2026.
Get plugins that compile first time
Generate