/v1 surface to Unreal — generate and manage worlds, create talk-to characters, mint runtime sessions — plus a drop-in Alakazam Character component. Blueprint-first, with full C++ access. Requires Unreal Engine 5.4+.
Install
1
Copy the plugin
Drop the
AlakazamPortal folder into your project’s Plugins/ directory (YourProject/Plugins/AlakazamPortal).2
Enable it
Open the project — Unreal prompts to build the plugin the first time. Confirm it’s on under Edit → Plugins → Alakazam Portal, then restart the editor. Module dependencies (HTTP, Json) are declared by the plugin — nothing to add to your
Build.cs.Setup
1
Open the Setup Wizard
The Alakazam Setup Wizard opens on first run. You can also configure the plugin any time under Project Settings → Plugins → Alakazam Portal.
2
Paste your key
Start with an
sk_test_… secret key (get one here) — it runs a free, mocked sandbox. Swap to sk_live_… when you ship.Programmable worlds & AI characters (/v1)
UAlakazamClient is a singleton wrapper over the /v1 API. Grab it with UAlakazamClient::Get() — in the editor it reads the key from Project Settings; on a server, set the key you loaded from your environment. Because Unreal’s HTTP is asynchronous, every call takes a completion callback. The same calls are exposed as Blueprint nodes (category Alakazam).
A
sk_test_… key returns deterministic mocks — every response carries mock: true, and nothing spends GPU or quota. Build your whole integration for free, then swap to sk_live_…. See Testing.Drop-in Alakazam Character
UAlakazamCharacter is an Actor Component that wraps the session → say → speak loop. Add it via Add Component → Alakazam Character on any actor, then set its properties in the Details panel (or from Blueprint / C++):
- CharacterId and WorldId — from a character you created (they’re the same id).
- SessionToken — leave empty in the editor to mint one with your stored key (prototyping); in a packaged build, assign a token minted by your backend (the two-token rule).
OnReply, OnError, OnTtsAudio — and call Say:
Voice is delivered as raw bytes, not auto-played. Unreal has no built-in runtime MP3 decoder, so the component broadcasts the raw
audio/mpeg TTS bytes on OnTtsAudio instead of playing them for you. Feed those bytes to a runtime audio importer (e.g. a runtime-audio-importer plugin) to get a USoundWave you can play. This is an honest engine difference: Unity decodes MP3 natively and auto-plays through an AudioSource; Unreal hands you the bytes.UAlakazamClient::Get() with CreateCharacter, MintSession, and CharacterSay. For a public, token-free share link to a public world, use UAlakazamClient::PublicPlayUrl(Slug).
UAlakazamClient reference
The Unreal client mirrors the Unity AlakazamClient and the /v1 contract 1:1 — each method takes a completion callback (and is a Blueprint node under Alakazam).
Optional params at parity with Unity:
frame_b64 on CreateWorld / CreateCharacter (seed
creation from a base64 image), cursor on ListWorlds / ListCharacters (pagination — pass the
prior nextCursor), and ttlSeconds on MintSession (60–3600, sent only when > 0). The
Alakazam Character component also fires an OnConnected(bool) event.Next steps
Unity SDK
The same worlds + AI characters in Unity.
Characters
Stances, memory, voice, and images in depth.
The two-token rule
Mint session tokens server-side; never ship a secret key.
Testing sandbox
Build the whole integration free with a test key.

