--- title: "How to Install and Enable AMX Mod X Modules (modules.ini)" excerpt: "How AMX Mod X modules load, what modules.ini actually controls, how to add a third-party module, and how to read amxx modules output." category: "installation" tags: "amxmodx, modules" image: "" read_time: "8 min read" ---
An AMX Mod X module is a native shared library (.so / .dll) that adds natives for Pawn plugins to call. cstrike, fakemeta, hamsandwich, csx, nvault, sqlx, geoip, ReAPI, Orpheu — all modules. A plugin (.amxx) is Pawn bytecode. Modules are the layer below. Confusing the two is why people put .so files in plugins/ and then wonder why nothing happens.
cstrike/addons/amxmodx/
├── modules/ <-- the .so / .dll files
│ ├── cstrike_amxx_i386.so
│ ├── fakemeta_amxx_i386.so
│ ├── hamsandwich_amxx_i386.so
│ └── …
└── configs/
└── modules.ini <-- which ones to load
Two mechanisms, and understanding both saves you a lot of confusion:
configs/modules.ini loads that module at startup, whether or not any plugin needs it.#include <cstrike>, its compiled .amxx records that it requires the cstrike library. AMXX will load the matching module automatically if it can find it in modules/.So a module can load even if it is not in modules.ini. The corollary matters: a module that is not on disk cannot be auto-loaded, and you get Plugin "x.amxx" failed to load: Module/Library "cstrike" required for plugin at startup. See that error.
; AMX Mod X modules ; one per line, no extension, no path fun engine fakemeta geoip sockets regex nvault cstrike csx hamsandwich ;mysql ;sqlite
Rules:
cstrike, not cstrike_amxx_i386.so. AMXX appends the platform suffix itself.; comments a line out.Module failed to load at startup, which is noisy but not fatal.The procedure is the same whether it is ReAPI, Orpheu, or something from a forum:
Module requested a not exisitng function (1.8.2's own spelling) and shows as newer; see that error.modules/:
cp reapi_amxx_i386.so /home/steam/hlds/cstrike/addons/amxmodx/modules/ chmod 644 /home/steam/hlds/cstrike/addons/amxmodx/modules/reapi_amxx_i386.so
.inc include file into scripting/include/ so you can compile plugins against it:
cp reapi.inc /home/steam/hlds/cstrike/addons/amxmodx/scripting/include/
modules.ini.amxx modules
Output looks like:
Currently loaded modules:
name version author status
[ 1] Fun 1.9.0.5258 AMXX Dev Team running
[ 2] Engine 1.9.0.5258 AMXX Dev Team running
[ 3] FakeMeta 1.9.0.5258 AMXX Dev Team running
[ 4] CStrike 1.9.0.5258 AMXX Dev Team running
[ 5] Ham Sandwich 1.9.0.5258 AMXX Dev Team running
[ 6] ReAPI 5.x s1lent running
6 modules, 6 correct
The last line is what you check. 6 modules, 6 correct is healthy. Anything less than "all correct" means at least one module is error or bad load, and the reason will be in addons/amxmodx/logs/.
Every module is 32-bit, because the whole server is 32-bit:
file addons/amxmodx/modules/cstrike_amxx_i386.so # ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV)
If you see ELF 64-bit ... x86-64, the server will refuse it with wrong ELF class: ELFCLASS64. There are no 64-bit AMXX modules; if a download gave you one, it is not for CS 1.6. See that error.
| Module | Use it for |
|---|---|
cstrike | CS-specific natives: money, team, weapons, models |
fakemeta | Direct engine/entity access; almost every serious plugin uses it |
hamsandwich | Hooking game-DLL functions (Ham_Spawn, Ham_TakeDamage) |
csx | Stats (rank, HP left, hits) — required by most stats plugins |
fun | Simple gameplay natives: health, gravity, godmode |
nvault | Flat-file key/value storage; used by shops and saved settings |
sqlx | Threaded MySQL/SQLite — see the MySQL module guide |
geoip | Country lookup from an IP |
reapi | ReGameDLL hooks — requires ReGameDLL |
Module failed to load — file missing, wrong architecture, or built for a different AMXX. See the full fix.Module/Library "cstrike" required for plugin — the .so is not in modules/. You extracted the AMXX base package but not the Counter-Strike addon.Module requested a not existing function — version mismatch: the module is newer than the core, and amxx modules shows it as newer (1.8.2 spells the message not exisitng). Modules must come from the same AMXX release as the core. See that error.modules.ini but not in amxx modules — the name is misspelled, or you added a file extension. Use the short name only..inc, or against a different version of it. Recompile with the matching include; see native not found after installing ReAPI.amxx modules ends with N modules, N correct.amxx plugins shows nothing in bad load.addons/amxmodx/logs/LYYYYMMDD.log, has no Module lines after a restart (module errors are written there, not to error_*.log).