SourceMod 1.0.2 Release Notes
SourceMod 1.0.2 is a feature and bug-fix upgrade from 1.0.1. If you need help upgrading, see Upgrading SourceMod.
- All old plugins and extensions will continue to work.
- This release has new config files, but no config changes.
- Config files introduced during the beta period have been changed (see notes).
- This release has one very minor compatibility change.
- This release has no translation changes.
Custom Admin Menu
Also known as the "dynamic admin menu," the admin menu now has a much greater degree of customization. Server administrators can add new entries onto the menu via configuration files. For more information, see Custom Admin Menu (SourceMod).
The TF2 extension adds scripting functionality to servers running Team Fortress 2. It also adds two new multi-targets for admin commands:
- @red - Everyone on the red team
- @blue - Everyone on the blue team
The new regular expression extension adds scripting features for text pattern matching. You can view the new API here.
Entity Output Hooking
Entity outputs are delayed inputs from one entity to another. This system allows maps to queue actions on certain entities. When a specific action happens, the queue is emptied, and all of the inputs are fired.
SourceMod now allows scripts to intercept when these events fire. This is a powerful feature that lets plugins listen for very specific events, for example, when a door opens (class CDoor, event "OnOpen").
The API for this is here.
Map Config Helper
There is a new forward, OnAutoConfigsBuffered, for map config plugin authors. Using OnConfigsExecuted to run config files is a mistake, because config files must be guaranteed to have already loaded by that point in time, and ServerCommand is delayed.
Plugins with this mistake were notified a few weeks ago, and with this release, authors should make sure they fix any conflicts.
- The admin menu is now user-modifiable (the "Dynamic Admin Menu").
- Added a TF2 extension with Team Fortress 2 functions.
- Added a RegEx extension with regular expression functions.
- Added functions to SDKTools for hooking entity outputs.
- Added preliminary support for the DoD:S Orange Box beta.
- Added a forward for map config plugins for preventing race conditions.
- Added a %b format specifier for binary printing.
- Added sm_dump_datamaps command (SDKTools) for enumerating datamap properties.
- Added sm_dump_admcache command for debugging the admin cache.
- Added amb1715 - TraceHull functions to SDKTools (complementing TraceRay).
- Added amb1694 - FindCharInString() function.
- Added amb1685 - GetTickInterval() function.
- Added amb1620 - ActivateEntity() function to SDKTools (for Orange Box particle system).
- Added amb1610 - StripQuotes() function.
- Added amb1558 - Compiler now has __BINARY_PATH__ and __BINARY_FILE__ macros.
- Fixed amb1686 - ReplaceString* with an empty search string crashed; it now throws an error instead.
- Fixed amb1684 - Blank passwords required an existing but empty setinfo password.
- Fixed amb1595 - Extension load failures did not show a platform error message.
- Fixed amb1583 - MySQL string fetch from prepared queries returned corrupted data.
- Fixed amb1358 - Timeleft did not reset on TF2 restarts.
- Fixed cases where the JIT was too cautious in space optimizations.
- Fixed TF2/Cstrike extensions being loadable on incompatible games.
- Fixed various documentation inconsistencies and typos.
- Fixed internal bugs with file extension handling.
There is a possible compatibility regression from amb1684. SetAdminPassword() has been modified to remove any set password when given an empty string. Previously, a blank password ("") would force an admin to use "setinfo" to set an empty password, but this functionality was deemed unuseful and unintended. Blank passwords now remove any set password.
Moved Config Files
Two files were moved during the shift from beta to release. These files were introduced during the beta cycle and thus this modification is not considered a compatibility change. Nonetheless, there is a compatibility shim for this change.
- configs/dynamicmenu/adminmenu_grouping.txt is now configs/adminmenu_grouping.txt
- configs/dynamicmenu/menu.ini is now configs/adminmenu_custom.txt
- configs/dynamicmenu has been removed
Temporary compatibility is as follows: If any older file exists, it is loaded instead of the new file. If an old file cannot be found, the new file is loaded instead. This compatibility shim will be removed from all branches next release.
DoD:S Beta Support
Since DoD:S Orange Box is a beta, its SDKTools support is experimental only. It will be officially supported when DoD:S Orange Box is officially released.
The web compiler has been updated to build 1.0.2-compatible plugins. Old SourceMod installations will be able to run these plugins as long as no new functionality is used.
Removed TF2 Stocks
More broken TF2 stocks have been removed. There are no compatibility shims for them.
- TF2_SetPlayerClass's third parameter is now ignored
These functions may be restored in full if workarounds can be found.
SourceMod 1.0.2 replaces SourceMod 1.0.0, and 1.0.0 is no longer supported.
SourceMod 1.0.1 will continue to be supported, however, all bug fixes will occur in the 1.0.3 branch (which includes all changes in 1.0.2). Support for 1.0.1 will stop when 1.0.3 is released.