Contents
Components of Plugify Source 2 with versions, the layout on disk and how to add your own packages.
Components
Versions of the latest stable release. Every release lists its own on the Changelog page.
| Component | Package | Version |
|---|---|---|
| Plugify core | libplugify | 3.1.0 |
| S2-Launcher · host (launcher, runtime) | plugify-source2-launcher | 2.5.6 |
| MM-Loader · host (metamod) | plugify-metamod-loader | 2.1.5 |
| C++ · language module | plugify-module-cpp | 2.4.5 |
| Go · language module | plugify-module-golang | 2.7.5 |
| Source 2 SDK (s2sdk) · plugin | plugify-plugin-s2sdk | 3.4.0 |
| PolyHook · plugin | plugify-plugin-polyhook | 2.5.9 |
| Configs · plugin | plugify-plugin-configs | 2.1.2 |
| Translations · plugin | plugify-plugin-translations | 1.0.3 |
| Permissions · plugin | plugify-plugin-permissions | 1.3.1 |
| DynCall · plugin | plugify-plugin-dyncall | 2.0.9 |
| Permissions Storage · plugin | permissions-storage | 1.0.0 |
| Permissions Connector (Source 2) · plugin | permissions-connector-s2 | 1.0.0 |
The pack includes the language modules its plugins are written in, so when a plugin in another language joins the build, for example JavaScript, its language module joins too.
Layout on disk
The archive is extracted into the server's game/ folder. Example for the Launcher host on Linux:
- game/
- bin/
- linuxsteamrt64/
- s2launcher
- libplugify.so
- libsentry.so
- crashpad_handler
- sentry.jsonc
- csgo/
- addons/
- plugify/
- bin/
- linuxsteamrt64/
- micromamba
- configs/
- data/
- s2sdk/
- s2sdk.translations.jsonc
- permissions/
- permissions_connector_s2.translations.yaml
- logs/
- pkgs/
- .condarc
- build.json
Differences between hosts:
- Runtime: instead of
s2launcher, the host iscsgo/bin/linuxsteamrt64/libserver_valve.so. - Metamod: nothing goes into
bin/;csgo/addons/metamod/plugify.vdfloadscsgo/addons/plugify/bin/<platform>/libplugify.
The translations of the base plugins in data/ come with the full archive only: mamba doesn't update them, and the host-only archive doesn't contain them.
Meta-packages
The build's set is recorded with conda itself. plugify-source2-plugins (in envs/plugins) and plugify-source2-modules (in envs/modules) are packages without files that depend on the exact versions of the build's packages. Their version is the build version. mamba list shows which build is installed, and mamba update moves the set to the next build, see Updating.
.condarc and build.json
addons/plugify/.condarc lists the build's conda channel first, then the channels of the components and of every language module. That is why these packages are installed by name, without -c. Packages from other channels need -c.
addons/plugify/build.json records which build the host came with, and the host and core versions.
Adding packages
envs/modules and envs/plugins are ordinary conda environments. Package operations run while Plugify is unloaded:
If the build has a version of the package, that version is installed. Other packages come from their own channels: the ones listed in .condarc, or the one passed with -c.
You can also keep your plugins in an environment of your own, because Plugify finds packages in every folder of envs/:
Plugins without a package go into a folder of their own in envs/, for example envs/my_plugin/.
Packages you add this way are kept when you update the build. If you write plugins in a language whose module the build might drop later, install that module explicitly (mamba install -n modules plugify-module-golang), so it stays installed.