Skip to content

Installation#

Download the SDK#

Download Xenon 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 .bat file)

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:

clang --version

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 in Types.hpp
  • sqrtf(), sinf(), cosf(), fabsf(), atan2f() are provided as intrinsics
  • Use xenon::Log() instead of printf for 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.