The upgrade itself is a file copy. The risk is entirely in your plugins: .amxx files compiled against 1.8.2 may refuse to load on 1.10, and plugins with latent array bugs that 1.8.2 quietly tolerated will start throwing runtime errors. The way to do this without a bad evening is to do it on a copy of the server first, and to only upgrade plugins you have the .sma for.
0. Before you touch anything: inventory
On the running server:
amxx version amxx plugins amxx modules
Save that output. Then check what you actually have sources for:
cd /home/steam/hlds/cstrike/addons/amxmodx ls plugins/*.amxx | wc -l ls scripting/*.sma | wc -l
Any .amxx without a matching .sma is your real risk. If it fails on 1.10 you cannot recompile it and your only options are finding the source or replacing the plugin. Go find those sources now, before you start.
1. Full backup
cd /home/steam/hlds tar -czf ~/amxx-1.8.2-backup-$(date +%F).tar.gz cstrike/addons
That single tarball is your rollback. It contains Metamod, AMXX, every plugin, every config.
2. Upgrade on a staging copy, not on the live server
cp -a /home/steam/hlds /home/steam/hlds-staging cd /home/steam/hlds-staging ./hlds_run -game cstrike -port 27016 +map de_dust2 +maxplayers 12 +sv_lan 1
Different port, sv_lan 1 so it does not appear publicly. Everything below happens here first.
3. Replace the AMXX core, keep your configs
The 1.10 packages will overwrite configs/ if you extract them carelessly, and that means losing users.ini and your plugins.ini. Preserve them:
cd /home/steam/hlds-staging/cstrike/addons/amxmodx cp configs/users.ini /tmp/users.ini.keep cp configs/plugins.ini /tmp/plugins.ini.keep cp configs/amxx.cfg /tmp/amxx.cfg.keep # remove the old core, modules and stock plugins rm -rf dlls modules rm -f plugins/*.amxx # extract 1.10 base + cstrike over cstrike/ cd /home/steam/hlds-staging/cstrike tar -xzf amxmodx-1.10.0-base-linux.tar.gz tar -xzf amxmodx-1.10.0-cstrike-linux.tar.gz # put your configs back cp /tmp/users.ini.keep addons/amxmodx/configs/users.ini cp /tmp/plugins.ini.keep addons/amxmodx/configs/plugins.ini
Do not restore the old amxx.cfg wholesale — 1.10 added cvars. Diff it instead and port your changes across:
diff -u /tmp/amxx.cfg.keep addons/amxmodx/configs/amxx.cfg
4. Delete every stale module
This is the step people skip and then spend two hours on. A 1.8.2 module in a 1.10 modules/ directory produces:
Module was compiled for a newer AMXX version
or a bare Module failed to load. The 1.10 packages ship all the standard modules; you removed modules/ entirely in step 3, which is exactly right. Only re-add third-party modules (ReAPI, Orpheu) after you have downloaded 1.10-compatible builds of them.
5. Recompile every custom plugin
cd /home/steam/hlds-staging/cstrike/addons/amxmodx/scripting
mkdir -p compiled
for f in *.sma; do
./amxxpc "$f" -o "compiled/${f%.sma}.amxx"
done
Read the output. Typical breakages when moving off 1.8.2:
error 017: undefined symbol "client_print_color"— the plugin is newer than your old core and always needed 1.9+. On 1.10 it now compiles. Good.warning 213: tag mismatch— usually harmless, but on 1.10 the compiler is stricter aboutFloat:tags. Fix them; they hide real bugs.error 021: symbol already defined— you have two include paths, or an old copy of an include inscripting/include/shadowing the new one. Delete stale includes.
Copy the successful builds:
cp compiled/*.amxx ../plugins/
6. Test on staging with real load
meta list amxx version amxx plugins amxx modules
Then play. Connect, buy, plant, defuse, use every admin command, open every menu, force a map change. Then read:
tail -n 100 /home/steam/hlds-staging/cstrike/addons/amxmodx/logs/error_*.log
The two errors you are hunting for:
Run time error 4: index out of bounds Run time error 10: native error
Both are plugin bugs that 1.10 surfaces and 1.8.2 hid. Fix them in the .sma, recompile, retest. Details in runtime error 4 and runtime error 10.
7. Cut over
Once staging survives a full map rotation with an empty error log, apply the same steps to the live server during your quietest hour. Keep the backup tarball. If anything goes wrong:
cd /home/steam/hlds rm -rf cstrike/addons tar -xzf ~/amxx-1.8.2-backup-2026-07-14.tar.gz
Restart, amxx version should report 1.8.2 again, and you are back where you started in under a minute.
Common errors during the upgrade
Plugin failed to load: Invalid Plugin— a 1.8.2-compiled.amxxyou did not recompile. No workaround; you need the source. See Invalid Plugin.bad loadon the AMXX line inmeta list— you left the olddlls/amxmodx_mm_i386.so, or you have two AMXX entries inmetamod/plugins.ini. See bad load after upgrading.- Admins stopped working — you extracted the package over
configs/and lostusers.ini. Restore it from the backup. - Zombie Plague / CoD Mod stopped working — big mod packs are the usual casualties, because they ship dozens of 1.8.2-era binaries. Budget real time for these, or stay on 1.9 as a compromise: AMX Mod X 1.9 takes most modern plugins and breaks far fewer old ones.









