To install mods on a Counter-Strike 2 dedicated server, load Metamod:Source first, add one plugin framework—usually CounterStrikeSharp or Source2Mod—and then copy a compatible feature plugin into that framework’s plugin directory. Restart the server and verify each layer from the server console before moving on. The critical details are the exact gameinfo.gi entry, the correct folder depth, the framework-specific plugin path, and the runtime dependencies for Windows or Linux.
This guide covers a self-hosted installation, the equivalent managed-panel workflow, update recovery, and the errors that produce messages such as meta list being an unknown command.
What is the correct installation order for CS2 server mods?
The dependency chain is Metamod:Source → one plugin framework → feature plugin. CounterStrikeSharp communicates with the game through Metamod:Source, so both frameworks are required. Source2Mod follows the same Metamod prerequisite but uses its own plugin format and directory.
- Stop the server and create a rollback copy of
gameinfo.giand the existinggame/csgo/addonsdirectory. - Install Metamod:Source and add its SearchPaths entry to
game/csgo/gameinfo.gi. - Restart and run
meta list. Do not continue until that command works. - Install either CounterStrikeSharp or Source2Mod, according to the feature plugin’s release requirements.
- Restart and verify the framework.
- Copy the feature plugin into the framework-specific directory, preserve its dependencies and configuration files, restart again, and verify the plugin.
Installing a .dll CounterStrikeSharp plugin in Source2Mod’s .smx directory, or the reverse, will not work. The file extension and the framework named by the plugin’s release are your first compatibility check.
How do I prepare a self-hosted CS2 server?
You need administrative access to a dedicated server that you can stop, start, restart, and reach through its server console. Make the rollback copy before extracting anything; an update or a misplaced file can prevent the loader from starting.
Back up the files that control loading
game/csgo/gameinfo.gi- The complete
game/csgo/addonsdirectory, including any existing Metamod or plugin files - A note of the current CS2 build, Metamod build, plugin framework version, and plugin versions
Keep the backup outside the live game directory. If a CS2 update replaces gameinfo.gi, you can compare the new file with your copy and restore the required SearchPaths line without rebuilding the entire installation.
Check operating-system prerequisites
CounterStrikeSharp’s Windows installation requires the Visual Studio Redistributables. On Linux, its .NET runtime may require the distribution package named libicu, icu-libs, or libicu-dev, depending on the distribution. A first installation should use CounterStrikeSharp’s with-runtime package; use the package without a runtime later only if you maintain a compatible .NET runtime separately.
How do I install Metamod:Source on a CS2 server?
Metamod is the loader that must be present before CounterStrikeSharp, Source2Mod, or their plugins can communicate with CS2.
- Stop the server. Do not extract files while the server process is running.
- Extract the current Metamod:Source 2.x build. Open the extracted package and locate its
addonsdirectory. - Copy that directory into
game/csgo/. The resulting path must includegame/csgo/addons/metamod/. Avoid creating an extra level such asgame/csgo/addons/addons/metamod/. - Edit
game/csgo/gameinfo.gi. Find the lineGame_LowViolence csgo_lv. Directly below it, addGame csgo/addons/metamod. - Save the file and restart the actual dedicated-server process. A file copy alone does not load Metamod.
- Run
meta listin the server console. A working loader responds with Metamod’s list output. An “unknown command” response means the loader has not loaded yet.
What should the Metamod file layout look like?
game/csgo/gameinfo.gi
game/csgo/addons/metamod/
The important test is not the name of the archive you downloaded; it is whether the live server contains the addons/metamod directory directly under game/csgo and whether gameinfo.gi references it.
How do I verify Metamod before installing any plugin framework?
Use the server console, not the in-game chat, and run meta list immediately after the restart. This isolates loader problems from framework or plugin problems.
- If a Metamod list appears: the loader is active; proceed to one framework.
- If the command is unknown: stop and check the directory depth, the extracted Metamod files, the exact SearchPaths line, and whether you restarted the dedicated server rather than only reconnecting a client.
- If the server fails to start: restore the backed-up
gameinfo.gi, confirm the line was inserted directly belowGame_LowViolence csgo_lv, and retry with a clean Metamod extraction.
Do not add feature plugins while meta list is failing. Every later symptom would be ambiguous because the base loader is still unavailable.
How do I install CounterStrikeSharp?
CounterStrikeSharp is the usual choice for plugins released as .NET assemblies. Install its with-runtime package for a first setup, merge its addons directory with the existing Metamod tree, restart, and then check the framework before adding a feature plugin.
- Stop the server after confirming
meta listworks. - Download a CounterStrikeSharp package that supports your current CS2 build. For a first installation, choose the package that includes the runtime.
- Extract and merge the package’s
addonsdirectory intogame/csgo/. Merge, rather than deleting, the existing Metamod directory. - Confirm the expected directories exist. The CounterStrikeSharp tree includes
api,bin,dotnet,plugins, andgamedataundergame/csgo/addons/counterstrikesharp. - Restart the server. The runtime and framework are initialized during server startup.
- Inspect the server output and then install the feature plugin. If CounterStrikeSharp does not appear, resolve the runtime or operating-system issue before copying any plugin.
With-runtime versus without-runtime packages
| Package choice | Use it when | Important condition |
|---|---|---|
| With-runtime | First installation or an installation where no compatible .NET runtime is maintained separately | It supplies the runtime expected by CounterStrikeSharp |
| Without-runtime | Upgrading an existing installation with a separately maintained compatible runtime | The server administrator is responsible for keeping that runtime working |
On Windows, install the required Visual Studio Redistributables. On Linux, install the ICU package expected by the distribution if logs report that the runtime cannot initialize.
How do I install a CounterStrikeSharp feature plugin?
Use a release that explicitly supports both your current CS2 build and the installed CounterStrikeSharp version. Copy the plugin’s own folder into game/csgo/addons/counterstrikesharp/plugins, retain any dependency directories and configuration files named by the author, restart, and run css_plugins list.
- Read the plugin release notes for its required CounterStrikeSharp version, CS2 compatibility, dependencies, and configuration files.
- Stop the server before changing files.
- Copy the plugin folder—not an arbitrary parent archive folder—into
game/csgo/addons/counterstrikesharp/plugins. - Keep the author-specified configuration files in their stated locations. Do not rename a plugin assembly or flatten a folder structure unless the release instructions say to do so.
- Start or restart the server.
- Run
css_plugins listin the server console. Confirm the plugin is listed before testing its commands in-game.
Expected CounterStrikeSharp path
game/csgo/addons/counterstrikesharp/plugins/<plugin-folder>/
A common nesting mistake is plugins/<plugin-folder>/<plugin-folder> after extracting an archive. Open the final directory and check that the plugin files are at the level expected by that release.
How do I install Source2Mod instead?
Source2Mod is a separate Metamod:Source plugin framework for Linux and Windows. Choose it when the feature plugin is released for Source2Mod or uses SourcePawn .smx files. The framework and its plugins have a different path from CounterStrikeSharp.
- Install and verify Metamod first, using
meta list. - Stop the server and extract Source2Mod.
- Merge Source2Mod’s
addonsdirectory intogame/csgo/. - Place SourcePawn plugins with the
.smxextension ingame/csgo/addons/source2mod/plugins/. - Restart the server because Source2Mod loads at startup.
- Verify with
s2m versionors2m list.
Framework paths and file types
| Framework | Plugin directory | Typical plugin type | Verification command |
|---|---|---|---|
| CounterStrikeSharp | game/csgo/addons/counterstrikesharp/plugins |
Release-specific .NET plugin files, commonly supplied in a plugin folder | css_plugins list |
| Source2Mod | game/csgo/addons/source2mod/plugins |
SourcePawn .smx |
s2m version or s2m list |
Do not use CounterStrikeSharp installation instructions for a Source2Mod release, or Source2Mod instructions for a CounterStrikeSharp release. Their plugin directories, runtimes, and verification commands are distinct.
Can I install mods through a managed CS2 hosting panel?
Yes. A managed panel changes how you enable the frameworks and upload files, but not the dependency order: Metamod first, the framework second, and the feature plugin last.
- Stop the server from the hosting panel.
- Open the panel’s Config tab and enable Metamod and CounterStrikeSharp.
- Save the configuration and start the server so the panel installs or activates the frameworks.
- Stop it again if the panel requires a stopped instance for file transfer.
- Upload the compatible plugin folder to
/game/csgo/addons/counterstrikesharp/plugins. - Restart the server.
- Run
css_plugins listfrom the panel console and confirm the plugin is listed.
Panel labels and upload controls can vary, so use the provider’s current path display rather than assuming a different game root. Managed hosting can simplify file transfer and backups, but you still need to check plugin compatibility and read startup errors.
Should I self-host or use managed hosting for CS2 mods?
Neither route is universally faster or cheaper based on the available technical documentation. The practical difference is who controls the filesystem, restarts, updates, and rollback.
| Decision factor | Self-hosted server | Managed server |
|---|---|---|
| Filesystem access | Direct access to the game directory and configuration files | Panel file manager, SFTP, or provider-defined upload tools |
| Restart and console control | You control the process and console directly | Provider panel supplies controls and a web console |
| Updates | You track CS2, Metamod, framework, and plugin compatibility | The provider may expose framework updates, but plugin compatibility remains your responsibility |
| Backup and rollback | You must create and store backups | Panel snapshots or backup tools may be available; verify retention and restore behavior |
| Compatibility support | You diagnose paths, runtimes, and logs yourself | Support may help with the panel and base server, while third-party plugin support varies |
| Geographic location | You choose the machine or data center you control | You choose from the provider’s available locations |
Choose self-hosting when you need unrestricted filesystem and process control. Choose a managed panel when predictable restarts, web-based transfers, and provider-maintained server operations matter more than low-level access.
Why is meta list an unknown command?
An unknown meta command means Metamod has not loaded; it is not evidence that a feature plugin is broken. Fix the loader before troubleshooting CounterStrikeSharp or Source2Mod.
- Wrong directory depth: verify that Metamod is directly at
game/csgo/addons/metamod, not inside a secondaddonsdirectory. - Missing or malformed SearchPaths entry: open
game/csgo/gameinfo.giand confirmGame csgo/addons/metamodappears directly belowGame_LowViolence csgo_lv. - Incomplete extraction: re-extract the current Metamod 2.x package and merge its files again.
- No real restart: stop and start the dedicated server process; reconnecting to a running instance does not reload server binaries.
- CS2 update overwrite: restore the backed-up
gameinfo.giline, update Metamod, restart, and testmeta listagain.
What should I do when CounterStrikeSharp does not appear?
Once meta list works, a missing CounterStrikeSharp installation usually points to the package, runtime, or operating-system prerequisites.
- Confirm that you installed the with-runtime package for a first installation.
- Check that
game/csgo/addons/counterstrikesharpcontains the expectedapi,bin,dotnet,plugins, andgamedatadirectories. - On Windows, install or repair the Visual Studio Redistributables required by the framework.
- On Linux, install the distribution’s ICU package—
libicu,icu-libs, orlibicu-dev—when the runtime reports a missing ICU library. - Inspect the server log for .NET or native-library errors, correct the reported dependency, and restart.
- Only after the framework starts should you place a feature plugin in its
pluginsdirectory.
Why is a plugin folder present but missing from the plugin list?
The folder can exist while the server ignores it if the path, nesting, framework target, dependency, or CS2 compatibility is wrong.
- Run the command for the framework you installed:
css_plugins listfor CounterStrikeSharp ors2m listfor Source2Mod. - Compare the live path with the release instructions. CounterStrikeSharp plugins belong under
addons/counterstrikesharp/plugins; Source2Mod plugins belong underaddons/source2mod/plugins. - Remove accidental double nesting created during archive extraction.
- Check that the plugin targets your installed framework and current CS2 build.
- Install every dependency declared by the plugin author, including required configuration files.
- Restart after each file change. These frameworks load plugins during server startup, so a live file copy is not a reliable test.
How do CS2 updates affect installed mods?
CS2 updates can break older Metamod builds, and an update can overwrite gameinfo.gi. When mods disappear after an update, repair the loader before changing plugin files.
- Stop the server and compare
game/csgo/gameinfo.giwith your backup. - Re-add
Game csgo/addons/metamoddirectly belowGame_LowViolence csgo_lvif the line was removed. - Update to a Metamod 2.x build compatible with the new CS2 version.
- Restart and run
meta list. - Retest CounterStrikeSharp with
css_plugins listor Source2Mod withs2m list. - Only then investigate individual feature plugins and replace releases that do not support the updated game or framework.
Keeping the original gameinfo.gi, addon tree, and version notes makes this sequence reversible and prevents a game update from turning into an untracked series of file changes.
What is the safest repeatable installation checklist?
- Dedicated server access, console access, and a maintenance window
- Backup of
gameinfo.giandgame/csgo/addons - Current Metamod:Source 2.x build
- Metamod installed directly under
game/csgo/addons/metamod Game csgo/addons/metamodinserted belowGame_LowViolence csgo_lv- Successful
meta listoutput after a restart - One framework selected to match the plugin release
- CounterStrikeSharp with-runtime package for a first install, or a separately maintained compatible runtime
- Windows Visual Studio Redistributables or Linux ICU packages where required
- Feature plugin copied to the exact framework path with all declared dependencies
- Successful framework-specific verification after another restart
Frequently Asked Questions
Can a CS2 mod survive a complete server reinstall?
Only if you separately retain the configuration and addon backups. Save gameinfo.gi, the framework directories, plugin configuration files, and a version note outside the server’s game directory so they can be restored after a clean installation.
Which console command confirms a CounterStrikeSharp plugin loaded?
Use css_plugins list after restarting the dedicated server. The command reports the plugins recognized by CounterStrikeSharp; it is more useful than checking whether a folder merely exists.
Do Source2Mod plugins use the same runtime as CounterStrikeSharp?
No. They are separate frameworks with separate plugin paths and verification commands. Select the framework named by the plugin release instead of moving files between their directories.
What should I check immediately after a major CS2 update?
Check whether gameinfo.gi still contains the Metamod SearchPaths line, then verify the loader with meta list. Updating Metamod may be necessary before any plugin files need to be changed.