CounterStrikeSharp vs SwiftlyS2 – why you should use only one
CounterStrikeSharp and SwiftlyS2 are the two most popular plugin platforms for Counter-Strike 2 servers. Both let you run plugins written in C#. Many server owners install both, because they found one plugin for CounterStrikeSharp and another one for SwiftlyS2. It can work, but we do not recommend it.
Why running both is a problem
| Problem | Explanation |
|---|---|
| Two .NET runtimes in one process | Each framework starts its own copy of .NET inside the game server. Two .NET runtimes in one process are not a configuration Microsoft supports. Both install their own crash handlers, garbage collector and JIT compiler, and they can get in each other's way. Crashes inside libcoreclr.so or libclrjit.so with no clear plugin in the error are a typical result. |
| More CPU and RAM | Two runtimes use roughly twice the memory and extra CPU, which leaves less for the game. See How to fix lag. |
| Double the work after every CS2 update | Both frameworks hook the same game functions. After an update you have to wait for fixes for both of them. |
| Duplicate features | It is easy to end up with the same feature twice — for example a VIP system in both, or two map choosers — which leads to conflicts. |
Which one should I choose?
Choose the framework that has most of the plugins you use, and look for alternatives for the rest. Most popular plugins (admin systems, VIP, ranks, skins, map choosers, advertisements, reset score) exist for both platforms.
| CounterStrikeSharp | SwiftlyS2 | |
|---|---|---|
| Needs MetaMod:Source | Yes | No |
| Plugin folder | game/csgo/addons/counterstrikesharp/plugins | game/csgo/addons/swiftlys2/plugins |
| List plugins in console | css_plugins list | sw plugins list |
| Enable in panel | SETTINGS > CounterStrikeSharp | SETTINGS > SwiftlyS2 |
How to switch to one framework
Step 1) Make a list of the plugins you use in the framework you want to remove, and find a replacement for each one for the other framework.
Step 2) Go to your console and stop your server using the "STOP" button.

Step 3) Upload the replacement plugins. For CounterStrikeSharp see How to upload a CounterStrikeSharp plugin.
Step 4) Go to "SETTINGS" and disable the framework you no longer need in the Variables section.

Step 5) Go to "FILE MANAGER" and move the folder of the old framework (for example game > csgo > addons > swiftlys2) to game > csgo > addons > disabled. Keep it there until you are sure everything works — you may need the old configs.
Step 6) Start the server and check that all plugins load with css_plugins list or sw plugins list.

Don't want to migrate yet? Move the folder of one framework to addons > disabled for a day or two and see if your crashes stop. That tells you if running both is the cause.
