SourceMod 1.3.0 Release Notes
SourceMod 1.3. is a major update with many new features and bug fixes.
Overview for Admins
- New Game Support - SourceMod now runs on Left 4 Dead 2
- Metamod:Source 1.8 is now required.
- Voting now has fine-grained progress updates. These updates are sent to channels based on the following cvars (which all take either "0" or "1" for values):
- Lots of stability fixes.
Overview for Developers
- You can now interact with non-networked entities.
- float.inc now has uniform random number generators based on Mersenne Twister.
- There is a new API for hooking many commands at once (Add/RemoveCommandListener). Plugins should avoid the drastic measure of individually hooking every single command. It adds a great deal of overhead to command invocation throughout the entire engine. Plugins found doing this will be unapproved. Accidentally registering the "sm" command is a run-time error in SourceMod 1.4 (and a failure with warning in 1.3).
- Plugins can now test the existence of features, allowing you to opt-in to newer functionality.
Registering "sm" command: Plugins may no longer hook the "sm" command. Plugins which do so will log a message, and will not receive notifications when the "sm" command is used. The plugin will continue working otherwise. Known plugins affected:
- Kigen Anti-Cheat 1.1.9 and earlier
In future versions of SourceMod, trying to hook the "sm" command is a run-time error. Developers should use the new AddCommandListener() API instead.
OnClientCommand Changes: Another potential issue for developers is that OnClientCommand is no longer called for clients that are not fully in-game yet. This decision was made for security reasons. Other callbacks have similar guarantees so plugins often forget to make this important check, which can expose errors in plugin logic. Plugins relying on unconnected clients (none are publicly known to do this) should use the new AddCommandListener() API.
SourceMod 1.3 comes with the following languages translated, thanks to community translators:
- Brazilian Portuguese
- Chinese Simplified
- Chinese Traditional
- Added Left 4 Dead 2 support (bug 4075).
- Added much richer voting progress feedback (bug 1997).
- Improved support for various third-party games (Nicholas "psychonic" Hastings).
- Added @spec target (bug 2718).
- Added sm_resetcvar command (bug 3636).
- Added "motd" chat trigger (bug 2694).
- Updated GeoIP to OCT-2009.
- Fixed rare map vote error (bug 3905).
- Fixed small leak in the nominations plugin (bug 4104).
- Fixed last client being excluded from some command effects (bug 3984).
- Fixed crashes in plugin [|un|re]loading (bug 4034, bug 4038, bug 4044, bug 4153).
- Special target "@me" is now filtered for certain statuses properly (bug 4000).
- Improved non-admin to admin chat (bug 3844).
- Removed "auto.*" extension folders (bug 3949).
- Added non-networked entity support (bug 2459).
- Added improved random number generator (bug 3831).
- Added GetClientCookieTime native (bug 3736).
- Added AskPluginLoad2 callback (bug 3716).
- Added PlayerRunCmd callback (bug 3289).
- Added PointOutsideWorld native (bug 3906).
- Added API for "blanket" command hooks (bug 4015).
- Added ability to test for SourceMod features (bug 4021).
- Added ability to change broadcast status on hooked events (bug 3886).
- OnClientCommand no longer receives unconnected clients (bug 3732).
- Fixed various bugs in client listening API (bug 3818).
- Fixed crash in BanClient (bug 3912).
- Fixed various crashes in self-removing callbacks (bug 4059).
- Fixed rare HUD text crash on TF (bug 4016).
- Fixed OnConfigsExecuted not running on EP1 games with large configs (bug 3828).
- Fixed entity output hooks not working (bug 3988).
- Gamedata folder matches are now case-insensitive (bug 3913).
- Blocked plugins from hooking "sm" command (bug 4013).