Difference between revisions of "SourceMod 1.2.0 Release Notes"

From AlliedModders Wiki
Jump to: navigation, search
m
m
 
(21 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
__FORCETOC__
 
__FORCETOC__
SourceMod 1.2 is a major update.  It is fully backwards compatible.  Old plugins and extensions will continue to work.
+
SourceMod 1.2 is a major update.  It is backwards compatible with all known plugins (see notes for details).
  
=TODO List=
+
This release includes configuration changes to <tt>core.cfg</tt>.  You should either overwrite your old <tt>core.cfg</tt>, or merge in the new settings available.
*<strike>[http://tinyurl.com/cgxk4w blocking-1.1.1+] HIGHEST PRIORITY</strike>
+
 
*[http://tinyurl.com/6c6qqb blocking-1.2+] HIGH PRIORITY
+
=New Game Support=
*[http://tinyurl.com/9xo7y7 wanted-1.2+] LOW PRIORITY
+
SourceMod 1.2 includes full support for two additional game engines:
 +
*[http://www.l4d.com/ Left 4 Dead], a new game released by Valve.  Notes:
 +
**This game uses a new engine, similar to Orange Box.  Metamod:Source support is available in 1.7.0+.
 +
**<tt>nextmap.smx</tt> will appear disabled, since it has no use.
 +
**[[Multiple_or_Forked_Servers_(SourceMod)|Do not use forked servers over one copy of SourceMod.]]
 +
**Selecting an unavailable menu item will cause menus to disappear, without any "end of menu" callback being fired.  This is a bug in the game client (see discussion at {{bz|3566}}).
 +
*[http://darkmessiahmightandmagic.us.ubi.com/ Dark Messiah of Might and Magic], by Ubisoft.  Notes:
 +
**This game only has a Windows server, so SourceMod only supports it on Windows.
 +
**This game uses a modified pre-Episode 1 engine, similar but more deviating than The Ship. Metamod:Source support is included in 1.7.1+, and uses the "new" MM:S API, not the legacy API (unlike other earlier engines).
 +
**Reverse engineered HL2SDK headers are available on the [http://hg.alliedmods.net/ AlliedModders Mercurial Forest].
 +
 
 +
 
 +
=New Updater=
 +
SourceMod 1.2 includes a rewrite of the gamedata updating system.  It has been moved from Core into an extension, and uses an HTTP connection instead of a hand-crafted protocol.  This was done to make maintenance easier and to simplify protocol changes.
 +
 
 +
The gamedata fetcher no longer skips default files which have custom changes.  These will be overwritten if updates are pending.  '''You have been warned.'''  See the Gamedata Changes section on this page for more information on how to add custom changes.
 +
 
 +
[[Multiple_or_Forked_Servers_(SourceMod)|Do not use forked or multiple server instances over one copy of SourceMod.]]  This is essential.  The updater, while it doesn't create lock files anymore, can potentially write new files to the gamedata folder.  If multiple servers are trying to do this at once, the end result could be undefined.  Use separate copies of SourceMod.
 +
 
 +
 
 +
=Gamedata Changes=
 +
Gamedata files can now be placed in "gamedata folders," which if they exist, completely override the existence of old files (in that they do not get parsed).
 +
 
 +
In addition, there is a "custom" folder underneath the new gamedata folders.  You can use these to place new files that will get parsed after all other parsing is done.  Custom files are read in an undefined order, and are immune from automatic updates.  Custom files may have any name, but must end in <tt>.txt</tt>
 +
 
 +
For example, if SDKTools asks for "sdktools.games", Core will now read <tt>gamedata/sdktools.games/master.games.txt</tt> instead.  This file has a simple format:
 +
 
 +
<pre>"Game Master"
 +
{
 +
    "file"
 +
    {
 +
        "rule1"    "value"
 +
    }
 +
}</pre>
 +
 
 +
Each section under the main section is a file name.  The file is loaded if all the rules underneath it match.  Available rules are:
 +
*"engine" as one of "original", "orangebox", "left4dead", or "darkmessiah"
 +
*"game" as used in normal gamedata files.
 +
 
 +
This helps minimize the amount of file maintenance and complexity in systems with many gamedata entries across many games.
 +
 
 +
 
 +
=Compatibility=
 +
*If you compile plugins (or extensions) with SourceMod 1.2, they cannot be run on SourceMod 1.1, even if they do not use new features. 
 +
*SourceMod 1.2 cannot be "downgraded" to SourceMod 1.1 unless the extensions folder is cleared.  This is because the "bintools" extension is in a new location, and the new version will be loaded over the old after downgrading.
 +
*'''Developers:''' The "usermessage" API has changed.  <tt>MsgNotify</tt> has been removed entirely, and replaced with <tt>MsgPostHook</tt>.  This change is transparent, and no plugins appeared to have been using the API.  If you have a plugin relying on the <tt>MsgNotify</tt> functionality, your plugin will now receive intercepted calls that are blocked as well.  Update your source, recompile, and use the new <tt>sent</tt> parameter to filter.
 +
 
 +
 
 +
=Translations=
 +
SourceMod 1.2 comes with the following languages translated, thanks to [http://www.sourcemod.net/translator/?go=translate&op=status community translators]:
 +
*Brazilian Portuguese
 +
*Chinese Simplified
 +
*Danish
 +
*Dutch
 +
*French
 +
*German
 +
*Hungarian
 +
*Italian
 +
*Japanese
 +
*Latvian
 +
*Norwegian
 +
*Polish
 +
*Romanian
 +
*Russian
 +
*Spanish
 +
*Turkish
  
  
 
=Changelog=
 
=Changelog=
 
*Added Left 4 Dead support ({{bz|3414}}).
 
*Added Left 4 Dead support ({{bz|3414}}).
*Added Dark Messiah supported.
+
*Added Dark Messiah game support (requires Metamod:Source 1.7.1 or higher).
 
*Added sm_name command ({{bz|2150}}).
 
*Added sm_name command ({{bz|2150}}).
 
*Added extension-level dynamic hooking to bintools ({{bz|2616}}).
 
*Added extension-level dynamic hooking to bintools ({{bz|2616}}).
Line 16: Line 81:
 
*Added cURL extension, available to other extensions ({{bz|3560}}).
 
*Added cURL extension, available to other extensions ({{bz|3560}}).
 
*Added parsing of custom gamedata files ({{bz|3644}}).
 
*Added parsing of custom gamedata files ({{bz|3644}}).
 +
*Added case insensitivity search to ReplaceString ({{bz|3639}}, Fyren).
 +
*Added more detail to certain player-oriented menu titles ({{bz|2740}}, Fyren).
 +
*Added sv_tags API ({{bz|3688}}).
 +
*Greatly improved admin-sql-prefetch performance for large tables ({{bz|3354}}, FLOOR_MASTER).
 
*Exposed IServer address to extensions ({{bz|3545}}).
 
*Exposed IServer address to extensions ({{bz|3545}}).
 
*New gamedata organization; files are now smaller and per-game ({{bz|3546}}).
 
*New gamedata organization; files are now smaller and per-game ({{bz|3546}}).
Line 27: Line 96:
 
*Improved compile.sh to take filenames ({{bz|3550}}, jonasfietz).
 
*Improved compile.sh to take filenames ({{bz|3550}}, jonasfietz).
 
*sm_kick now shows the kick reason when available.
 
*sm_kick now shows the kick reason when available.
*Fixed MsgSentNotify callbacks not firing on intercept hook ({{bz|3631}}).
+
*Fixed MsgPostHook (ex MsgSentNotify) callbacks not firing on intercept hook ({{bz|3631}}).
 +
*Note: SourceMod now adds "sourcemod" to the sv_tags cvar.

Latest revision as of 11:18, 12 March 2009

SourceMod 1.2 is a major update. It is backwards compatible with all known plugins (see notes for details).

This release includes configuration changes to core.cfg. You should either overwrite your old core.cfg, or merge in the new settings available.

New Game Support

SourceMod 1.2 includes full support for two additional game engines:

  • Left 4 Dead, a new game released by Valve. Notes:
    • This game uses a new engine, similar to Orange Box. Metamod:Source support is available in 1.7.0+.
    • nextmap.smx will appear disabled, since it has no use.
    • Do not use forked servers over one copy of SourceMod.
    • Selecting an unavailable menu item will cause menus to disappear, without any "end of menu" callback being fired. This is a bug in the game client (see discussion at bug 3566).
  • Dark Messiah of Might and Magic, by Ubisoft. Notes:
    • This game only has a Windows server, so SourceMod only supports it on Windows.
    • This game uses a modified pre-Episode 1 engine, similar but more deviating than The Ship. Metamod:Source support is included in 1.7.1+, and uses the "new" MM:S API, not the legacy API (unlike other earlier engines).
    • Reverse engineered HL2SDK headers are available on the AlliedModders Mercurial Forest.


New Updater

SourceMod 1.2 includes a rewrite of the gamedata updating system. It has been moved from Core into an extension, and uses an HTTP connection instead of a hand-crafted protocol. This was done to make maintenance easier and to simplify protocol changes.

The gamedata fetcher no longer skips default files which have custom changes. These will be overwritten if updates are pending. You have been warned. See the Gamedata Changes section on this page for more information on how to add custom changes.

Do not use forked or multiple server instances over one copy of SourceMod. This is essential. The updater, while it doesn't create lock files anymore, can potentially write new files to the gamedata folder. If multiple servers are trying to do this at once, the end result could be undefined. Use separate copies of SourceMod.


Gamedata Changes

Gamedata files can now be placed in "gamedata folders," which if they exist, completely override the existence of old files (in that they do not get parsed).

In addition, there is a "custom" folder underneath the new gamedata folders. You can use these to place new files that will get parsed after all other parsing is done. Custom files are read in an undefined order, and are immune from automatic updates. Custom files may have any name, but must end in .txt

For example, if SDKTools asks for "sdktools.games", Core will now read gamedata/sdktools.games/master.games.txt instead. This file has a simple format:

"Game Master"
{
    "file"
    {
        "rule1"     "value"
    }
}

Each section under the main section is a file name. The file is loaded if all the rules underneath it match. Available rules are:

  • "engine" as one of "original", "orangebox", "left4dead", or "darkmessiah"
  • "game" as used in normal gamedata files.

This helps minimize the amount of file maintenance and complexity in systems with many gamedata entries across many games.


Compatibility

  • If you compile plugins (or extensions) with SourceMod 1.2, they cannot be run on SourceMod 1.1, even if they do not use new features.
  • SourceMod 1.2 cannot be "downgraded" to SourceMod 1.1 unless the extensions folder is cleared. This is because the "bintools" extension is in a new location, and the new version will be loaded over the old after downgrading.
  • Developers: The "usermessage" API has changed. MsgNotify has been removed entirely, and replaced with MsgPostHook. This change is transparent, and no plugins appeared to have been using the API. If you have a plugin relying on the MsgNotify functionality, your plugin will now receive intercepted calls that are blocked as well. Update your source, recompile, and use the new sent parameter to filter.


Translations

SourceMod 1.2 comes with the following languages translated, thanks to community translators:

  • Brazilian Portuguese
  • Chinese Simplified
  • Danish
  • Dutch
  • French
  • German
  • Hungarian
  • Italian
  • Japanese
  • Latvian
  • Norwegian
  • Polish
  • Romanian
  • Russian
  • Spanish
  • Turkish


Changelog

  • Added Left 4 Dead support (bug 3414).
  • Added Dark Messiah game support (requires Metamod:Source 1.7.1 or higher).
  • Added sm_name command (bug 2150).
  • Added extension-level dynamic hooking to bintools (bug 2616).
  • Added client validation API to replace passing userids asynchronously.
  • Added cURL extension, available to other extensions (bug 3560).
  • Added parsing of custom gamedata files (bug 3644).
  • Added case insensitivity search to ReplaceString (bug 3639, Fyren).
  • Added more detail to certain player-oriented menu titles (bug 2740, Fyren).
  • Added sv_tags API (bug 3688).
  • Greatly improved admin-sql-prefetch performance for large tables (bug 3354, FLOOR_MASTER).
  • Exposed IServer address to extensions (bug 3545).
  • New gamedata organization; files are now smaller and per-game (bug 3546).
  • Split sound functions into a new plugin, sounds.smx.
  • Fixed slap and slay on Insurgency (bug 2560).
  • Fixed blank admins being created from invalid admin file lines (bug 3431).
  • Fixed basetriggers not working on Insurgency (bug 3497).
  • Fixed client preferences missing some clients (bug 3616).
  • Improved database fallback mechanism in clientprefs (bug 3564).
  • Improved timer handling in funcommands (bug 3498).
  • Improved compile.sh to take filenames (bug 3550, jonasfietz).
  • sm_kick now shows the kick reason when available.
  • Fixed MsgPostHook (ex MsgSentNotify) callbacks not firing on intercept hook (bug 3631).
  • Note: SourceMod now adds "sourcemod" to the sv_tags cvar.