How to Install and Enable AMX Mod X Modules (modules.ini)

March 11, 2026 Daemon666 8 min read 2 vistas

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.

Where modules live

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

How modules actually get loaded

Two mechanisms, and understanding both saves you a lot of confusion:

  1. Explicit — a line in configs/modules.ini loads that module at startup, whether or not any plugin needs it.
  2. On demand — when a plugin declares #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.

modules.ini format

; AMX Mod X modules
; one per line, no extension, no path
fun
engine
fakemeta
geoip
sockets
regex
nvault
cstrike
csx
hamsandwich
;mysql
;sqlite

Rules:

  • Write the short namecstrike, not cstrike_amxx_i386.so. AMXX appends the platform suffix itself.
  • ; comments a line out.
  • Order does not matter.
  • Listing a module whose file is missing gives Module failed to load at startup, which is noisy but not fatal.

Installing a third-party module

The procedure is the same whether it is ReAPI, Orpheu, or something from a forum:

  1. Get a build for your AMXX version and platform. A 1.10 module in a 1.9 install fails with Module was compiled for a newer AMXX version.
  2. Copy it into 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
  3. Copy its .inc include file into scripting/include/ so you can compile plugins against it:
    cp reapi.inc /home/steam/hlds/cstrike/addons/amxmodx/scripting/include/
  4. Optionally add its short name to modules.ini.
  5. Restart the server (modules are loaded at startup — a map change is not enough).

Verify with amxx modules

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/.

The 32-bit rule

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.

Which modules you actually need

ModuleUse it for
cstrikeCS-specific natives: money, team, weapons, models
fakemetaDirect engine/entity access; almost every serious plugin uses it
hamsandwichHooking game-DLL functions (Ham_Spawn, Ham_TakeDamage)
csxStats (rank, HP left, hits) — required by most stats plugins
funSimple gameplay natives: health, gravity, godmode
nvaultFlat-file key/value storage; used by shops and saved settings
sqlxThreaded MySQL/SQLite — see the MySQL module guide
geoipCountry lookup from an IP
reapiReGameDLL hooks — requires ReGameDLL

Common errors

  • 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.
  • Module listed in modules.ini but not in amxx modules — the name is misspelled, or you added a file extension. Use the short name only.
  • Module loads but the plugin still says the native is missing — the plugin was compiled without the module's .inc, or against a different version of it. Recompile with the matching include; see native not found after installing ReAPI.

Verification

  1. amxx modules ends with N modules, N correct.
  2. amxx plugins shows nothing in bad load.
  3. addons/amxmodx/logs/error_*.log has no Module lines after a restart.
Colaboradores: Daemon666 ✦
Compartir: