Powerful plugin framework for Counter-Strike servers
| Supported Games: | Counter-Strike 1.6, CS:Source, CS:GO (limited) |
| Language: | Pawn scripting (.sma source, .amxx compiled) |
| Requirement: | MetaMod must be installed first |
| Admin System: | users.ini file-based or database |
| Latest Version: | 1.10+ (actively maintained) |
| Website: | amxmodx.org |
| Forum: | forums.alliedmods.net |
AMX Mod X (AMXX) is a powerful server-side modification framework for Half-Life 1 engine games, particularly Counter-Strike. It allows server administrators to add custom functionality through plugins written in Pawn scripting language.
| Game | Support Level | Notes |
|---|---|---|
| Counter-Strike 1.6 | Full Support | Best compatibility, most plugins available |
| CS:Source | Partial Support | Works but SourceMod preferred |
| CS:GO | Limited | SourceMod strongly recommended |
| Day of Defeat | Full Support | HL1 engine, full compatibility |
| TFC, NS, TS | Full Support | All HL1 mods supported |
Critical: MetaMod must be installed before AMX Mod X!
# Download MetaMod from metamod.org
wget https://www.metamod.org/files/metamod-1.21-am.tar.gz
tar -xzf metamod-1.21-am.tar.gz
# Copy to server (Linux)
cp metamod.so /path/to/cstrike/addons/metamod/dlls/
# Create metamod plugin config
mkdir -p /path/to/cstrike/addons/metamod
echo 'linux addons/metamod/dlls/metamod.so' > /path/to/cstrike/addons/metamod/metamod.so
# Update liblist.gam (CS 1.6 only)
# Replace: gamedll_linux "dlls/cs.so"
# With: gamedll_linux "addons/metamod/dlls/metamod.so"
# Download Windows version
# Extract metamod.dll to cstrike\addons\metamod\dlls\
# Edit liblist.gam:
# Replace: gamedll "dlls\mp.dll"
# With: gamedll "addons\metamod\dlls\metamod.dll"
# Download latest AMXX from amxmodx.org
cd /tmp
wget https://www.amxmodx.org/amxxdrop/1.10/amxmodx-1.10.0-git5467-base-linux.tar.gz
wget https://www.amxmodx.org/amxxdrop/1.10/amxmodx-1.10.0-git5467-cstrike-linux.tar.gz
# Extract to server root
cd /path/to/cstrike
tar -xzf /tmp/amxmodx-1.10.0-git5467-base-linux.tar.gz
tar -xzf /tmp/amxmodx-1.10.0-git5467-cstrike-linux.tar.gz
# Set permissions
chmod +x addons/amxmodx/dlls/amxmodx_mm_i386.so
# AMX Mod X automatically registers with MetaMod
# Download Windows packages:
# - amxmodx-1.10.0-git5467-base-windows.zip
# - amxmodx-1.10.0-git5467-cstrike-windows.zip
# Extract both to cstrike\ folder
# Folder structure should be:
# cstrike\
# addons\
# amxmodx\
# configs\
# dlls\
# plugins\
# scripting\
# Start server and check console for:
# "AMX Mod X version X.X.X loaded"
# In-game, type in console:
amx_version
# Expected output:
# AMX Mod X 1.10.0-git5467 (Counter-Strike 1.6)
Located at: addons/amxmodx/configs/users.ini
; Name or IP with flags
"PlayerName" "" "abcdefghijklmnopqrstu" "ce"
; Admin by SteamID (recommended)
"STEAM_0:1:12345678" "" "abcdefghijklmnopqrstu" "ce"
; Admin by IP address
"192.168.1.100" "" "abcdefghijklmnopqrstu" "a"
; Password-based admin
"" "mypassword" "abcdefghijklmnopqrstu" "a"
| Flag | Permission |
|---|---|
a |
Immunity (can't be kicked/banned) |
b |
Reservation (can join full server) |
c |
amx_kick command |
d |
amx_ban and amx_unban |
e |
amx_slay and amx_slap |
f |
amx_map command |
g |
amx_cvar (change server cvars) |
h |
amx_cfg (execute configs) |
i |
amx_chat and other chat commands |
j |
amx_vote commands |
k |
Access to sv_password cvar |
l |
amx_rcon command |
m |
Custom level A (defined by plugins) |
z |
User (no admin privileges) |
# Player management
amx_kick [reason]
amx_ban [reason]
amx_slay
amx_slap [damage]
# Server management
amx_map
amx_cvar
amx_cfg
amx_pausecfg
# Chat and communication
amx_say
amx_chat # Admin-only chat
amx_psay # Private message
# Voting
amx_vote
amx_votemap
amx_votekick
# Information
amx_who # List online players with info
amx_plugins # List loaded plugins
amx_modules # List loaded modules
addons/amxmodx/plugins/addons/amxmodx/scripting/addons/amxmodx/configs/plugins.iniLocated at: addons/amxmodx/configs/plugins.ini
; Core plugins (required)
admin.amxx
adminhelp.amxx
adminslots.amxx
multilingual.amxx
menufront.amxx
cmdmenu.amxx
plmenu.amxx
mapchooser.amxx
admincmd.amxx
; Counter-Strike plugins
statsx.amxx
restmenu.amxx
scrollmsg.amxx
; Custom plugins (add your own)
; myplugin.amxx
; zombieplague.amxx
; Disable plugin with semicolon:
; disabled_plugin.amxx
# 1. Download .amxx file or .sma source
# 2. If .amxx - copy to plugins/ folder
cp myplugin.amxx /path/to/cstrike/addons/amxmodx/plugins/
# 3. Add to plugins.ini
echo "myplugin.amxx" >> /path/to/cstrike/addons/amxmodx/configs/plugins.ini
# 4. Reload plugins without restart:
# In-game: amx_plugins reload
# Or restart server
# List all plugins
amx_plugins
# Enable/disable specific plugin
amx_pause
amx_unpause
# Reload all plugins
amx_plugins reload
/* hello_world.sma */
#include
#include
#define PLUGIN "Hello World"
#define VERSION "1.0"
#define AUTHOR "YourName"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /hello", "cmd_hello")
}
public cmd_hello(id) {
client_print(id, print_chat, "Hello, %s!", get_user_name(id))
return PLUGIN_HANDLED
}
#include <amxmodx> - Core AMXX functions#include <amxmisc> - Miscellaneous utility functions#include <cstrike> - Counter-Strike specific functions#include <fun> - Fun commands (slap, godmode, etc.)#include <engine> - Engine entity manipulation#include <fakemeta> - Advanced entity controlpublic plugin_init() {
register_event("DeathMsg", "event_death", "a")
register_event("CurWeapon", "event_curweapon", "be", "1=1")
}
public event_death() {
new killer = read_data(1)
new victim = read_data(2)
client_print(killer, print_chat, "You killed %s!", get_user_name(victim))
}
public event_curweapon(id) {
new weaponid = read_data(2)
// Do something when player switches weapon
}
Most popular zombie mod for CS 1.6:
Players gain superhero powers:
Prison-themed game mode:
Instant respawn deathmatch:
# Visit: https://www.amxmodx.org/websc.php
# 1. Paste your .sma source code
# 2. Click "Compile"
# 3. Download resulting .amxx file
# 4. Upload to plugins/ folder
# Navigate to scripting folder
cd /path/to/cstrike/addons/amxmodx/scripting
# Compile single plugin
./amxxpc myplugin.sma
# Result: myplugin.amxx in compiled/ folder
# Copy to plugins/ folder
cp compiled/myplugin.amxx ../plugins/
# Navigate to scripting folder
cd cstrike\addons\amxmodx\scripting
# Compile using batch file
compile.exe myplugin.sma
# Or double-click compile.bat and follow prompts
# Compiled .amxx will be in compiled\ folder
| Error | Cause & Fix |
|---|---|
| fatal error 100: cannot read from file | Missing include file - download required .inc file |
| error 017: undefined symbol | Missing function or variable - check includes |
| error 021: symbol already defined | Duplicate variable/function name |
# Check MetaMod is loaded first
# In server console: meta list
# Should show: AMX Mod X
# If not listed:
# 1. Verify MetaMod installation
# 2. Check addons/metamod/plugins.ini contains:
linux addons/amxmodx/dlls/amxmodx_mm_i386.so
# Or for Windows:
win32 addons/amxmodx/dlls/amxmodx_mm.dll
# Check file permissions (Linux)
chmod +x addons/amxmodx/dlls/amxmodx_mm_i386.so
# Check plugin is enabled in plugins.ini
cat addons/amxmodx/configs/plugins.ini | grep myplugin
# Verify plugin loaded
# In-game: amx_plugins
# Should list your plugin
# Check for compilation errors
# Recompile plugin and check for errors
# Enable debug mode
# In amxx.cfg: amx_debug 1
# Check logs/L*.log files for errors
# Disable recently added plugin
# Edit plugins.ini and comment out:
; problematic_plugin.amxx
# Restart server and check if crash persists
# Check logs for specific error:
tail -f logs/L*.log
# Common causes:
# - Incompatible plugin version
# - Missing dependencies
# - Conflicting plugins