# API reference — Unreal SDK

The public, game-dev-facing API of the **`AR51SDK`** Unreal plugin (Runtime module), described from the caller's side — what you place, configure, call, and receive in C++ or Blueprint.

:::tip[Looking for a specific type?]
The **[Class index](/docs/sdk-api/unreal-api/classes)** lists every public type with its own reference page. The sections below are topic groupings.
:::

- **Plugin:** `AR51SDK` · **version `2.3.2.4`** (`AR51SDK.uplugin`).
- **Modules:** `AR51SDK` (Runtime; Win64/Android) + `AR51SDKEditor` (editor tooling — not covered here). **Plugin deps:** `ProceduralMeshComponent`, `AnimationWarping`.
- **Public include root:** `Plugins/AR51SDK/Source/AR51SDK/Public/` (export macro `AR51SDK_API`).

:::caution[Units & space — read this first]
Unreal world units are **centimeters** and rotations are **degrees**. AR 51 mocap/CVS data is natively **meters** (and a different coordinate convention). Conversion happens at the SDK boundary; use [`UAnchorServiceComponent::AR51SDKToWorldSpace` / `WorldToAR51SDKSpace`](/docs/sdk-api/unreal-api/connection#uanchorservicecomponent) whenever you exchange positions/rotations with the AR 51 system. Values whose unit/space wasn't explicit in source are flagged **⚠️** inline.
:::

:::note[Blueprint vs C++]
Each member notes its exposure. <Badge tone="accent">BlueprintCallable</Badge> / <Badge tone="accent">BlueprintPure</Badge> / <Badge tone="accent">BlueprintAssignable</Badge> are reachable from Blueprint; <Badge>C++ only</Badge> members are not (`UFUNCTION` absent in source). Items marked <Badge tone="warn">⚠️ unverified</Badge> are inferred from source and should be confirmed before you rely on them.
:::

## Sections

| Section | Covers |
|---|---|
| [Connection & services](/docs/sdk-api/unreal-api/connection) | `AAR51SDK` root actor, `EPlatformTypes`, the service components, AR 51 ↔ world-space conversion |
| [Skeletons & characters](/docs/sdk-api/unreal-api/skeletons-and-characters) | `USkeletonConsumer`, `UAR51Character`, `AAR51CharacterActor`, mapping assets, `SkeletonData` / `Keypoints` / `IPersonBase`, person events, prediction & solver settings |
| [Object detection](/docs/sdk-api/unreal-api/object-detection) | `UObjectDetectionConsumer`, `UTrackedInstance`, `FMarkerItem`, `EInstanceType` |
| [Hands, boundary & anchors](/docs/sdk-api/unreal-api/hands-boundary-anchors) | `HandJointInfo`, hand/boundary adapter interfaces + factories, anchor components |
| [Utilities & platform](/docs/sdk-api/unreal-api/utilities-platform) | `EPlatformTypes`, `UNetworkUtils`, the `AR51SDK` log category, `UnrealThread`, `ISingleton` |

:::note[Platform plugins & LiveLink — separate]
The VR/MR platform plugins (`AR51SDK_OPENXR`, `AR51SDK_PICO`, and the legacy `AR51SDK_QUEST` / `AR51SDK_WAVE`), `AR51SDK_LIVELINK`, and `AR51_RenderStream` (Disguise) ship as **separate plugins** and are **not** part of this `AR51SDK` Runtime-module reference. Their dedicated reference is pending.
:::

New to the SDK? Start with the *connect → drive a character* [walkthrough](/docs/sdk-api/unreal-api/skeletons-and-characters#walkthrough) at the bottom of Skeletons & characters.
