nimeet Docs
中文

Unreal Blueprint SDK Guide

Unreal Blueprint nodes, install and limitations.

Interface sections generated from the public SDK definitions

Version v1.1.0 · Updated 2026-10-26 · revision 1

Unreal Engine (Blueprint) is the blueprint exposure layer of the same C++ engine: method names are capitalized (Initialize, JoinChannelWithOptions) and events are exposed to blueprints as delegates.

Prerequisites

  • Unreal Engine 5.2+ with the NimeetRtc plugin enabled.
  • Shares the runtime library with the C++ side; the permission requirements are the same.
  • An appId and a token service (see Enable Services and Get Credentials).

Installation

text
YourGame/Plugins/NimeetRtc/…
# regenerate the project files → enable it in .uproject → a "Nimeet RTC" category appears in the editor

Get a token

Do not hardcode the token in a blueprint. Recommended: get the backend-issued token during login, store it in a string variable on GameInstance, and pass it as an argument of JoinChannelWithOptions when joining.

Join a channel

Blueprint node order (every node name matches the interface definition):

  1. Initialize (arguments: AppId, optional log configuration)
  2. SetChannelProfile (ChannelProfileLiveBroadcasting)
  3. EnableVideo
  4. StartPreview
  5. JoinChannelWithOptions (Token, ChannelId, Uid, ChannelMediaOptions)

The corresponding C++ implementation (you can wrap it in your own Actor):

cpp
Engine->Initialize(Context);
Engine->SetChannelProfile(CHANNEL_PROFILE_LIVE_BROADCASTING);
Engine->EnableVideo();
Engine->StartPreview();
Engine->JoinChannelWithOptions(Token, ChannelId, Uid, Options);

Publishing and subscribing

Blueprint nodes: MuteLocalAudioStream, MuteLocalVideoStream, EnableLocalVideo, UpdateChannelMediaOptions. Screen sharing: GetScreenCaptureSources (returns the source list) → StartScreenCaptureByDisplayId / StartScreenCaptureByWindowId.

Events

Blueprint events (Event nodes):

EventWhen it fires
OnJoinChannelSuccessJoining succeeded
OnUserJoinedA remote user joined
OnUserOfflineA remote user left
OnTokenPrivilegeWillExpireThe privilege is about to expire
OnErrorRuntime error

Error handling

  • OnError gives err (the Agora error number) and msg;
  • Synchronous nodes return int, and a negative value is an error;
  • Unimplemented capabilities return -4 (ERR_NOT_SUPPORTED); the blueprint sees a failure instead of a silent success.

Troubleshooting

SymptomCauseHandling
Nodes missing in the editorThe plugin is not enabled/compiledEnable the plugin and recompile
Nodes stop working after packagingThe plugin did not make it into the packageCheck the Plugins directory and the packaging log
Events never fireThe delegate is not boundBind in BeginPlay and unbind in EndPlay
The remote picture is blankNo render material is setBind the video surface component the plugin provides
The Android package is too largeABIs were not strippedKeep only the target ABI

Next steps

Platform information

Itemvalue
PlatformUnreal Engine(Blueprint)
LanguageBlueprint / C++
SDK packageNimeetRtcBlueprint
Interface version4.5.1
Compatible Agora APIAgora unreal-blueprint API

The public interfaces are aligned with the Agora unreal-blueprint API; installation and runtime requirements are listed under Prerequisites above.

Availability

This platform's SDK: Generally available. The examples use the public API; runtime capability follows the published SDK package.

join-channel flow

The method names, parameter types and return values match the API reference for the same platform. Where a method has several overloads, the most common one is shown here; see the API reference for all overloads.

StepInterfaceMethodOverload count
Join a channel__unattributed__JoinChannel1
Leave a channel__unattributed__LeaveChannel1
enable video and local previewIRtcEngineEnableVideo1
Create instance / initializeIRtcEngineInitialize1
subscribe to remote mediaIRtcEngineMuteRemoteAudioStream1
Renew the TokenIRtcEngineRenewToken1
Channel scenariosIRtcEngineSetChannelProfile1
switch rolesIRtcEngineSetClientRole1
bind the local videoIRtcEngineSetupLocalVideo1
typescript
JoinChannel(token: const FString&, channelId: const FString&, uid: int64): int
LeaveChannel(): int
EnableVideo(): int
Initialize(context: const FRtcEngineContext&): int
MuteRemoteAudioStream(uid: int64, mute: bool): int
RenewToken(token: const FString&): int
SetChannelProfile(profile: ECHANNEL_PROFILE_TYPE): int
SetClientRole(options: FClientRoleOptions, clientroletype?: ECLIENT_ROLE_TYPE): int
SetupLocalVideo(canvas: const FVideoCanvas&): int

Events and callbacks

This SDK has no event callbacks.

Error codes

Constantvalue
VT_ERR_INTERNAL20
VT_ERR_INVALID_IMAGE_PATH3
VT_ERR_INVALID_LAYOUT5
VT_ERR_INVALID_VIDEO_SOURCE_TYPE2
VT_ERR_UNSUPPORT_IMAGE_FORMAT4
VT_ERR_VIDEO_SOURCE_NOT_READY1

the platform REST layer uses REST error codes;the SDK layer maps connection/authentication failures to Agora error numbers, for the mapping table see SDK error identifiers per platform。

Generated by the documentation build pipeline · 2026-10-31 01:24:02 UTC · Documentation center v1.1.0.

Content follows the public API definitions.

ni-meet is a self-hosted RTC PaaS with a LiveKit-based media plane (Apache-2.0) and an Agora-compatible API.