Skip to content
NuxieNuxie
Esc
↑↓navigate↵open⌘Jpreview
Open Nuxie
On this page

Connect with Unreal

Connect an Unreal mobile game through Blueprint or C++ and verify native Experience delivery.

The Unreal plugin displays Nuxie Experiences above your game and provides Blueprint and C++ APIs for events, purchases, and feature access. Publish or update an onboarding flow or paywall without packaging a new build. Use UE 5.8.2 with its mobile platform components; the mobile defaults target iOS 17+ and Android SDK 35.

Installation

Installation

Copy the prepared plugin into Plugins/Nuxie, enable Nuxie, and restart the editor. Enter your public keys under Project Settings → Nuxie. Only the current platform’s key is required.

Prepare the plugin

From the Unreal SDK checkout, use macOS with UE 5.8.2, its iOS and Android components, Xcode, JDK 21, Python 3, and the Android SDK/NDK required by Unreal. Set UNREAL_ENGINE_ROOT, JAVA_HOME, and ANDROID_HOME to your installed toolchain paths.

Build the native dependencies, then package the plugin:

python3 scripts/prepare-android.py
bash ThirdParty/IOS/scripts/build-framework.sh
python3 scripts/package.py --platforms IOS+Android+Mac --output dist/prepared-mobile

The output directory must be new. Copy the prepared plugin from dist/prepared-mobile into your game’s Plugins/Nuxie directory. It includes the native frameworks, Android dependencies, and resources. Blueprint-only games use the same plugin. The build guide includes the example project setup.

Initialize

Initialize

Copy your app’s public keys from Connect your app. Use pk_test_ keys in development builds and pk_live_ keys in release builds. Keep the default service environment for both; the key selects preview or live content.

In Blueprint, use Get Project Options → Configure (Nuxie) from GameInstance initialization. In C++, add "Nuxie" to your module dependencies and configure on the game thread:

#include "NuxieSubsystem.h"

UNuxieSubsystem* Nuxie =
    GetGameInstance()->GetSubsystem<UNuxieSubsystem>();

FNuxieOptions Options;
Options.IOSPublicKey = TEXT("YOUR_IOS_PUBLIC_KEY");
Options.AndroidPublicKey = TEXT("YOUR_ANDROID_PUBLIC_KEY");

Nuxie->Configure(Options, FNuxieCompletion::CreateLambda(
    [](const FNuxieResult& Result)
    {
        if (!Result.IsSuccess())
        {
            // Surface Result.GetError() through your game's error UI.
            return;
        }
        // Enable interactions that depend on the configured client.
    }));

Wait for successful completion before calling the client. The subsystem continues across map travel.

Run your app on a device or simulator. Connect your app shows Connected after Nuxie receives a request from the SDK.

Trigger an Experience

Trigger an Experience

Publish an Experience for this app with the event trigger integration_test. Set its re-entry rule to Every time if you want to show it repeatedly while integrating. Add this call to a button handler after setup:

Nuxie->Trigger(
    TEXT("integration_test"),
    FNuxieProperties{},
    FNuxieCompletion::CreateLambda([](const FNuxieResult& Result) {
        if (!Result.IsSuccess()) {
            // Surface Result.GetError() through your game's error UI.
        }
    })
);

Tapping the button sends the event. Nuxie displays the Experience when the customer matches its audience and delivery rules. For an existing Experience, replace integration_test with its published event name.

Connect your app changes to Shown after the SDK reports that the Experience appeared. For games, run this in an iOS or Android player or export. Your game controls pause, audio, and input while the Experience is visible.

Update an Experience

Update an Experience

Edit the Experience and publish your changes. Bring the app back to the foreground to fetch the update, then send the event again with a customer who can re-enter. New Journeys use the updated version; a Journey already in progress keeps the version it started with. The app code stays the same.

See the SDK reference for identity, feature access, and App Actions. Delivery explains trigger and audience configuration.

Last updated on

Was this page helpful?