Unknown ❤ RESPAWN.ZAFEST.RO | VIP FREE | FREE FOR ALL ❤ 0/32
Romania XPlayZM.CSBlackDevil.COM # Zombie Plague UltimateX [ Respawn + FDL + VIP 22-12PM + POINTS] ® 18/32
Server bewerben
115 lines 7.7 KiB Markdown Source Rendered Raw Permalink History
title, excerpt, category, tags, image, read_time
title excerpt category tags image read_time
How to Install and Enable AMX Mod X Modules (modules.ini) 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. installation amxmodx, modules 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.

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 Plugin "x.amxx" failed to load: Module/Library "cstrike" required for plugin 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 name — cstrike, 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.9 or 1.10 module in a 1.8.2 install fails with Module requested a not exisitng function (1.8.2's own spelling) and shows as newer; see that error.
  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/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.
  • 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. The daily log, addons/amxmodx/logs/LYYYYMMDD.log, has no Module lines after a restart (module errors are written there, not to error_*.log).