--- 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 Module "cstrike" required for plugin "x.amxx" 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 was compiled for a newer AMXX version.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 "cstrike" required for plugin "x.amxx" — the .so is not in modules/. You extracted the AMXX base package but not the Counter-Strike addon.Module was compiled for a newer AMXX version — version mismatch. Modules must come from the same AMXX release as the core.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/error_*.log has no Module lines after a restart.