Integrate·For programmers

Ship narratives in Unreal Engine.

A native C++ plugin with a GAS-inspired action system, typed variable model, and clean JSON export. No lock-in, no magic base classes.

// Custom action class

class UNSAction_PlayLine

: public UNarrativeAction

void Begin()

void Complete()

void End()

Action Classes

GAS-inspired action system

UNarrativeAction is the base class for all gameplay actions. PlayLine, MoveTo, FadeCamera — define them in C++ or Blueprint. Async lifecycle: Begin, Complete, End. NarrativeStack dispatches them at runtime.

Integrations

Fits your existing stack

State providers, services, and graph parameters integrate with your existing UE subsystems. Variables live as UPROPERTYs on your objects — accessed by NS via reflection. No special base classes required.

set Mary.Mood = "suspicious"

when Mary.Trust > 50

run Mary.PlayLine()

Expression Evaluator

Same expressions, zero translation

C++ AST tree-walker evaluates conditions, interpolation, and set statements at runtime. Same expressions authored in the editor, parsed to an AST, serialised in JSON, and evaluated in C++ at runtime.

{

"schema": 12,

"nodes": [{ "type": "dialogue" }],

"exits": ["Happy", "Bad"],

"params": { }

}

Export

Clean JSON, no lock-in

Graphs export to a spec'd JSON format. Flat node arrays, typed exits, expression ASTs, graph parameters — designed for fast deserialization and engine-side tooling. Schema versioned.

UE Plugin

Scan components & push schema

NarrativeStack

Autocomplete & validation

Registry Sync

Live types from Unreal

The UE plugin scans entity components, state providers, and services at editor time. Pushes the schema to NarrativeStack so autocomplete and validation use live engine types — always in sync.

class UMyGraphParams

: public UNarrativeGraphParams

TSoftObjectPtr<UWorld> Location

ETimeOfDay Time

EWeather Weather

Scene Metadata

Graph parameters

Developer-defined schema per graph for scene setup — location, time of day, character placements. Exported as typed structured data. Subgraph-aware. Runtime values applied via reflection before the cursor advances.

Roadmap

Integrate·Schema-versioned JSON export

Shipped

Flat node arrays, typed exits, expression ASTs, and graph parameters.

Integrate·GAS-inspired action system

Shipped

UNarrativeAction base class with async Begin/Complete/End lifecycle in C++ or Blueprint.

Integrate·C++ expression evaluator

Shipped

AST tree-walker for conditions, interpolation, and set statements at runtime.

Integrate·State providers and services

Shipped

Variables as UPROPERTYs accessed via reflection. No special base classes required.

Integrate·Live registry sync

Shipped

UE plugin scans entity components at editor time, pushes live types to NarrativeStack.

Integrate·Graph parameters

Shipped

Developer-defined scene metadata per graph — location, time of day, character placements — exported as typed structured data.