***

title: Blueprint Guide
description: Blueprint wrappers for the current UE SDK surface
slug: ue/blueprint
------------------

The implemented Blueprint-callable surface in the current plugin is `UForbocAIBlueprintLibrary`. These functions are thin wrappers over `SDKOps::*`.

```cpp
#include "RuntimeBlueprintLibrary.h"
```

## Available Blueprint Calls

### System and config

* `CheckApiStatus() -> FString`
* `ConfigSet(Key, Value)`
* `ConfigGet(Key) -> FString`

### NPC

* `CreateNpc(Persona) -> FString`
* `ProcessNpc(NpcId, Text) -> FString`
* `HasActiveNpc() -> bool`

### Memory

* `MemoryStore(NpcId, Observation)`
* `MemoryClear(NpcId)`

### Ghost

* `GhostRun(TestSuite, Duration) -> FString`
* `GhostStop(SessionId) -> FString`

### Soul

* `ExportSoul(NpcId) -> FString`
* `ImportSoul(TxId) -> FString`
* `VerifySoul(TxId) -> bool`

### Bridge

* `ValidateBridgeAction(ActionJson) -> bool`

## Minimal Blueprint Workflow

1. Call `ConfigSet("apiUrl", "https://api.forboc.ai")`
2. Call `ConfigSet("apiKey", "<your key>")`
3. Call `CreateNpc(Persona)` and keep the returned NPC id
4. Call `ProcessNpc(NpcId, Input)` to get dialogue text
5. Optionally call `ExportSoul(NpcId)` or `VerifySoul(TxId)`

## Important Limitation

The Blueprint library is intentionally small. It does not expose the full store/thunk runtime, and it does not currently give you explicit Blueprint control over local cortex or node-memory initialization.

If you need:

* direct slice access
* custom store instances
* local cortex initialization
* local node-memory initialization
* direct async thunk composition

use C++ with `createSDKStore()` and the `rtk::*Thunk` APIs instead.

## C++ Equivalent

The Blueprint wrappers call the same synchronous helpers you can use in C++:

```cpp
#include "RuntimeStore.h"
#include "CLI/CliOperations.h"

auto Store = createSDKStore();
FNPCInternalState Npc = SDKOps::CreateNpc(Store, TEXT("A cautious merchant"));
FAgentResponse Response = SDKOps::ProcessNpc(Store, Npc.Id, TEXT("Hello"));
```
