All guides

CS2 Server Plugins

Plugins turn a bare CS2 dedicated server into a full game project: they add an admin menu, map voting, stats, modes and customization. Almost all of it is built on two components - Metamod:Source and CounterStrikeSharp. In this guide we cover how they work, how to install them on a dedicated server, which plugin types are popular, and what to keep in mind regarding VAC and stability.

What plugins are and what they run on

A CS2 plugin is extra code loaded by the server engine that adds features the vanilla game lacks: an admin menu, map-change voting, a skins system, stat tracking, and much more.

Plugins only run on a dedicated server that you host yourself or rent from a provider. The client player installs nothing: all the logic runs on the server. The modern CS2 ecosystem on Source 2 is built around two layers - Metamod:Source as the loader and CounterStrikeSharp as the runtime for C# plugins.

Metamod:Source - the loading foundation

Metamod:Source is a layer between the Source 2 server engine and plugins. On its own it adds no gameplay features, but it intercepts engine calls and lets other plugins hook into the server's operation.

Practically every CS2 server modification requires Metamod:Source installed. It is the first component you put on a clean server, and the compatibility of the rest depends on its version. Use a 2.x branch build with Source 2 / CS2 support.

Always match the Metamod:Source version to the current CS2 build. After major game updates an old Metamod may fail to load until the authors release a fresh build.

CounterStrikeSharp - the plugin runtime

CounterStrikeSharp (CSSharp) is a framework that runs on top of Metamod:Source and gives developers an API for writing plugins in C# (.NET). Most popular modern CS2 plugins are written for it.

CSSharp installs as a Metamod plugin and then loads user plugins from its own folder. It handles game events, commands, hooks and config storage - this is what you will work with most often.

Plugins in other languages exist too (for example native C++ through direct hooks), but the Metamod:Source + CounterStrikeSharp stack is today the most common and best-supported path.

Installing on a dedicated server: step by step

This assumes you already have a CS2 dedicated server deployed via SteamCMD (app 730). Installation goes into the game folder inside csgo/. The order is strict: Metamod first, then CounterStrikeSharp, then the plugins themselves.

Back up gameinfo.gi before editing: a game update can overwrite the file, and you will have to add the Metamod line again.

  1. 1Stop the CS2 server so the files aren't locked by the process.
  2. 2Download a Metamod:Source build for Source 2 and extract the addons folder into .../game/csgo/ (you get .../game/csgo/addons/metamod).
  3. 3Open .../game/csgo/gameinfo.gi and add the Metamod load line into the Game section (see the code block below).
  4. 4Download a CounterStrikeSharp release (the with-runtime variant if the server has no .NET) and extract it so the addons/counterstrikesharp folder and addons/metamod/counterstrikesharp.vdf appear.
  5. 5Start the server and verify loading: in the server console run meta list - CounterStrikeSharp should be listed.
  6. 6Drop the chosen plugin's files into .../game/csgo/addons/counterstrikesharp/plugins/<plugin_name>/ and restart the server or run css_plugins reload.
// add into the Game section of the GameInfo block in gameinfo.gi:
			Game	csgo/addons/metamod

// verify in the server console:
meta list
css_plugins list

Popular plugin types

Most servers assemble their setup from several plugin categories. Below are the most in-demand directions and their purpose.

CategoryPurposeExample features
AdministrationManaging the server and playersBan, kick, mute, map change, admin menu, flag-based permissions
RTV / map votingPlayers change the map themselvesrtv command, map nominations, timed voting
Skins and customizationWeapon and knife appearanceChoosing skins, knives, gloves, agents via a menu
StatisticsTracking player resultsK/D, ranking, server top, web leaderboard
Game modesNon-standard gameplayRetake, Deathmatch, Surf, Bhop, mini-games
UtilitiesConvenience and automationGreetings, ads, auto map change, flood protection

Where to get plugins

Download plugins only from trusted sources. The main ones are the official CounterStrikeSharp and Metamod:Source repositories on GitHub, the GitHub release pages of specific plugins, and major topical forums of the server community.

Before installing, check: compatibility with the current CSSharp and CS2 version, the date of the last update, whether the source code is open, and reviews. Avoid closed builds from unverified places - that is exactly how malicious modifications get onto a server.

Prefer plugins with open source code and active maintenance: they are easier to audit and get fixed faster after game updates.

Basic configuration and commands

After installation, most plugins create their configs in the configs folder inside counterstrikesharp on first launch. That is where admin permissions, texts, timings and behavior are set.

Admin permissions in CounterStrikeSharp are defined in admins.json (the player's SteamID64 plus a set of flags/immunity). CSSharp server commands let you manage plugins on the fly.

// reload plugins without restarting the server
css_plugins reload

// list loaded plugins
css_plugins list

// example admins path:
// .../addons/counterstrikesharp/configs/admins.json

VAC, risks and stability

Server plugins are installed on the server, not on the player's client, so by themselves they do not trigger a VAC ban for those who connect to you: VAC protects against client-side cheats, not server-side modifications. However, a server with serious gameplay changes should not be registered as official/pure - run it as a community server with an honest description of the mode.

The main risks are not VAC but security and stability: an unverified plugin can contain malicious code, open a hole, or crash the server. So install only auditable plugins, update Metamod and CSSharp after game patches, and test the stack on a separate server before going live.

Once the server is configured and stable, you can add it to our monitoring at monitoringcs2.com - players will see the online count, map and status, and you get an external place to draw an audience from.

Never ask players to disable VAC or install third-party client files to play on your server - that is a sign of an unsafe or fraudulent scheme.

Frequently asked questions

Can you get a VAC ban for plugins on your own CS2 server?+

No. Server plugins are installed on the server, while VAC protects the player's client from cheats. Installing Metamod:Source, CounterStrikeSharp and regular plugins does not get you banned. Just run such a server as a community server and describe the mode honestly rather than passing it off as official and pure.

What do I install first - Metamod or CounterStrikeSharp?+

Metamod:Source first: it is the loader, and nothing works without it. CounterStrikeSharp installs on top of it as a Metamod plugin, and it in turn loads the rest of the plugins. The order is strict: Metamod, then CSSharp, then the plugins themselves.

Where do I put plugin files?+

CounterStrikeSharp plugins go into .../game/csgo/addons/counterstrikesharp/plugins/ in a separate folder named after the plugin. After adding them, restart the server or run css_plugins reload in the console.

Why did plugins stop working after a CS2 update?+

Major game patches often break compatibility: an old Metamod:Source or CounterStrikeSharp version may fail to load, and the gameinfo.gi edit can be overwritten. Update Metamod and CSSharp to builds for the new game version and, if needed, add the Game line back into gameinfo.gi.

Where is it safe to download CS2 plugins?+

From the official Metamod:Source and CounterStrikeSharp repositories on GitHub, the release pages of specific plugins, and trusted server-community forums. Prefer plugins with open source and recent updates, and avoid closed builds from unverified places.

How do I make a player an administrator?+

In CounterStrikeSharp, permissions are set in the admins.json file in the configs folder: you specify the player's SteamID64 plus a set of flags with an immunity level. After editing, reload the plugins with css_plugins reload.