Installing an AMX Mod X plugin is four files-and-folders decisions that people get wrong in predictable ways: the compiled plugin goes in one place, it must be registered in another, its modules must be loaded, and its config must exist. Miss any one and the plugin is silently absent — AMXX does not crash, it just skips what it cannot load. This guide is the correct, boring procedure and the exact console commands that tell you it worked.
1. Put the .amxx in the plugins directory
Compiled plugins live in exactly one place:
cstrike/addons/amxmodx/plugins/
Copy the .amxx there. If you have the source (.sma), the honest and safer path is to compile it yourself first — see sourcing files safely:
cd cstrike/addons/amxmodx/scripting ./amxxpc myplugin.sma cp compiled/myplugin.amxx ../plugins/
On Linux amxxpc is 32-bit; if it will not run, that is a missing i386 library problem, not a plugin problem.
2. Register it in plugins.ini
AMXX only loads what is listed in:
cstrike/addons/amxmodx/configs/plugins.ini
Add one line with just the filename — no path:
myplugin.amxx
A leading ; comments the line out. This is the single most common "installed but not loading" cause: the file is in plugins/ but was never added here, or the line is still commented.
3. Provide the modules the plugin needs
Most plugins depend on modules — cstrike, fun, engine, fakemeta, hamsandwich, sqlx, geoip and so on. If the plugin's source has #include <cstrike>, the cstrike module must be enabled in:
cstrike/addons/amxmodx/configs/modules.ini
Modern AMXX auto-loads most bundled modules, but not third-party ones. A plugin that needs a module you do not have fails with Plugin failed to load: Function not found. See installing AMXX modules.
4. Create the config the plugin expects
Plugins register cvars at load; you set them in a config that runs after the plugin exists. The standard file is:
cstrike/addons/amxmodx/configs/amxx.cfg
Put the plugin's cvars there, or in cstrike/server.cfg. Do not set a plugin's cvar in server.cfg if the plugin loads later than the cfg executes — for anything AMXX, prefer amxx.cfg or the plugin's own .cfg under configs/.
5. Reload without a full restart (optional)
You can load a plugin live for testing:
amxx plugins amx_plugins amxx pause myplugin.amxx amxx unpause myplugin.amxx
But a newly-added plugin needs the config re-read at map start, so the reliable way to activate a fresh install is changelevel or a restart. "It works after a map change but not now" is expected, not a bug.
Common errors
Plugin file open error— the filename inplugins.inidoes not match a file inplugins/. Check spelling and case; Linux is case-sensitive.bad loadnext to the plugin inamxx plugins— the.amxxwas compiled for a newer AMXX than you run. Recompile the.smafor your version, or upgrade AMXX.Plugin failed to load: Function not found— a required module is missing. The plugin calls a native that lives in a module you did not load.- Plugin shows
runningbut does nothing — its cvars are unset or set in a cfg that runs before it loads. Move them toamxx.cfgand verify with the cvar name in console. - Access-restricted command "you have no access" — the plugin needs an admin flag you do not hold. Check your entry in
users.ini.
Verification
Change the map, then in the server console:
amxx plugins
Find your plugin's line. It must read running. Anything else — bad load, error, debug — is a real failure, and the reason is printed above in the log at load time. Confirm the plugin's own effect (a menu, a command, a chat line) and check its cvars resolve:
amx_myplugin_enabled
If the line loads and the feature responds, the install is complete. To manage plugins in bulk from in-game, pair this with the CSB Admin Menu.
Where each piece lives — quick reference
Almost every install problem is a file in the wrong one of these four locations. Keep this table next to you:
| Item | Path under cstrike/ | Registered in |
|---|---|---|
| Compiled plugin | addons/amxmodx/plugins/*.amxx | configs/plugins.ini |
| Plugin source | addons/amxmodx/scripting/*.sma | compiled with amxxpc |
| Module (.so/.dll) | addons/amxmodx/modules/ | configs/modules.ini |
| Cvar values | configs/amxx.cfg | runs after plugins load |
| Admin list | configs/users.ini | SteamID or name+password |
The mental model that prevents most mistakes: the file in plugins/ is what runs, but plugins.ini is what decides whether it runs, modules.ini decides whether it can run, and amxx.cfg decides how it behaves. A plugin needs all four to be right at once, and AMXX will not warn you about the one you missed — it just quietly does less than you expected. When something "does nothing", check them in that order: is it in plugins/, is it listed, are its modules loaded, are its cvars set.









