Languages
Setup and the same HELIX call written in C++, Blueprint, PuerTS (TypeScript), and UnLua (Lua).
The HELIX Unreal runtime exposes the same Platform API to four environments. Choose by team and task — they're interoperable within a project, and they all hit the identical backend.
One operation, four languages
Granting nothing, just reading: fetch the player's profile and LIX balance.
UHelix* H = UHelix::Get();
H->Profile()->GetMyProfile(FOnProfile::CreateLambda([](const FHelixProfile& P) {
UE_LOG(LogHelix, Display, TEXT("Hi %s"), *P.DisplayName);
}));
H->Wallet()->GetBalance(FOnBalance::CreateLambda([](const FHelixBalance& B) {
UE_LOG(LogHelix, Display, TEXT("%lld LIX"), B.Lix);
}));Event BeginPlay
→ Helix · Profile · Get My Profile (latent)
On Success → Break Profile → "Display Name" → Print String
→ Helix · Wallet · Get Balance (latent)
On Success → Break Balance → "Lix" → Print StringEvery SDK call is a node. Async calls are latent nodes with On Success / On Error exec pins.
// Identical to the Web SDK — this is the same TypeScript surface, inside Unreal.
const me = await Helix.profile.getMyProfile();
const wallet = await Helix.wallet.getBalance();
console.log(`Hi ${me.displayName} — ${wallet.lix} LIX`);local me = Helix.profile.getMyProfile()
local wallet = Helix.wallet.getBalance()
UE.Log(string.format("Hi %s - %d LIX", me.displayName, wallet.lix))Choosing a language
| Language | Reach for it when |
|---|---|
| C++ | You want the lowest-level binding, maximum performance, or you're already in C++ gameplay code. |
| Blueprint | Designers/artists wire logic visually; rapid iteration without compiling. |
| PuerTS | Your team knows TypeScript, or you're porting web world logic — the API shape is identical to @helix/sdk. |
| UnLua | You prefer Lua, or you're bringing across Lua-based logic. |
PuerTS makes porting trivial
Because PuerTS runs the same TypeScript API as the Web SDK, platform logic written for the web often moves to Unreal with little more than swapping the rendering/input layer. This is the 1:1 contract paying off.
Async conventions
- C++ uses typed delegates (
FOnX::CreateLambda). - Blueprint uses latent nodes with
On Success/On Error. - PuerTS uses
async/awaitand Promises, exactly like web. - UnLua calls are synchronous-looking (the binding yields under the hood).
Native (Unreal) SDK
The HELIX Platform API inside Unreal Engine — the same functions in C++, Blueprint, PuerTS (TypeScript), and UnLua (Lua), plus engine-native networking.
Networking (Native)
How multiplayer works in Native (Unreal) worlds — engine-native dedicated servers with HELIX replication wrappers. Distinct from the web multiplayer stack.