The transition of Counter-Strike 2 to the Source 2 engine completely reshaped the community server modding ecosystem. Legacy SourceMod and SourcePawn scripting environments are incompatible with the new engine. The contemporary standard for extending dedicated servers is the pairing of the low-level Metamod:Source 2.x loader alongside CounterStrikeSharp, a framework enabling robust C# plugin development built upon the .NET 8/9 runtime.
This practical guide details installing Metamod:Source on a dedicated Linux CS2 server, injecting search paths into gameinfo.gi, deploying the CounterStrikeSharp runtime environment, and configuring superadmin permissions.
Downloading and Extracting Metamod:Source for Linux#
Metamod functions as an essential binary abstraction layer between Source 2 server binaries (server.so) and third-party plugin modules.
Navigate to the csgo/ directory inside your dedicated installation and download the latest Metamod:Source 2.0 Linux build:
cd /opt/cs2-server/game/csgo && curl -L https://mms.alliedmods.net/mmsdrop/2.0/mmsource-2.0.0-git1313-linux.tar.gz -o mms.tar.gz && tar -xzf mms.tar.gz && rm mms.tar.gz
This extraction creates the directory addons/metamod/ and generates the runtime binding manifest addons/metamod.vdf.
Hooking Metamod into gameinfo.gi#
For the Source 2 engine to load Metamod during startup sequence initialization, its path must be declared within /opt/cs2-server/game/csgo/gameinfo.gi.
Inspect the SearchPaths section of the manifest:
grep -n "Game_LowViolence" /opt/cs2-server/game/csgo/gameinfo.gi
Prepend the declaration Game csgo/addons/metamod immediately before the Game_LowViolence csgo entry:
sed -i '/Game_LowViolence\s*csgo/i \\t\t\tGame\tcsgo/addons/metamod' /opt/cs2-server/game/csgo/gameinfo.gi
Without this modification, the dedicated binary launches in pure vanilla mode, ignoring all third-party addons.
Installing CounterStrikeSharp with Bundled .NET Runtime#
CounterStrikeSharp exposes native CS2 game interfaces to managed C# code. Fetch the distribution package containing the complete self-contained .NET runtime for Linux:
cd /opt/cs2-server/game/csgo/addons && curl -L -O https://github.com/roflmuffin/CounterStrikeSharp/releases/download/v297/counterstrikesharp-with-runtime-linux-297.zip && unzip counterstrikesharp*.zip && rm counterstrikesharp*.zip
Unpacking creates addons/counterstrikesharp/, containing core shared libraries alongside the plugins/ subdirectory where community extensions reside.
Configuring Administrative Roles in admins.json#
Administrative privileges are orchestrated through addons/counterstrikesharp/configs/admins.json, mapping SteamID64 accounts to permission flag sets:
cat /opt/cs2-server/game/csgo/addons/counterstrikesharp/configs/admins.json
Example configuration granting unrestricted root privileges:
{
"SuperAdmin": {
"identity": "76561198000000000",
"flags": [
"@css/root"
]
}
}
Reloading the Daemon and Console Verification#
Restart the server process via systemd to register the binary hooks:
sudo systemctl restart cs2 && sudo journalctl -u cs2 -n 25 --no-pager
In the interactive server console, execute meta list. A healthy installation outputs the Loaded status for the CounterStrikeSharp plugin. Furthermore, issuing css_plugins list confirms all active C# modules.
If you prefer operating a customized CS2 community server with pre-configured warmup plugins, custom workshop map rotations, and web consoles without editing engine files manually, managed CS2 game hosting delivers one-click CounterStrikeSharp deployment and instant plugin management.




