You run meta list and a plugin sits there as
bad load
instead of RUN. "Bad load" is Metamod telling you it found the file, tried to load it as a Metamod plugin, and the operating system or Metamod itself rejected it. It is not "file missing" (that is file open error) — the file is there, but it is the wrong kind of file, the wrong architecture, or built against an incompatible interface. Here is how to tell which.
1. Read the exact status
Get the full picture, not just the summary line:
meta list
Note the plugin's status and the path Metamod loaded it from. The path matters — a wrong or stale path is a common cause, and Metamod prints exactly what it tried.
2. Wrong architecture (the most common cause)
Everything in a CS 1.6 server is 32-bit. A 64-bit .so/.dll loads as bad load every time. Check it on Linux:
file addons/amxmodx/dlls/amxmodx_mm_i386.so
It must report:
ELF 32-bit LSB shared object, Intel 80386
If it says x86-64, you downloaded or built the wrong file. Get the 32-bit build. A missing 32-bit dependency has the same effect — the loader cannot resolve the library, so Metamod reports the load as bad. Check what it needs:
ldd addons/amxmodx/dlls/amxmodx_mm_i386.so
Any not found line is a 32-bit library you must install; see the 32-bit library setup.
3. ABI / version mismatch after an engine switch
This is the classic post-migration failure: you moved to ReHLDS and now old Metamod plugins show bad load. Classic Metamod-P and very old plugins predate the ReHLDS/Metamod-r ABI. The fix is to move to Metamod-r and use plugin builds compatible with it. If you are unsure which loader you have, Metamod-r vs Metamod-P explains how to tell and why it matters.
4. Wrong platform tag or path in plugins.ini
Metamod's plugin list is addons/metamod/plugins.ini. Each line is tagged by platform:
linux addons/amxmodx/dlls/amxmodx_mm_i386.so win32 addons\amxmodx\dlls\amxmodx_mm.dll
Two failure modes here: a config copied from a Windows server lists .dll paths that do not exist on Linux (and vice versa), and a line with the right platform tag but a wrong or old filename. On Linux the file is case-sensitive — amxmodx_mm_i386.so is not AMXModX_mm_i386.so.
5. It is not actually a Metamod plugin
People sometimes list an AMXX plugin (.amxx) or a module in metamod/plugins.ini. Only Metamod plugins (AMXX itself, Reunion, ReAPI, etc.) belong there. An .amxx goes in AMXX's plugins.ini, not Metamod's — see installing an AMXX plugin. A file that is not a Metamod plugin loads as bad load.
Common errors
bad load— wrong architecture, missing 32-bit dependency, ABI mismatch, or a non-Metamod file. Work through the sections above.file open error(different status) — the path inplugins.inidoes not point at an existing file. Fix the path, not the binary.- Plugin loads on Windows,
bad loadon Linux — you kept thewin32path or copied a.dll. Use thelinuxline and the.so. - All plugins
bad loadafter moving to ReHLDS — old Metamod. Switch to Metamod-r.
Verification
After the fix, restart or change the map and re-check:
meta list
Every plugin must read RUN. For AMXX specifically, confirm the chain continued to load:
amxx version amxx plugins
If Metamod shows AMXX as RUN and amxx version answers, the loader problem is gone. A plugin that still reports bad load after you have confirmed 32-bit architecture, resolved dependencies and correct plugins.ini tagging is built against an interface your Metamod does not provide — replace it with a build made for your Metamod-r version.
Decision table: which cause is yours
Every bad load is one of a small set of causes. Run file and ldd once and this table resolves it:
| What you observe | Cause | Fix |
|---|---|---|
file says x86-64 | Wrong architecture | Get the 32-bit (i386) build |
ldd shows not found | Missing 32-bit library | Install lib32gcc-s1 / lib32stdc++6 / libc6:i386 |
| 32-bit, deps resolve, still bad load | ABI mismatch | Move to Metamod-r + matching plugin build |
| All plugins bad load after engine swap | Old Metamod vs ReHLDS | Switch to Metamod-r |
| Only after copying a config from another box | Wrong platform tag / path | Fix the win32/linux line in plugins.ini |
The reason this matters: "bad load" reads like one error but is really five, and people waste hours reinstalling a perfectly good plugin when the actual fault was a 64-bit download or a win32 line on a Linux box. Two commands — file and ldd — eliminate the two most common causes in under a minute, and only when both pass are you actually looking at an interface-version problem that needs a different build of the plugin itself.









