📚 AMX Mod X Server Guide

Powerful plugin framework for Counter-Strike servers

Quick Info

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

Navigation

Overview

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.

Key Features

Game Compatibility

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

⚙️ Installation

Prerequisites

Critical: MetaMod must be installed before AMX Mod X!

Step 1: Install MetaMod (CS 1.6)

# 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"

Windows MetaMod Installation

# 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"

Step 2: Install AMX Mod X

Linux Installation

# 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

Windows Installation

# 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\

Step 3: Verify Installation

# 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)

👤 Admin System

Admin Configuration (users.ini)

Located at: addons/amxmodx/configs/users.ini

Basic Admin Entry

; 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"

Admin Flags Explained

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)

Common Admin Commands

# 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

🔌 Plugin Management

Plugin Files Location

plugins.ini Configuration

Located 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

Installing New Plugins

# 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

Plugin Commands

# List all plugins
amx_plugins

# Enable/disable specific plugin
amx_pause 
amx_unpause 

# Reload all plugins
amx_plugins reload

💻 Pawn Scripting Basics

Simple Plugin Example

/* 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
}

Common Includes

Event Hooking

public 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
}

🎮 Popular Game Modes

Zombie Plague

Most popular zombie mod for CS 1.6:

Superhero Mod

Players gain superhero powers:

Jailbreak

Prison-themed game mode:

Deathmatch

Instant respawn deathmatch:

🛠️ Compiling Plugins

Using Web Compiler (Easiest)

# 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

Local Compilation (Linux)

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

Local Compilation (Windows)

# 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

Compilation Errors

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

🔧 Troubleshooting

AMX Mod X Not Loading

# 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

Plugin Not Working

# 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

Admin Commands Not Working

Server Crash After Plugin Installation

# 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

Pro Tips

Resources