Transitions to CounterStrikeSharp
Following the significant breakage of legacy Metamod/SourceMod setups in late 2025, the CS2 community has officially unified around **CounterStrikeSharp**. This C#-based framework is now the industry standard for creating custom game modes, admin tools, and server-side logic.
๐ Why the Switch?
- Stability: SourceMod's legacy hooks were frequently broken by Valve's subtick updates.
- Modern Language: C# offers better performance and safer memory handling than the aging Pawn language.
- Direct Source 2 Integration: CounterStrikeSharp interacts directly with the Source 2 engine's schemas and entities.
Prerequisites for CS2 Scripting
Before installing CounterStrikeSharp, your dedicated server must have the following:
- Metamod:Source (2.0+): Ensure you are using the latest dev branch (specifically Build 2.0.x-dev or higher).
- .NET 8.0/9.0 Runtime: As the framework is built on C#, you must install the .NET runtime on your Linux or Windows host.
- Server Build:
Build 1.40.xor higher.
Installation Workflow (Linux)
Most competitive servers run on Linux for low-latency kernel scheduling. Follow these steps to install the new meta-layer:
# 1. Download and Extract Metamod
wget https://mms.alliedmods.net/mmsdrop/2.0/mmsource-2.0.0-git1315-linux.tar.gz
tar -xzf mmsource-*.tar.gz -C csgo/
# 2. Download CounterStrikeSharp
# Ensure you get the 'with-runtime' version if you haven't installed .NET globally
wget https://github.com/rofl0lmao/CounterStrikeSharp/releases/download/v2.x/counterstrikesharp-with-runtime-linux-xx.zip
unzip counterstrikesharp-*.zip -C csgo/
# 3. Add to Metamod VDF
# Edit csgo/addons/metamod.vdf to include the 'cssharp' entry
The C# Meta: Key Differences
If you are coming from 10+ years of SourceMod, the logic shift is significant:
๐ก๏ธ Hooking Events
In CSSharp, you use [GameEventHandler] attributes. Events are now "strongly typed," meaning you get intellisense in your IDE for player names and entity IDs.
๐ฆ Nuget Packages
You can now use any C# Nuget package. Want your server to talk to Discord via an API? Just import the Discord.Net package directly into your plugin.
Managing Plugins in 2026
Plugins are now stored in /csgo/addons/counterstrikesharp/plugins/. Each plugin usually exists in its own subfolder to prevent DLL conflicts.
Recommended Essential Plugins (2026)
- CSSharp-AdminManager: A modern replacement for
admins_simple.ini. - MatchZy: The standard for competitive match management, scrims, and practice modes.
- SkinChangerV2: Highly optimized weapon skin management using the latest schema-bypass techniques.
Frequently Asked Questions
Can I still use my .smx plugins?
No. SourceMod (.smx) and CounterStrikeSharp (.dll) are incompatible. You must find a C# port of your favorite plugins or re-write them.
Is this safer for VAC?
CounterStrikeSharp is a server-side framework. It does not modify client files, making it completely safe for "Protected" servers. Valve has historically allowed Metamod-based tools for community servers.
What about performance?
C# plugins are JIT-compiled (Just-In-Time), meaning they run at nearly native speed. They are significantly faster than SourceMod's interpreted PawnVM.
Next Steps
Professional C# Hosting: All Supercraft CS2 servers come pre-configured with the latest CounterStrikeSharp runtime. We handle the Metamod updates so you can focus on building your community.