> Writing Plugins
> Script Functions
> C++ Reference
Monthly Goal/Fees: $200
Amount Needed: $83
Hall of Fame
SourceMod is server modification for any game that runs on the Half-Life 2 engine. It is a powerful, highly optimized platform for scripting plugins and handling server administration. The default package comes with a base set of plugins, but there are over 2,500 plugins in the community.
Basic Features (Users)
SourceMod is highly optimized and ideal for getting the most performance out of your Source servers, without the complexity of writing C++ code.
- An easy to use, deeply fine-grained permissions system (SQL compatible)
- A highly configurable admin menu
- Reserved slots
- Flexible map management plugins (nominations, rock the vote, etc)
- Basic commands such as kicking/banning/slapping/muting players, changing cvars, etc
- Various voting commands
- Chat spam protection
- Comprehensive chat triggers for both users and administrators
- Easily translatable
Scripting Features (Developers)
- Administration - Comprehensive API for developing administration systems.
- Clients - Working with in-game client information and callbacks.
- Commands - Creation, hooking, and overriding of client and server console commands.
- ConVars - Creation, hooking, and retrieval of console variables.
- Database - Abstracted database access.
- Engine - Access to many Half-Life 2 engine features, with more constantly being added.
- Entities - Changing and retrieving entity properties, both named and numbered.
- Events - Creating, firing, and hooking of Half-Life 2 GameEvents.
- Files - Access to the filesystem.
- IPC - Advanced inter-plugin communication, similar to AMX Mod X.
- Menus - Abstracted menu API for creating uniform menus across mods
- Messages - Sending and hooking UserMessages.
- Parsing - Advanced, highly optimized text parsing.
- Timers - Creation of timed events.
- Translation - Multi-Lingual phrase file lookup.
What makes SourceMod different? (Developers)
- Speed - SourceMod is lightning fast, and this is not an idle boast. Every plugin is loaded into memory and converted to raw CPU code. Great care is taken to make sure every hot area in SourceMod is as fast as it should be. The scripting language is statically typed and does not require garbage collection.
- API - The majority of work in SourceMod occurs in making the API the best we can. When adding any interface or function, we ask the following questions:
- Does it represent an optimized solution?
- Would anyone use it?
- How confusing is it?
- Does it match the most probable common usage?
- Will it be possible to extend it in the future?
- Does its name represent what it does?
- Does its name conform to other similar functions?
- Extensibility - SourceMod is completely extensible. SourceMod provides a complete C++ API for extending both SourceMod and the Plugin event/native API. You can also write C++ plugins.
- Open-Source - SourceMod, its extensions, and its plugins, are all open source under the GNU General Public License!