Installation#
Download the SDK#
Latest version: Unreleased (based on 1.0.0) · Last updated: 2026-03-15 · Changelog
Extract the zip to a directory of your choice. The archive contains the headers, build script, and examples.
Requirements#
- LLVM/Clang with WASM target support
- Windows (the build script is a
.batfile)
Installing Clang#
Download the latest LLVM release from releases.llvm.org and install it. Make sure the installer adds LLVM to your PATH.
Verify the installation:
You should see output mentioning wasm32 in the target list. If clang is not in your PATH, you can use the full path (typically C:\Program Files\LLVM\bin\clang.exe).
SDK Directory Structure#
plugin-sdk/
├── build.bat # Build script
├── include/
│ └── xenon/
│ ├── SDK.hpp # Main include (pulls in everything)
│ ├── Types.hpp # Vector2, Vector3, Color, enums, constants
│ ├── Core.hpp # Log, GetTime, IsKeyDown, Screen, W2S
│ ├── Entity.hpp # Entity class, iterators, PluginEntity
│ ├── Draw.hpp # Draw::Line, Circle, Rect, Text, HealthBar
│ ├── ImGui.hpp # ImGui::Checkbox, Slider, Combo, etc.
│ ├── Config.hpp # Config::Get/Set/Save
│ └── libs/ # Library import headers
│ └── math_helpers.hpp
├── examples/ # Example plugins
│ ├── enemy_esp.cpp
│ ├── math_helpers_lib.cpp
│ └── enemy_esp_with_deps.cpp
└── output/ # Built .wasm files go here
Freestanding Environment#
Xenon plugins compile to freestanding WASM — there is no C standard library. This means:
- No
#include <string>,<vector>,<iostream>, etc. - No
printf,malloc,new(unless you implement your own allocator) - Basic integer types (
int32_t,uint8_t, etc.) are defined inTypes.hpp sqrtf(),sinf(),cosf(),fabsf(),atan2f()are provided as intrinsics- Use
xenon::Log()instead ofprintffor debug output
The SDK headers provide everything you need. Just #include <xenon/SDK.hpp>.
Next Steps#
Once Clang is installed, follow the Quick Start to build your first plugin.