Prerequisites
Before building any KYBER component, ensure you have:- Cloned the repository with
--recurse-submodulesor rungit submodule --init --recursive - Downloaded and installed Protoc and ensure
protocis in yourPATH
Monorepo Structure
KYBER uses a monorepo structure with the following components:| Component | Language | Description |
|---|---|---|
| Module | C++ | Game module injected into the game client |
| Launcher | Flutter/Dart | Desktop launcher application |
| CLI | Flutter/Dart | Command-line interface tools |
| API | Go | Backend API service |
| Proxy | Rust | Server proxy |
| Packages | Dart | Shared Dart packages |
Dart/Flutter Projects
The Launcher, CLI, and Packages are built using Flutter and Dart.Prerequisites
Bootstrapping
Launcher
The Launcher is a Flutter desktop application for Windows, macOS, and Linux.Building the Launcher
Building the Installer (Windows)
To build the Windows installer:- Install Inno Setup
- Use the provided
installer.issscript in theinstallerfolder - Compile with Inno Setup
CLI
The CLI provides command-line tools for KYBER management.Building the CLI
Using the Built CLI
Module
The KYBER Module is the C++ component that gets injected into the game client.Prerequisites
- Windows with MSVC (Visual Studio)
- Bazelisk installed as
bazel.exein yourPATH - MSYS2 installed to
C:\msys64
Building the Module
Install Bazelisk
Download bazelisk-windows-amd64.exe and rename it to
bazel.exe, then add it to your PATH.Create Bazel output directory
Due to a bug with long build paths in Windows, create a short path for Bazel’s intermediary files:
Install MSYS2
Download and install MSYS2 to
C:\msys64.Using the Built Module
Once built, the module DLL is located atModule/bazel-bin/Kyber.dll. To test your changes:
Code Completion
The module is developed using Visual Studio Code with the clangd extension. To generatecompile_commands.json:
API
The API service is written in Go and provides the backend API.Prerequisites
- Go 1.24 or later
- Protocol buffer compiler with Go plugins:
Building the API
Proxy
The Proxy component is written in Rust and handles server proxying.Prerequisites
- Rust nightly toolchain
- Protocol buffer compiler (
protoc)
Building the Proxy
Troubleshooting
Submodule Issues
If you encounter missing dependencies:Melos Bootstrap Failures
Ifmelos bootstrap fails:
- Ensure Flutter is on the master channel:
flutter channel master && flutter upgrade - Clean and retry:
Module Build Path Issues
If you encounter path-too-long errors on Windows:- Ensure you’re using the
--output_user_root="C:\bz"flag - Try moving the repository closer to the drive root
Missing Protoc
Ifprotoc is not found:
- Download from Protocol Buffers Releases
- Add the
bindirectory to yourPATH - Verify with:
protoc --version
Next Steps
Architecture Overview
Learn about KYBER’s system architecture and component interactions