How to install CounterStrikeSharp plugins on a CS2 server
Plain Counter-Strike 2 servers have no plugin support. If you want features like map votes, admin menus, rank systems or custom game modes, you add a plugin framework. For CS2, that framework is CounterStrikeSharp, which sits on top of Metamod:Source. Installing it takes a few careful steps, and one of them has to be repeated after game updates.
What each piece does
- Metamod:Source is the base layer. It lets other programs hook into the game.
- CounterStrikeSharp runs on Metamod and lets plugins be written in C#.
- Plugins are the extra features, each a small set of files.
You need both of the first two. Each has its own download, and versions matter, so use the latest builds for the current game.
Install Metamod
- Stop the server and take a backup.
- Download the Metamod:Source build for CS2 from its official site.
- Upload it so that its
addonsfolder merges intogame/csgo/on the server. Use the file manager or SFTP. After this, you should havegame/csgo/addons/metamod. - Open
game/csgo/gameinfo.gi, find theSearchPathsblock and add a new line directly below theGame_LowViolenceline and above the line that beginsGamefollowed bycsgo:
Game csgo/addons/metamod
Keep the tab spacing the same as the lines around it. The order of lines in this block matters, so follow the Metamod instructions for the exact place.
- Start the server. In the console, type
meta list. If Metamod answers, it is loaded.
Install CounterStrikeSharp
- Download the CounterStrikeSharp release that includes the runtime, which is the version that bundles everything it needs.
- Extract it into
game/csgo/so that you getaddons/counterstrikesharp. - Restart the server and run
meta listagain. CounterStrikeSharp should now appear in the list. - Run
css_plugins listto see the plugins it has loaded. It is empty until you add some.
Add a plugin
- Download a plugin from its author's page, usually a zip.
- Extract it so that its folder lands inside
addons/counterstrikesharp/plugins/. - The plugin folder contains a
.dllnamed like the folder. Restart or runcss_plugins load FolderNamein the console.
Plugin settings are stored in addons/counterstrikesharp/configs/plugins/, created the first time the plugin runs. Edit them while the server is stopped, or reload the plugin.
The step people forget: gameinfo.gi after updates
When CS2 updates, the game can replace gameinfo.gi with its own version, and your Metamod line disappears. The server then starts without any plugins, with no error message. After every game update:
- Open
gameinfo.gi. - Check the Metamod line is still there.
- Add it again if not, then restart.
It is the first thing to check whenever plugins "stop working" after an update. Also update Metamod and CounterStrikeSharp themselves, since a game update can break old builds.
Admins
CounterStrikeSharp keeps its admin list in addons/counterstrikesharp/configs/admins.json, where you list players by SteamID64 and give them flags. Do not make everyone an admin. Give only what each person needs. How to find a SteamID64 is described in Rust admin commands, and it is the same long number for any Steam game.
Staying safe
- Download plugins from their official project pages, not from re-upload sites.
- Check what permissions a plugin asks for.
- Test new plugins on a quiet server before putting them on a busy one.
- Remove plugins you stop using.
A bad plugin can run code on your server, so treat each install as a trust decision.
Troubleshooting
| Problem | Likely cause | What to try |
|---|---|---|
meta list says unknown command | gameinfo.gi change missing | Re-add the Metamod line |
| CounterStrikeSharp not listed | Wrong folder or old version | Check the path and update |
| A plugin does not load | Built for an older game version | Update it or remove it |
| Server crashes at start | A plugin conflicts | Remove plugins one at a time |
The console tells you most of this. How to read your server logs shows how to find the first error.
Still stuck? Open a ticket on Discord - run /ticket in any channel, pick a department, and include your Server ID or Invoice ID so we can jump straight in.