open.mp Plugin Failed to Load? Fixes for Linux and Windows Servers
Fix open.mp plugins that will not load: a .dll on Linux, wrong legacy_plugins names, 64 bit builds, missing libraries or plugins that belong in components.
Updated Oct 7, 2026 · 5 min read
On this page
- How open.mp loads plugins
- Cause 1: A Windows .dll on a Linux server
- Cause 2: The name in legacy_plugins does not match
- Cause 3: A 64 bit build on a 32 bit server
- Cause 4: A missing system library
- Cause 5: It belongs in components, or it is loaded twice
- Cause 6: Version mismatch between include and plugin
- Quick reference
- Plugins on a hosted open.mp server
- FAQ
When an open.mp plugin fails to load, it is nearly always one of five things: a Windows .dll uploaded to a Linux server (Linux needs the .so build), a name in pawn.legacy_plugins that does not match the file exactly, a 64 bit build on the 32 bit server, a shared library the plugin depends on that is missing from the machine, or a plugin that is meant to go in components/ instead of plugins/. The server console names the plugin that failed, and the line after it usually says which of these it is.
This matters more than it seems, because many gamemodes crash or behave strangely when a plugin is missing. A "broken gamemode" after a move is often just one plugin that never loaded.

How open.mp loads plugins
open.mp has two places for native code:
| Folder | What goes there | How it loads |
|---|---|---|
plugins/ |
Classic SA-MP plugins, like streamer, mysql, crashdetect, PawnPlus |
Only if listed in pawn.legacy_plugins in config.json |
components/ |
open.mp components, including current Pawn.CMD, Pawn.RakNet and recent sscanf builds |
Everything in the folder loads on start |
A healthy config.json block:
"pawn": {
"main_scripts": ["mygamemode 1"],
"side_scripts": [],
"legacy_plugins": ["crashdetect", "mysql", "streamer"]
}
Cause 1: A Windows .dll on a Linux server
This is the classic. SA-MP and open.mp plugins are compiled per platform. A Linux server cannot load a .dll, and a Windows server cannot load a .so. If you developed on Windows and moved to a Linux host, every plugin needs to be swapped for its Linux release.
Fix: download the Linux build from each plugin's releases page. The file you want ends in .so, often in an archive named for Linux. Upload it to plugins/ (or components/) and delete the .dll.
Cause 2: The name in legacy_plugins does not match
legacy_plugins takes the file name without the extension. The server adds .so or .dll itself.
| File in plugins/ | Correct entry | Wrong entries |
|---|---|---|
streamer.so |
"streamer" |
"streamer.so", "Streamer" |
mysql.so |
"mysql" |
"mysql_static" (unless that is the file name) |
crashdetect.so |
"crashdetect" |
"plugins/crashdetect" |
Linux file names are case sensitive, so Streamer and streamer are different files. Rename the file or fix the entry so they match exactly. Some releases ship with names like mysql_static.so. Either rename the file to mysql.so or list "mysql_static".
Cause 3: A 64 bit build on a 32 bit server
The open.mp Linux server is a 32 bit (x86) program, like SA-MP before it. It can only load 32 bit plugins. Most SA-MP plugin releases are 32 bit for exactly this reason, but if you compiled a plugin yourself on a 64 bit system, or grabbed the wrong archive, the loader rejects it. On Linux the error often mentions wrong ELF class.
Fix: use the official release or compile with 32 bit flags (-m32). You can check a file with:
file plugins/streamer.so
You want to see ELF 32-bit in the output.
Cause 4: A missing system library
Some plugins depend on shared libraries that must exist on the machine: MySQL plugins on SSL and MySQL client libraries, others on a recent C++ runtime. When one is missing, the error usually reads cannot open shared object file followed by the library's name, or complains about a GLIBC or GLIBCXX version.
Fix options, in order of preference:
- Use the plugin's static build if it has one. Static builds bundle their dependencies.
- If you run your own Linux machine, install the 32 bit version of the missing library (on Debian and Ubuntu, packages ending in
:i386). - Use
ldd plugins/mysql.soto list exactly which libraries are missing.
On a managed host you usually cannot install system packages, so the static build is the way to go.
Cause 5: It belongs in components, or it is loaded twice
Plugins that have been rebuilt as open.mp components do not go in legacy_plugins. The open.mp docs name Pawn.CMD, Pawn.RakNet, sampvoice, discord-connector and recent sscanf releases as components. Put those in components/ and remove them from legacy_plugins.
Do not keep two copies. An old sscanf.so in plugins/ listed in legacy_plugins plus a new sscanf component is asking for trouble. Pick the component and remove the legacy copy.
Cause 6: Version mismatch between include and plugin
A plugin can load fine and still break things if your gamemode was compiled with a different version of its include. Streamer and sscanf are frequent offenders: the console may warn about a version mismatch, or natives behave oddly. Recompile the gamemode with the include from the same release as the plugin binary.

Quick reference
| Symptom | Fix |
|---|---|
| Server cannot find the plugin file | Name in legacy_plugins differs from the file, or the file is not in plugins/ |
| File is found but will not load | .dll on Linux, .so on Windows |
wrong ELF class |
64 bit build. Use the 32 bit release |
cannot open shared object file |
Missing system library. Use the static build |
| Loaded, but natives fail | Include and plugin versions do not match |
Plugins on a hosted open.mp server
A GamezServers open.mp server runs the Linux build, so upload .so files, preferably static builds, to plugins/ or components/ with the file manager or SFTP, and edit config.json in place. The live console shows each plugin loading the moment you restart, so you can fix one entry, restart and check without guessing. Take a one click backup before a plugin overhaul so you can roll back if a new build misbehaves. If you are bringing a whole SA-MP server over, our SA-MP to open.mp migration guide covers the full move, and the open.mp setup guide covers config.json from scratch.
FAQ
Where do plugins go on an open.mp server?
Classic SA-MP plugins go in plugins/ and must be listed in pawn.legacy_plugins. open.mp components go in components/ and load automatically.
Do I include .so in legacy_plugins?
No. List the name only, such as "streamer". The server adds the extension for the platform.
Can I use SA-MP plugins on open.mp?
Yes. Most SA-MP plugins load as legacy plugins. Some have newer component builds, which are the better choice.
Why does my plugin work on Windows but not Linux?
You need the Linux .so build of that plugin, and it must be 32 bit. Windows .dll files cannot load on Linux.
Skip the setup. Your own open.mp server.
Then $4.99/mo. Just trying it? $1.25 for 3 days