Templates: MetaHuman and Lipsync removed
The MetaHuman and Lipsync template plugins have been removed. Lip-sync is now a first-class feature of the core SDK and does not require a separate template. For lip-sync setup, see the Inworld Lip-sync guide.Streams are now typed iterables
Previously, stream outputs were consumed by polling aFInworldDataHandle_Stream (which carried Index and IsFinal fields). In 1.0, stream types like FInworldData_DataStream_TTSOutput support range-based iteration directly — each iteration yields a FInworldDataHandle that you inspect with IsA or Unwrap.
FInworldDataHandle_Stream no longer exists. Remove any code that referenced its Index or IsFinal fields — use the typed handles from iteration instead.
FInworldData_Error: StatusCode and StatusMessage
The error fields have been renamed and the type of the status changed.| Before | After |
|---|---|
Reason: FString | StatusMessage: FString |
bOk: bool | StatusCode: EInworldStatusCode |
FInworldData_EventHistory: Events array
The event history struct has changed. The oldSpeechEvents: TArray<FInworldEventSpeech> field and the internal TSharedPtr<inworld::vector_Event> native pointer are removed. Event history is now exposed as Events: TArray<FInworldInteractionEvent>.
| Before | After |
|---|---|
SpeechEvents: TArray<FInworldEventSpeech> | Events: TArray<FInworldInteractionEvent> |
TSharedPtr<inworld::vector_Event> EventHistory | (removed) |
Rendering event history to Jinja (before / after)
If you were passing event history into a Jinja template viaRenderJinjaWithJson or RenderJinjaWithArgMap, update the field accessor from SpeechEvents to Events and update the struct fields to match FInworldInteractionEvent.
Before: