WIP, not ready for release
-
Metamod 2.0.0 build 1459 or later
-
MultiAddonManager v1.6 for radio menus, layout-based HUD and KZ sound effects (eg. jumpstats)
-
Optional: SQL_MM v1.3.4.3 or later for local database support
-
Optional: CS2Menus for html menu support
- Download the latest version in the release section and extract them to your server's
csgo/directory.
-
Remember to recursively clone the plugin:
git clone --recursive https://github.com/KZGlobalTeam/cs2kz-metamod.git
-
Latest AMBuild needs to be installed for compilation.
-
For each platform:
Windows (ambuild/msvc):
mkdir build
cd build
python3 ../configure.py
ambuildFor windows debugging with VS, build the project then add the following command at the end:
python3 ../configure.py --gen=vs --vs-version 17Linux (ambuild/clang):
mkdir build
cd build
python3 ../configure.py
ambuildLinux (Docker w/ Valve SDK Image):
mkdir build
docker build -t cs2kz-linux-builder .
docker run --rm -v ./build:/app/build cs2kz-linux-builderNote: does not work with gcc!
Copy the contents of build/package/ to your server's csgo/ directory.
This is a CS2 KZ Metamod C++ plugin with:
- Source code files in
srcdirectory- KZ related functionalities in
src/kzsubdirectory- Distinct functionalities are usually split into services in its own subdirectory (eg.
src/kz/languagefor localization code)
- Distinct functionalities are usually split into services in its own subdirectory (eg.
- Reverse engineered and SDK code in
src/sdksubdirectory - General movement related code in
src/movementsubdirectory - General player related code in
src/playersubdirectory
- KZ related functionalities in
- Additional SDK files are in
hl2sdk-cs2/publicsubdirectory - Some code is generated from protobuf files, they are located in
build/cs2kz/windows-x86_64 - Config files are found in
cfgandgamedata - Localization texts are found in
translations - Third party dependencies are found in
vendor AMBuilderis used to declare the list of translation units to add into the build. See AMBuild for more information.
- Follow the existing naming conventions.
- Prefer short types defined in
common.h(eg.u32,u64,f32,... ) unless it is code related to reverse engineering/SDK.