AMX Mod X Changelog

From AlliedModders Wiki
Jump to: navigation, search

This is the comprehensive changelog history to AMX Mod X. To see changes to AMX Mod before it became AMX Mod X, see the AMX Mod Changelog.

Branch 1.8

Release Version: 1.8
Release Codename: "Ham Sammich"
Release Date: October 25, 2007

Release 1.8.2

See AMX Mod X 1.8.2 Changes.

Release 1.8.1

See AMX Mod X 1.8.1 Changes.

Release 1.8.0

See AMX Mod X 1.8.0 Changes.

Branch 1.7

Release 1.76

See AMX Mod X 1.76 Changes.

Release 1.75a

Release Version: 1.75a
Release Codename: none (bugfix)
Release Date: July 04, 2006

  • Fixed angle_vector always returning ANGLEVECTORS_UP (3)

Release 1.75

Release Version: 1.75
Release Codename: "Shifty Salmon"
Release Date: July 01, 2006
See: AMX Mod X 1.75 Scripting Changes.

  • Core Changes
    • Modules are now automatically loaded by detecting plugin usage.
      • modules.ini is now primarily deprecated, except for SQL and unsupported libraries.
    • Rewrote SQLX modules (again). You can now load multiple SQL modules and toggle them per-plugin.
      • Added new SQL API called SQLX. DBI was kept backwards-compatible.
      • Added new function to thread SQL queries (which prevents lag from a bad connection).
    • Fixed some very small memory leaks.
    • Fixed binary logging building wrong on Linux.
    • Fixed some debugging crashes.
    • Fixed serious bug when creating plugin_pause/plugin_unpause forwards.
    • Fixed serious crash bug involving set_hudmessage and plugins using high hudchannels.
    • Any file in the configs folder starting with "plugins-" and ending in ".ini" will now be treated as an extended plugins file. This is useful for distributing sets of plugins separately, and easily disabling them with a name change.
  • Fakemeta Changes
    • Added new hookable/callable functions:
      • AddToFullPack
      • AlertMessage
      • ClientPrintf
      • ClientUserInfoChanged
      • CmdEnd
      • CmdStart
      • CreateBaseline
      • CreateInstancedBaseline
      • GetInfoKeyBuffer
      • InfoKeyValue
      • UpdateClientData
      • SetClientKeyValue
      • SetKeyValue
    • Added new natives:
      • copy_infokey_buffer
      • get_orig_retval
    • Fixed various trace bugs in FakeMeta with certain natives.
    • Fixed some unhooking on server-deactivate problems in FakeMeta.
  • Scripting Changes:
    • Added __DATE__ and __TIME__ auto-macros to the compiler.
    • Added many HLSDK constants and improved include organization.
    • Added new compiler #pragma directives for using the module autoloading system.
    • Added cs_get_user_mapzones (thanks VEN!).
    • Added cs_set_user_zoom.
    • Added cs_get_user_zoom.
    • Added IsInWorld() stock (thanks Twilight Suzuka!).
    • Added nvault_remove().
    • Added emessage_begin()...emessage_end() natives for advanced messaging capabilities.
    • Moved various natives from Engine and into Core:
      • register_message
      • get_msg_args
      • get/set_msg_arg_type
      • get/set_msg_arg_int
      • get/set_msg_arg_float
      • get/set_msg_arg_string
      • get_msg_origin
      • get/set_msg_block
      • velocity_by_aim
      • vector_to_angle
      • angle_vector
      • vector_length
      • vector_distance
      • precache_generic
    • Dynamic natives that are paused now also pause parent plugins (with an error).
    • register_plugin() now returns the plugin ID.
    • Fixed a corruption bug in strip_user_weapons().
    • Fixed a bug in set_view() (thanks jtp10181!).
    • Fixed is_in_viewcone() always returning 0.
    • Fixed is_visible causing a crash, improved accuracy.
    • Fixed a crash bug in get_tr2() (thanks Orangutanz!).
    • Fixed cs_get_user_buyzone() returning existence in other areas.
    • Fixed a rare floatround() bug where values ending strictly in .5 were IEEE rounded.
    • Fixed a bug where removing the current parent task could damage the task queue.
    • Fixed a bug in get_entity_visibility (thanks VEN!).
    • Fixed some menu item calculation bugs on single paged menus.
    • Fixed CreateOneForward() not working as intended.
    • Removed non-existant take_damage() entry.
    • Expanded XS Stock Library with addition of xs_vec_make2d.
    • Expanded usage of cs_set_user_vip().
    • Improved get_brush_entity_origin() and ViewContents (thanks Orangutanz!).
    • Added core natives:
      • fputs()
      • get_weaponid()
      • rename_file()
      • vformat()
  • DoD Changes:
    • Added forwards:
      • dod_client_changeteam
      • dod_client_changeclass
      • dod_client_spawn
    • Added stocks:
      • dod_set_model
      • dod_set_body_number
      • dod_clear_model
  • Plugin Changes:
    • Added amx_showrcon command to show rcon results in admincmd.sma.
    • Added weapon restriction compatibility for bots in CS (KWo).
    • Added admin identifier (asterisk which is red if colors are available) to all menus with a user list.
    • Upgraded admin.sma to the new SQLX API.
    • Fixed a bug in amx_reloadadmins not giving admins new access.
    • Fixed a weapon restriction exploit in restmenu.sma.
    • Fixed an HTML exploit in /top15 displaying player names.
    • Fixed various and plentiful amx_addadmin bugs.
    • Fixed telemenu.sma not letting you teleport yourself (thanks jtp10181!).
    • Fixed a bug with adminslots.sma lowering the slots by 1.
    • Fixed overlapping hud messages with miscstats.
  • Module API Changes:
    • Added and fixed module API for inter-module communication.
    • Added native overriding and replacing to module API.
    • Added plugin unloading/unloaded callbacks to module API.
    • Added MSVC8 project files to most CVS projects.
  • Configuration Changes:
    • Added amx_sql_type cvar to sql.cfg.
    • Re-organized and simplified modules.ini.
    • Error logging can now be redirected to separate logs.
    • Fixed modules.ini parsing bugs and simplified parsing.
    • Fixed a double entry in cvars.ini.
  • Other Changes:
    • Added a Bulgarian translation (thanks lubb!).
    • Added a leetspeak translation (thanks, I think, Twilight Suzuka!).
    • Improved FTP option of the graphical installer.
    • Updated the GeoIP library to June.
    • Updated PCRE from v6.1 to v6.4.
    • Updated sqLite from 3.3.4 to 3.3.5.
    • Fixed a steam account path bug in the installer.

Release 1.71

Release Version: 1.71
Release Codename: none (bugfix)
Release Date: April 03, 2006

  • Added plugin optimizer tweaking to core.ini.
  • Added new "binary logging" feature for serious debugging. Note that this requires a "Binary Logging" compiled version of AMX Mod X (downloaded separately).
  • Improved HUD synchronization algorithm (both in efficiency and fluidity).
  • Removed "languages.dat" and "dictionary.cache" file. Language files are now parsed and cached at load in memory only. Furthermore, the files are only reparsed on changes.
  • Menus with no pages or one page are no longer paginated.
  • Added rmdir, getc, ungetc, and putc natives.
  • Added arrayset native (for clearing large arrays quickly).
  • Added "Skip HLTV" flag to get_players.
  • Added ClientUserInfoChanged forward to Fakemeta.
  • Added more string compatibility to Fakemeta.
  • Added advanced keyvaluedata and traceresult manipulation to Fakemeta.
  • Added global data retrieval to Fakemeta.
  • Added menu_cancel native.
  • Added HUD sync points to all stats scripts to avoid HUD overlapping.
  • Updated GEOIP library to April.
  • Fixed plmenu not killing players on teamswitch.
  • Fixed adminslots not working.
  • Fixed a bug where native handlers wouldn't work in rare cases.
  • Fixed amxx_logging mode 2 not working.
  • Fixed crash bug with plugin optimizer on AMD K6 processors.
  • Fixed dir_exists not working in Windows.
  • Fixed ExecuteForward not returning results properly.
  • Fixed armoury entity natives on Linux (thanks AndraX2000).
  • Fixed many weapons in TFCX not logging hit areas at all.
  • Fixed stack corruption bugs in miscstats (cstrike).
  • Fixed hud problems in miscstats (cstrike) by adding more HUD sync points.
  • Fixed scrollmsg showing a "delayed movement" scroller.
  • Fixed a bug in the "split" stock.
  • Fixed a few (potentinal) bugs in studio and updated every 3rd party component
  • Fixed amx_addadmin having wrong access level (thanks Twisted).

Release 1.70

Release Version: 1.70
Release Codename: "Whirled Peas"
Release Date: March 04, 2006

  • Heavily optimized float operations by adding float ops to the JIT.
  • Heavily optimized string formatting.
  • Heavily optimized ML translations.
  • Added destroyability to newmenus.
  • Added property editing to newmenus.
  • Added event/call forwarding functionality to plugins (like modules).
  • Added amx_mldebug cvar for logging multi-lingual failures.
  • Added new, much faster natives for reading/writing files.
  • Added new, much faster "pcvar" natives for dealing with cvars.
  • Added set_fail_state for plugins to disable themselves.
  • Added auto-channeling to HUD messages and next_hudchannel().
  • Added CreateHudSyncObj() and ShowSyncHudMsg().
  • Added core player property setting abilities for modules.
  • Added get_user_footsteps() to fun.
  • Added ns_get_hive_ability() to NS module.
  • Added dbi_query2() to find number of rows affected by a query.
  • Added player_menu_info() to get both oldmenu and newmenu information.
  • Added unregister_forward() to fakemeta.
  • Added pev_valid() as fakemeta's version of is_valid_ent().
  • Added socket_send2() native for sending binary data.
  • Added get_time_length() stock (Brad).
  • Added replace_all() stock (by jtp10181).
  • Added split() stock (by Suicid3).
  • Added remove_filepath() stock.
  • Added Finnish language support (thanks AavikkoRotta).
  • Added client authorization module callbacks.
  • Updated NS module and include files to Natural Selection 3.1.
  • Updated cvarquery system to cvarquery2. This requires Metamod 1.19.
  • Updated GEOIP library to February.
  • Improved code inspector in AMXX Studio.
  • Improved get_user_attacker() support for 3rd party mods.
  • Improved strip_user_weapons() native.
  • Moved all base plugins to use auto-channeling.
  • Rewrote format() parser for re-entrancy. You can now use %L in lang files.
  • Rewrote language system for speed and integrity.
  • Rewrote adminslots.sma for simplicity * added amx_hideslots cvar (thanks Marticus).
  • Newmenus no longer pass back MENU_MORE or MENU_BACK.
  • Optimized strbreak() and improved matching.
  • Optimized pev()/set_pev() from Fakemeta.
  • Admin-chat from say_team now has a source prefix.
  • Installer now warns users to make sure server is not running.
  • Removed array size detection from debugger.
  • Merged TSFun and TSX back together and fixed various bugs.
  • Fixed throwing knife crash bug on TSX for Linux (Maddo).
  • Fixed bug where native filtering could report the wrong native failure.
  • Fixed in_view_cone() returning the wrong result.
  • Fixed length bugs in and optimized replace().
  • Fixed nvault_prune() crashing and various unpredictable things in nvault.
  • Fixed various serious errors with TFCX causing very random behaviour.
  • Fixed corrupt language files destroying ML system.
  • Fixed many various bugs in AMXX Studio.
  • Fixed various language errors throughout the language translations.
  • Fixed deleting wrong temp file.
  • Fixed stats_logging showing disconnected players.
  • Fixed various run-time errors in statsx.sma.
  • Fixed various TSX and TSFun bugs.
  • Fixed autobuy being used if the restrictions where set after cl_setautobuy.
  • Fixed various compiler bugs and inadequacies.
  • Fixed amx_restrict off and related commands not working.
  • Fixed pausing bug in admincmd.sma.
  • Fixed is_str_num() not working.
  • Fixed bug when voting multiple maps would always fail in mapsmenu.sma.
  • Fixed bug in color checking for statscfg.sma.
  • Fixed "Cancel" button quitting on installer's FTP page.
  • Fixed admin cvar change bug in admincmd.sma.
  • Fixed bug in set_lights() not affecting future players.
  • Fixed get_user_weapon() returning data after strip_user_weapons().
  • Fixed cs_set_user_team() not notifying core of team changes.
  • Fixed cs_set_user_armor() not showing a helmet with CS_ARMOR_VESTHELM.
  • Fixed cs_get_user_armor() not returning the armortype.
  • Fixed AMD64 bug where negative values were not upcasted into forwards properly.
  • Fixed get_players() using flags c and l.
  • Fixed get_user_weapon() failures on 3rd party mods.
  • Fixed bug where get_user_menu could return stale menu ids.
  • Fixed crash bugs with callfunc natives running in debug mode.
  • Fixed crash bugs with dynamic natives running in debug mode.
  • Fixed the JIT crashing on systems with strict-DEP (some Win2k3 and XPSP2 machines)
  • Fixed various bugs in the newmenu system.
  • Fixed NULL string crash bug in forward API.
  • Fixed strcmp() not properly detecting case sensitivity.
  • Fixed md5_file not using base paths.
  • Fixed a bug where a few fakemeta hooks were pre-only (no post).
  • Fixed a bug where fakemeta never cleaned AlertMessage hooks.
  • Fixed pfn_playbackevent() missing a parameter.
  • Fixed plmenu using VALVE_ID_LAN.

Branch 1.6

Release 1.60

Release Version: 1.60
Release Codename: "Rusty Mushroom"
Release Date: September 18, 2005

  • Plugins can now query/retrieve client-side cvars (for example, to enforce CVAR rules).
  • Plugins can now use modules and natives without them being loaded. For example, plmenu will use the cstrike module only if it's available, and no recompile is necessary.
  • Plugins can now handle their own errors and look at their own debug traces.
  • Rewrote the debugger from scratch and, in some cases, greatly improved error message output.
  • Numerous other warnings and compiler bugs were removed and/or fixed in this release.
  • Fixed many bugs in AMXx Studio (bringing it to version 1.2).
  • Faluco has reformatted every single original, OLOcode AMX Mod X source code file to be readable! This was a herculean task and we thank him for his time.
  • Made some final improvements to Linux optimization flags.
  • Added is_string_num() (thanks azrael!)
  • Added abs() (requested by Brad Jones)
  • Language files can now have comments with ; or //
  • amx_addadmin in admin.sma will now also add to the SQL database if available (thanks Lazarus Long!)
  • Improved parameters to amx_addadmin so more admin types can be added (thanks Lazarus Long!)
  • Fixed nvault_open() crashing after nvault_close was called on the same file (atambo).
  • Fixed Linux compiler not being able to run from any directory (Lazarus Long).
  • Fixed get_distance_f not being in (Greenberet).
  • Fixed trim() function not removing whitespace properly (karlos).
  • Fixed many bugs in the compiler preprocessor and macro preprocessor.
  • Fixed bug in compiler where array indexes were improperly tag-checked.
  • Fixed various array bugs in register_native default style (Lord of Destruction).
  • Fixed dod_get_map_info breaking after a mapchange (FireStorm)..
  • Fixed/rewrote find_ent_by_model in Engine.
  • Fixed MySQL crashing on null fields (And One).
  • Fixed listen servers not getting admin access (jtp10181).
  • Fixed crash bugs in MySQL when querying and caching field names (Striker).
  • Fixed more memory deallocation mismatches with plugins (Zenith77).
  • Fixed get_user_gravity not returning a Float (vittu).
  • Fixed MySQL module not conforming to DBI, causing memory leaks and crashes.
  • Fixed build process and various minor errors in SQLite module (thanks Lazarus Long!)
  • Fixed AMXXRelease releasing no config files on Linux (Gonzo).
  • Fixed permissions problems with AMXXRelease on Linux (hondaman, Arnold).
  • Fixed/reverted functionality of stopping plugins for amx_pausecfg.
  • Fixed plmenu (Player Menu) not swapping or displaying teams correctly after Steam update (KWo)
  • Fixed name clashes in TSFun and TSX modules (Twilight Suzuka).

Branch 1.5

Release 1.55

Release Version: 1.55
Release Codename: none (bugfix)
Release Date: August 24, 2005

  • Changed the JIT to prevent possible crashing on pingboost/threading situations on linux (reported by hullu).
  • Compiled with gcc-3.4 instead of 2.95 - binaries should be smaller and faster (thanks hullu). AMX Mod X and the S/MDK will no longer compiler on gcc-2.95
  • Added human readable error messages to many core natives.
  • Added Czech language translation (thanks Fatty).
  • Replaced AMXX Edit with newer AMXX Studio.
  • Replaced ESF module with new ESF plugin from Corona-Bytes.
  • Fixed bug where set_task would run one extra time on "repeat" mode.
  • Fixed bug where plugins could not be unpaused.
  • Fixed bug where bots could not deal damage with Fun module.
  • Fixed linux compiler crashing on load.
  • Fixed crash bug in register_native.
  • Fixed alloc/dealloc mismatches in register_native.
  • Fixed three newmenu functions not being implemented (patched by Freecode).
  • Fixed a bug where CS team switching did not work with plmenu (Steam update consequence).
  • Fixed callfunc_push_str copying zero characters (reported by Lord of Destruction, Twilight Suzuka).
  • Fixed documentation errors about MF_AmxExec* (Twilight Suzuka).

Release 1.50

Release Version: 1.50
Release Codename: "Schnappi Kitten"
Release Date: August 1, 2005

  • Updated Small to version 3.0. Note: ITB CompuPhase has changed the name of Small to "Pawn". This includes an improved and more powerful compiler. You can now return arrays, simulate "structs", and the optimizer has been improved.
  • Large reduce in CPU usage for non-Metamod-p users. AMX Mod X now requires Metamod 1.18 or Metamod-p. Note: this is because we have removed the internal mini-Metamod that was added in 0.20.
  • Added new system for automating multi-page menus.
  • Added module for ESF (Earth's Special Forces), thanks to Lynx.
  • Rewrote installer from scratch, now a much more improved interface that actually works.
  • Added an official "AMX Mod X Editor", AMXX-Edit. To be expanded as AMX Mod X Studio in the future.
  • Rewrote MySQL module (again) - now can be used by other modules.
  • Added new plugin debugging system from Small 3.0. Old plugins need to be recompiled to be debugged.
  • Added "register_native", plugins can now create natives that other plugins can use. This was first conceptualized by dJeyL and added on request of T(+)rget.
  • Changed the plugin file format to be a tad more flexible. Old plugins will still work.
  • Added a module for dealing with binary vaults (nVault).
  • Added another The Specialists module (TSFUN).
  • Deprecated AMX Mod module support, which was incompatible with Small 3.0.
  • Require_module is deprecated. Module detection is now done automatically when you compile plugins.
  • Fixed a serious memory leak in set_task (reported by fysh).
  • Fixed a serious memory leak in entity_set_model (reported by EKS).
  • Fixed deallocation errors in engine and core (reported by theqizmo, OneEyed, and fysh).
  • Added module API changes that require a sync of the SDK. This was to make sure modules had the right Small 3.0 headers. Modules compiled with the old SDK will refuse to load.
  • Added inter-module communication to complement AMX Mod X's inter-plugin communication.
  • Deprecated read_dir, added much faster open_dir natives.
  • Fixed a bug where language settings were mishandled (thanks faluco).
  • Fixed a good deal of language translation-related errors (thanks faluco).
  • Added Spanish, Brazilian translations (thanks faluco, AlucarD_fOx).
  • Fixed bug where repeated tasks actually repeated one less than their given amount (reported by EKS).
  • Fixed bug where bad language translation files could corrupt build_pathname (reported by Kamikaze).
  • Fixed is_user_hltv (thanks Wallslide).
  • Fixed mishandling of user input strings (potential security bug). Reported and diagnosed by Stan Bubrouski.
  • Fixed log_to_file so it logs to the right file (reported by karlos).
  • Fixed bug in the JIT where a lone default case would crash (reported by twistedeuphoria).
  • Fixed bug where client_print to console would not insert newlines (reported by azrael).
  • Added dir_exists (requested by twistedeuphoria).
  • Fixed memory leaks on plugin unload.
  • Deprecated most fget/fput natives (they have been removed), due to improper implementation.
  • Fixed problems with weapon ids in DoDX
  • Fixed problem with setting and retrieving strings with set_pev/pev
  • Updated Regex library from PCRE 4.5 to 6.1.
  • Updated GeoIP database to July 2005
  • Updated Natural-Selection module for latest NS release.
  • Fixed bugs and added new natives to DoDFun.
  • Fixed various bugs in the documentation.
  • Fixed potential problems in register_message, reduced memory usage a bit.
  • Added in_viewcone and can_see, at the request of v3x.
  • Fixed bug in MySQL module where a port could not be added to the connect string (reported by azrael).
  • Added trace_forward at the request of, and by, twistedeuphoria.
  • Added get_distance_f to core at the request of twistedeuphoria.

Branch 1.0

Release 1.01

Release Version: 1.01
Release Codename: none (bugfix)
Release Date: March 09, 2005

  • Updated NS module for Natural Selection 3.0.
  • Added new package to maintain unsupported SQL/DBI modules.
  • Added a module for SQL Lite.
  • Added a tool for viewing stats (CS addon).
  • Added optimizations for when using Metamod-p (evilspy).
  • Added mkdir native.
  • Added cs_set/get_user_armor.
  • Added callfunc_begin_i and get_func_id.
  • Added more client menu functionality to menufront.
  • Added a new MySQL module for version 4.1.
  • Updated get_stats to work with authids.
  • Updated and cleaned the funcwiki. (thanks, Avalanche).
  • Fixed logging bug in SDK.
  • Fixed bugs with bots disconnecting.
  • Fixed bugs with uninitialized players disconnecting.
  • Fixed parse bug in strbreak.
  • Fixed typos in config files.
  • Fixed installer when using Condition-Zero.
  • Fixed custom weapons in xmod stuff.
  • Fixed grenade problem in CSX.
  • Fixed mistakes in documentation (breaddawson).
  • Fixed compiling error in adminslots (Firestorm).
  • Fixed a hitzones problem with Fun.
  • Snyced language files.

Release 1.00

Release Version: 1.00
Release Codename: "Kaiserpinguin"
Release Date: November 14, 2004

  • Added an installer.
  • Completed documentation.
  • Added fakemeta_stocks include file.
  • Added PM OnoTo's XS Library.
  • Added natives to array_amxx to check lists for values.
  • Admin.sma will now immediately exec amxx.cfg to make plugin_cfg more useful.
  • Synced language files and added Dutch (thanks Devilion).
  • Increased write-file buffer.
  • Fixed a bug that caused the JIT to crash with a kernel option in 2.6.x.
  • Fixed many Counter-Strike native offsets in Cstrike module.
  • Fixed a crash bug in hooking MESSAGE_BEGIN in Fakemeta_amxx
  • Fixed a bug where admin_sql would not reset admins on fallback to users.ini.
  • Fixed range checking in set_user_hitzones.
  • Fixed read_data() float return method.
  • Fixed version and file info in some modules and core.

Beta 0.20-RC7

Release Version: 0.20-RC7
Release Codename: none (bugfix)
Release Date: October 29, 2004

  • Improved plugin error output and debugging greatly.
  • Run time errors of type 10 (AMX_ERR_NATIVE) now display the native's name for clarity.
  • If debug is not enabled and an RTE occurs, instructions on enabling debug mode are printed.
  • Rewrote error reporting for all modules to use new debug trace API.
  • Added get_user_msgname().
  • Added custommenuitems.cfg to standard cfg files.
  • Added ability for plugins to dynamically add items to amxmodmenu.
  • Fixed compiler generating very long file paths for debug information.
  • Fixed error causing amx_client_languages to reverse effects.
  • Fixed error causing floats passed in forwards to mess up everything.
  • Fixed menu mistakes in StatsX.
  • Fixed vote map menu.
  • Fixed missing weapon status in restmenu.
  • Fixed serious bug in forwards that use floats.
  • Fixed bug where message_begin could not send MSG_PAS_R and MSG_PVS_R (Damaged Soul).
  • Fixed crash bug in get_msg_origin (Damaged Soul).
  • Fixed bugs in entity_set_byte and entity_set_edict.
  • Fixed a small bug in mapchooser mapcycle reader (Damaged Soul).
  • Fixed a bug in CSX where get_weaponname was overridden incorrectly.
  • Fixed some bugs in pev() natives in fakemeta module.
  • Fixed client_built forward in NS module.
  • Fixed last hit being ignored in StatsX (JC Denton).
  • Fixed miscstats playing sounds to connecting players.
  • Renamed cs_get_weapon_type to cs_get_weapon_id.

Beta 0.20-RC6

Release Version: 0.20-RC6
Release Codename: none (bugfix)
Release Date: September 20, 2004

  • Added AMD64 support for Cstrike module.
  • Added TraceResult and TraceLine manipulation to fakemeta_amxx.
  • Added new API calls for module SDK.
  • Added new debug trace system to JIT and C core.
  • Added universal error handling API to Core (modules not yet implemented).
  • Removed extraneous packages from DoD, TFC, and TS packages.
  • Fixed a bug in get_user_astats for CSSTATS.
  • Fixed remaining bugs in remove_task().
  • Fixed bug where reloadadmins would not reset flasg (mrhunt).
  • Fixed bug where amxxsc failed on -o <file>.
  • Fixed logging typo in core.ini.
  • Fixed wrong kills and deaths in CSSTATS.
  • Fixed string formatting in mapsmenu, admincmd.
  • Fixed restmenu run time error.
  • Fixed adminslots not calculating slots immediately.
  • Fixed crash bug in amx_modules.
  • Fixed parsing bug in string trim routine.
  • Fixed bug where language files were not closed.
  • Compiler is now set to debug level 2 and compaction is disabled.

Beta 0.20-RC5

Release Version: 0.20-RC5
Release Codename: none (bugfix)
Release Date: September 12, 2004

  • Fixed a bug related to the JIT headers that was causing stats modules to crash.
  • Removed MMGR from default builds.
  • Removed MMGR from default SDK options.
  • Added optimizations to format() routines.
  • Added amx_debug to control plugin run levels.
  • Added ability for plugins to tell Core which modules are needed (requested by mahnsawce).
  • Added new SDK module functions MNF_GetPlayerEdict, MNF_GetPlayerFlags.
  • Added better support for Natural-Selection 3 Beta 5 (mahnsawce, CheesyPeteza, et al).
  • Fixed a bug where %c would not be recognized.
  • Fixed a bug where SQL connections were not disconnected on mapchange (UgLyPuNk).
  • Fixed a bug where MySQL connections could not have a specified port (Mugwump).
  • Fixed a bug where float computations were incorrect on AMD64 (UgLyPuNk).
  • Fixed a bug where entity validation routines in Engine/Fakemeta were incorrect (JJKiller).
  • Fixed a bug where the fakemeta engine could bootstrap a module twice.
  • Fixed a crash bug relating to forward re-registration (fsfod).
  • Fixed a compile bugs in some modules that prevented AMD64 compatibility (UgLyPuNk).
  • Fixed a memory leak related to Engine not unregistering forwards (mahnsawce).
  • Fixed bugs in find_ent* natives which choked on 0 indices (Pimp Daddy).
  • Fixed CVector assertions (fsfod).
  • Fixed get_keyvalue not being a valid native in Engine (Vortox).
  • Fixed include files so formatting Sql or Res variables won't give a tag mismatch (Pimp Daddy).
  • Fixed many include files.
  • Fixed "amx_client_languages" cvar.
  • The command "amxx plugins" will now report plugin load errors that occurred (requested by mahnsawce).
  • The command "amxx version" will now report whether your Core build is normal, ASM, or JIT.
  • Admin_sql now reverts to users.ini on failure (requested by QwertyAccess).
  • SQL configuration CVARs are now enabled by default (Gonzo).
  • Changed is_jit_enabled(): now reports 1 for JIT, 0 for safe, -1 for ASM.
  • Added module load simulator to default linux packages.
  • Module names listed in modules.ini can now be loaded independently of their extension (for example _i386 will search for _amd64 on AMD64, et cetera) (requested by UgLyPuNk).

Alpha 0.20-TP4

Release Version: 0.20-TP4
Release Codename: none (bugfix)
Release Date: September 2, 2004

  • Changed amxx_mm.* to amxmodx_mm.*
  • Changed "amxx" to "amxmodx" for addons folder.
  • Switched from 2.6.0 compiler to 2.5.1 (2.6.0 is much too buggy).
  • Enabled the JIT on Linux (sorry - Makefile bug showed we hadn't been doing this).
  • Rewrote task system to use Forward API.
  • Added CVAR to multilingual plugin to disable client side options - "amx_client_languages".
  • Fixed a bug in forward API where parameters would be garbage.
  • Fixed crash bugs in Forward API.
  • Fixed many string format crash bugs in amxmodx core.
  • Fixed other string formatting issues such as %% and % being parsed improperly. (reported by Gonzo)
  • Fixed a memory leak on loading amxx plugins.
  • Fixed a bug in the Module SDK header file where structs could be misaligned. (reported by fsfod)
  • Fixed many crash bugs in the MySQL module. (reported by Gonzo)
  • Fixed memory leaks in both Engine and MySQL.
  • Fixed bugs in Engine that caused crashes in DoD and prevented optimization.
  • Fixed message capturing in Engine so it can work with multiple plugins. (reported by fsfod)
  • Fixed plmenu and get_user_team bugs in DoD package and TFC package.
  • Fixed top15 display problems in DoD package.
  • Fixed bug where amx_say would use the ML system.
  • Fixed bug where remove_task() could cause a server crash on shutdown. (reported by Pimp_Daddy)
  • Fixed bug where client_command was not a blockable forward.
  • Fixed bug where radians were not converted properly. (malex)
  • Fixed buffer overflow security holes in string formatting routine (legacy code from AMX Mod)
  • Removed pvPrivateData functions from Engine and placed into Fakemeta_amxx.
  • Added NewDLL HLAPI functions to FakeMeta. (reported by mahnsawce)
  • Greatly improved error reporting for both MySQL and Engine.

Alpha 0.20-TP3

Release Version: 0.20-TP3
Release Codename: none (bugfix)
Release Date: August 24, 2004

  • Changed .amxx plugin format - changed compression from LZO to GZ
 -Note on the above - old .amxx files will not work, recompile with the new compiler.
 -The compression will be 30-80% better, but that's not the reason for the switch (which was licensing issues)
  • Fixed include files to be more backwards compatible
  • Fixed bad compiling options in both AMD64 and Linux compiles (stdc++ dependencies)
  • -This also fixes a crash bug in the cstrike package and load errors
  • Fixed a very ubiquitous crash bug in MySQL
  • Fixed a crash bug in Core when resolving certain strings
  • Increased compiler line buffer

Alpha 0.20-TP2

Release Version: 0.20-TP2
Release Codename: "Tiger"
Release Date: August 22, 2004

  • Packages
    • AMX Mod X is now packaged as mod independent. You can download mod packages which enhance
    • Strike (this
    • Zero), Day of Defeat, Natural Selection, The Specialists, and Team Fortress Classic.
    • If you would like to be the maintainer of a mod package, please contact the AMX Mod X Team. Mod
    • The custom dir has been removed. Use the configs folder. get_customdir() will use configs.
    • A "data" folder has been added for binary files. "data/lang" holds language translations.
  • Modules
    • Modules are no longer loaded through Metamod. AMXx acts as a Metamod wrapper for all HL engine
    • The above functionality is called FakeMeta. AMXx in fact treats its own engine calls as an internal Fakemeta plugin.
    • Modules have a new, more complete, Application Programming Interface (API). It is an SDK which allows developers
    • AMXx now loads modules in three formats: amxx, amx, and amx&mm. The configuration file "modules.ini"
    • Listenservers have been finicky with Steam ever since an update which broke AMX 0.9.6j+ API
    • Modules no longer use a specific struct of function pointers. A function request system makes modules,
  • Core
    • The Just In Time Compiler (JIT) is now enabled by default. It translates AMX plugins to native
    • AMX Mod X is fully 64bit compatible. Plugins now end in ".amxx" to reflect a new, 64bit compatible
    • For debuggers/developers, there is now a Memory Test build which will log all memory usage to peroidic
    • There is also a special optimization build for newer processors (not default in packages).
    • Many, many portions of the AMX Mod X core were rewritten from the ground up. This includes various
  • Multi-Lingual
    • AMX Mod X now features an API for multi-lingual development. An intuitive system lets you add language
    • Language definitions are retrieved as multi-layered formatted strings in a system that crosses between
    • The AMX Mod X Plugins have been translated into over 10 languages! Hats off to the translators.
  • MySQL Module
    • SQL support has been heavily changed. The MySQL module was completely rewritten from scratch. Known
    • There is now a universal Database Interface (DBI) which allows for more advanced scripting using
    • such as per-query results, resource handles, and better error
    • The new interface can break backwards compatibility. Old plugins may or may not work, and it's best to
    • There is now a module for PostgreSQL support and Microsoft SQL Server support (Windows only).
  • Engine Module
    • The Engine module was completely rewritten from scratch for a more organized code base.
    • Many natives were merged in from NS2AMX when it was split to form n2_amxx.
    • Engine has been optimized to no longer strain servers like it's original VexD base.
  • CSStats Module
    • Known CSStats issues have been fixed in AMXx's rewrite of CSStatus "CSStats2".
  • NS_amxx Module
    • Mahnsawce has continued his excellent Natural Selection work to port his NS module to AMX Mod X.
  • DoD Modules
    • AMX Mod X comes with DoDX for Day of Defeat Statistics and DoDFun for Day of Defeat scripting.
  • TFCx Module
    • AMX Mod X comes with a Team Fortress Classic statistical package.
  • GeoIP Module
    • The GeoIP module has been ported to AMX Mod X, written from scratch and updated.
  • Array Module
    • A module for advanced array manipulation is now included.
  • Sockets Module
    • A module for network socket manipulation is now included (kenterfie).
  • Fakemeta Module
    • Almost all metamod functionality has been captured into a module for use in Small.
    • Fakemeta module can call, hook, supercede, or block almost every Half-Life engine and DLL function.
    • It also has simplified natives for accessing player private data and edict properties.
    • Fakemeta features the same optimizations as Engine. It won't lag from being idle.
  • Plugins
    • The Admin and Admin_mysql plugins have been merged into one plugin, with a preprocessor directive
    • The Stats plugin has been replaced with XAD's StatsX.
    • Admin_mysql is now admin_sql.
    • All base plugins that detect Counter-Strike will now work on Condition-Zero automatically.
    • Per-map configuration files can be stored as .cfg files on configs/maps, which will be auto-executed on
    • up (admin base).
    • Anti-Flood now more intelligently flood protects (internal increment and decrement counters).
    • The new multi-lingual plugin allows clients to set their own languages for real-time translation.
    • Plugins are now compressed into a new plugin format called ABL - the new extension to reflect this is
    • Normal .amx plugins will not work on the AMD64 version of AMX Mod X - you need to use .amxx
    • A new compiler - amxxsc.exe - is being used. It's a hybrid Small/AMXx compiler.
    • A new batch compiler has been made - compiler.exe for windows.
    • You can now write plugins in AMX Assembly (sasm.exe).
  • Configuration
    • mysql.cfg is now sql.cfg
    • amx_mysql_ CVARs are now named amx_sql_ instead.
    • Slot reservation is no longer default
    • Counter-Strike specific modules, plugins, and settings are no longer default.
    • modules.ini and plugins.ini are now a tad more descriptive.
    • amx_client_languages allows you to select whether clients can use the multilingual system.
  • The list of new natives was removed because it was too long.
  • Core
    • No longer crashes on bad modules
    • Fixed license (GPL now reports properly).
    • Better Condition-Zero support.
    • read_data(0) returns the msgid in events.
    • Removed amx_version cvar.
    • New internal function forwarding system.
    • New Module API fixes old idiosyncracies.
    • Removed many warnings in gcc.
    • New floating point module from ITB Compuphase.
    • Rewrote many portions of the core from scratch.
    • Upgraded to latest abstract machine and added AMD64 compatibility.
  • Cstrike
    • Fixed rare crash bug in all natives (being used before players are initialized).
  • Engine
    • Rewritten from scratch.
    • Fixed memory leaks
    • Fixed message natives.
    • Imported many natives from NS2AMXx.
    • Fixed crash bugs.
  • Fun
    • Now uses the correct, original set_user_hitzones functionality.
  • MySQL
    • Rewritten from scratch, contains a new codebase and operation style.
    • Fixed crash bugs.
  • Plugins
    • Fixed typos in various includes.
    • Added second parameter to amx_help.
    • Changed amx_mode to 1 by default.
    • Fixed access level bugs.
    • Added multi-lingual settings.
  • Core
    • Fixed a possible crash bug where Cmd_Args would return NULL.
    • Fixed type "Dettach" to "Detach".
    • Fixed crash bug on invalid plugin path.
    • Added memory allocation failure checks.
    • Fixed file handles staying open on error.
    • Fixed get_module.
    • Added amxmodx_modules cvar.
    • get_user_weapons sets the third parameter to 0 before counting.
    • cs_set_user_team now updates models/scoreboards right away.
    • cs_set_user_vip changes to the VIP model/updates scoreboard right away.
    • Fixed cs_set_hostage_foll
    • Fixed engclient_cmd.
    • Added md5() functionality.
    • Added some string manipulation.
    • Fixed memory leaks.
  • Fun
    • Added TFC support for give_item.
  • Plugins
    • Fixed a small bug in make_deathmsg.
    • Fixed localinfo for users.ini
    • Fixed if NO_STEAM is defined for adminslots.sma
    • March 15, 2004
    • We are using the old SC 2.1 small compiler.
    • March 08, 2004
    • game stats theme
    • Selection
    • Strike 1.6 maps to maps.ini
    • Strike module and added functions:

Branch 0.1

Release 0.16

Release Version: 0.16
Release Codename: "Rockzilla"
Release Date: March 26, 2004

  • amx.cfg is now amxx.cfg, in configs dir
  • New folder - custom, for custom configs from 3rd party plugins
  • Fixed conditional event bug in core.
  • Fixed engine get/set_offset_float
  • Fixed engine to have get/set_speak
  • Added jghg2 into engine (with
  • Fixed give_item for all mods
  • Fixed amx_plugins command
  • Fixed access levels being random
  • Fixed include files
  • Fixed cstrike having long native lengths
  • Fixed maxspeeds
  • Fixed call_think in engine
  • Added cstrike natives cs_get_weapon_ammo, cs_set_weapon_ammo
  • Cstrike now animates with cs_set_weapon_silen
  • localinfos are back (addons/amxx/core.ini too)
  • Plugins now use localinfo with get_basedir and get_configsdir
  • amx_version / amxmodx_version cvar fixed
  • get_modulesnum native fixed
  • reading from files with weird line breaks should work now
  • NOTE! Plugin writers should store their files in get_configsdir()

Release 0.15

Release Version: 0.15
Release Codename: "Bugzilla"
Release Date: March 15, 2004

  • Fixed event related bugs such as incorrect timing and crashes.
  • Removed all std:: code and lstdc++ requirement.
  • Moved messaging functions back into core from ENGINE
  • Many documentation fixes
  • Added xtrafun support backwards support.
  • TEMPORARY - We are using the old SC 2.1 small compiler.
  • Removed .amx from logging plugin names.
  • Hardcoded directory names into core.
  • get_module also returns status.
  • Fixed logging crashes.
  • Removed get_user_wonid.
  • cs_set_user_vip and cs_get_user_vip fixed.
  • cs_set_user_deaths now updates scoreboard.
  • Fixed ENGINE memory leaks.
  • Fixed register_message argument functions.
  • Fixed controller and blending values.
  • Reduced set_view lag.
  • It is now possible to shoot and break func_breakables.
  • Removed fun cvars and engine cvars and amx_version cvar.
  • Removed FUN debug messages.
  • Added set_user_hitzones and get_user_hitzones.
  • Removed set_hitzones.

Alpha 0.10

Release Version: 0.10
Release Codename: "Xerocks"
Release Date: March 08, 2004

  • Imported the initial AMX Mod code base.
  • updated to new Small Abstract Machine and Small Compiler
  • added welcome message for Steam (replaces the default motd)
  • kicking/banning reason is displayed on target player
  • changed amx_ban, amx_banid and amx_banip command
  • mysql table is automatic created
  • mapchange obeys mp_chattime
  • updated in-game stats theme
  • fixed say @... and say_team @... under Natural-Selection
  • only admins can view amx_who
  • added Counter-Strike 1.6 maps to maps.ini
  • added native functions:
    • log_amx( ... )
    • is_module_loaded( ... )
    • get_module( ... )
    • get_modulesnum( ... )
    • is_plugin_loaded( ... )
    • callfunc_begin( ... )
    • callfunc_push_...( ... )
    • callfunc_end( ... )
  • added commands:
    • amx_reloadadmins
    • amx_plugins
    • amx_modules
  • moved some native functions to new Counter-Strike module and added functions:
    • cs_get_hostage_follow( ... )
    • cs_set_hostage_follow( ... )
    • cs_get_hostage_id( ... )
    • cs_get_user_backpackammo( ... )
    • cs_set_user_backpackammo( ... )
    • cs_get_user_defusekit( ... )
    • cs_set_user_defusekit( ... )
    • cs_get_user_inside_buyzone( ... )
    • cs_get_user_model( ... )
    • cs_set_user_model( ... )
    • cs_reset_user_model( ... )
    • cs_get_user_nvgoggles( ... )
    • cs_set_user_nvgoggles( ... )
    • cs_get_user_plant( ... )
    • cs_set_user_plant( ... )
    • cs_set_user_team( ... )
    • cs_get_user_vip( ... )
    • cs_set_user_vip( ... )
    • cs_get_weapon_burstmode( ... )
    • cs_set_weapon_burstmode( ... )
    • cs_get_weapon_silenced( ... )
    • cs_set_weapon_silenced( ... )
  • moved some native functions to new Engine module and added functions:
    • register_message( ... )
    • get_msg_...( ... )
    • set_msg_...( ... )
    • get_offset_...( ... )
    • set_offset...( ... )
    • precache_generic( ... )
    • entity_get_...( ... )
    • entity_set_...( ... )
    • create_entity( ... )
    • find_entity_...( ... )
    • call_think( ... )
    • is_valid_ent( ... )
    • entity_set_origin( ... )
    • entity_set_model( ... )
    • remove_entity( ... )
    • entity_count( ... )
    • fake_touch( ... )
    • DispatchKeyValue( ... )
    • DispatchSpawn( ... )
    • RadiusDamage( ... )
    • VelocityByAim( ... )
    • PointContents( ... )
    • trace_line( ... )
    • trace_normal( ... )
    • vector_to_angle( ... )
    • vector_length( ... )
    • vector_distance( ... )
    • get_grenade_id( ... )
    • halflife_time( ... )
    • set_lights( ... )
    • set_msg_block( ... )
    • get_msg_block( ... )
    • attach_view( ... )
    • set_view( ... )
    • pfn_touch( ... )
    • server_frame( ... )
    • client_kill( ... )
    • client_PreThink( ... )
    • client_PostThink( ... )