Counter-Strike 2 Addons
by Ericran
Version History
v1.0.0
Stable 837.1 KB 3 downloadsFirst public release. A Plugins tab on Counter-Strike 2 servers for managing Metamod:Source and CounterStrikeSharp — the things you would otherwise do over SSH, done from the panel, with the server's own console answering for what is actually loaded.
There are no release notes to compare against, so this is what it does.
Managing plugins
The tab lists every CounterStrikeSharp plugin with its live status read over RCON, not guessed from the files on disk — a folder that is present but failed to load says so. From there:
- Enable / disable persistently, surviving restarts
- Hot load, unload and reload without restarting the server
- Edit configs in place, and comment and group plugins for your own bookkeeping
- Binary Metamod plugins (
addons/metamod/*.vdfaliases) get the same switches — with CounterStrikeSharp's own alias guarded, because switching that one off unloads the entire platform - A restart banner that appears only when a change is genuinely waiting on one
plugins_meta.json is shared with
cs2-addons-manager, so
comments and groups set in the panel and in the game console stay in sync.
Neither needs the other.
Installing things
- One-click platform installs. Metamod:Source and CounterStrikeSharp installed and updated from their latest release, downloaded and unpacked on the node, with an update button when a newer one ships and Reinstall for a platform that is installed but not loading.
- A plugin catalog — MatchZy, CS2-SimpleAdmin, Retakes, WeaponPaints, K4-System — installed straight from their GitHub releases, with update badges on installed rows.
- Zip installs. Drop any release archive on the upload dialog and the layout
is detected —
addons/-rooted,plugins/+shared/,Name/Name.dll, or a loose dll — and unpacked where it belongs, including the contract assemblies undershared/that some plugins need in order to load at all. - Snapshots of
plugins/,configs/plugins/andshared/, taken automatically before anything overwrites files and restorable in one click. They double as the transfer format for copying a setup between servers.
When it goes wrong
Most of this exists because something broke on a real server first.
- A Doctor dialog running fourteen health checks in one pass: launch
parameters, RCON,
gameinfo.giwiring, folder placement and layout, shared assemblies, manifest orphans, ambiguous.vdfaliases, plugins that failed to load, and leftover downloads. Where it can, it asks Metamod why a platform failed rather than guessing. gameinfo.girepair — a Fix button plus a six-hour sweep that re-wires every CS2 server automatically, because game updates keep stripping the Metamod search path back out.- Fix executable stack. CounterStrikeSharp has shipped releases whose
library is marked as needing an executable stack; current kernels refuse that
on
dlopen, so the platform silently fails to load and reinstalling fetches the same flagged file. This clears the flag in place. - A CS2-tolerant RCON client replacing the panel's built-in Source one for
cs2servers: multi-packet replies, oversized packets, both auth response shapes and CS2's unsolicited console output are handled rather than erroring out. - A log viewer with filtering, following and a download link.
- An admins editor for CounterStrikeSharp's
admins.jsonandadmin_groups.json, as an editable table. - An audit history of what was done from the panel, and by whom.
Requirements
Panel: GameAP 4.4.0 or newer — where the gameap-net and
gameap-scheduler host modules first shipped. The plugin imports both and will
not load without them. It runs unchanged on 4.5.
Node: platform installs and snapshots run curl/wget, tar and unzip
on a linux node (fallbacks: python3 -m zipfile, busybox unzip). A stock
Debian or Ubuntu box has everything except possibly unzip.
Game server: a CS2 server on the stock cs2 game — the tab is gated on
engine source v2 and will not appear elsewhere. Metamod:Source 2.x and the
CounterStrikeSharp with runtime build do not need to be installed first; the
tab will install them for you.
RCON is optional but worth having. GameAP sets a password when a server is created, so it is normally already there. Without it the tab still works — you lose live statuses, versions and hot load/unload, and a hint line says so. Everything file-based keeps working.
Installing
From the panel — the easy way. Administration → Plugins, open the Store tab, find this plugin and install it. The panel fetches it from plugins.gameap.dev and reloads.
From the file below — if your panel has no store access, or you want a
specific version. Download cs2-addons.wasm, upload it under Administration
→ Plugins, and restart the panel.
Either way: open any Counter-Strike 2 server and a Plugins tab appears next
to its other tabs, for admins. If it does not, restart the panel and check the
server's game is the stock cs2 — the tab is gated on engine source v2 and
will not show on anything else.
Running a pre-1.0.0 build? Uninstall it first. The plugin id changed to the one the store assigned, and to a panel that makes this a different plugin: you will get two Plugins tabs, and audit history and cached update checks start empty. Snapshots live on the game server and are unaffected.
Credit
This is a CS2 re-imagining of gameap/plugin-goldsrc-addons by the GameAP project — the equivalent plugin for GoldSource servers managing Metamod and AMX Mod X. The architecture, the route design, the UI and most of the code structure come from it, and all credit for the concept and design goes to the GameAP authors. Full credits are in the README.