Character events
Reference for character events — speech, emotion, transcripts, turn lifecycle, and actions — via relay component or the `ConvaiEvents` C# hub.
ConvaiCharacterEventRelay
ConvaiCharacterEventRelayusing Convai.Domain.DomainEvents.Runtime;
using Convai.Runtime.Facades;
using UnityEngine;
public class CharacterReactionHandler : MonoBehaviour
{
private void OnEnable()
{
var events = ConvaiManager.ActiveManager?.Events;
if (events == null) return;
events.OnCharacterSpeechStateChanged += HandleSpeech;
events.OnCharacterEmotionChanged += HandleEmotion;
}
private void OnDisable()
{
var events = ConvaiManager.ActiveManager?.Events;
if (events == null) return;
events.OnCharacterSpeechStateChanged -= HandleSpeech;
events.OnCharacterEmotionChanged -= HandleEmotion;
}
private void HandleSpeech(CharacterSpeechStateChanged e)
{
if (e.IsStartOfSpeech) Debug.Log($"{e.CharacterId} started speaking.");
if (e.IsEndOfSpeech) Debug.Log($"{e.CharacterId} stopped speaking.");
}
private void HandleEmotion(CharacterEmotionChanged e) =>
Debug.Log($"{e.CharacterId}: {e.Emotion} ({e.NormalizedIntensity:P0})");
}Events
Event
Argument
Fires When
CharacterTranscriptRelayData fields
CharacterTranscriptRelayData fieldsField
Type
Description
CharacterEmotionRelayData fields
CharacterEmotionRelayData fieldsField
Type
Description
CharacterTurnCompletedRelayData fields
CharacterTurnCompletedRelayData fieldsField
Type
Description
ConvaiTranscriptEventRelay
ConvaiTranscriptEventRelayFilter properties
Property
Default
Description
Events
Event
Argument
Fires When
PlayerTranscriptRelayData fields
PlayerTranscriptRelayData fieldsField
Type
Description
C# event hub — character-scoped events
Character events
Event
Argument Type
Fires When
Player events
Event
Argument Type
Fires When
Cross-feature events
Event
Argument Type
Notes
Internal / advanced events
Event
Note
Direct ConvaiCharacter C# events
ConvaiCharacter C# eventsEvent
Signature
Fires When
Domain event payload types
CharacterTranscriptReceived
CharacterTranscriptReceivedField
Type
Description
CharacterSpeechStateChanged
CharacterSpeechStateChangedField
Type
Description
CharacterEmotionChanged
CharacterEmotionChangedField
Type
Description
CharacterReady
CharacterReadyField
Type
Description
CharacterTurnCompleted
CharacterTurnCompletedField
Type
Description
CharacterActionReceived
CharacterActionReceivedField
Type
Description
LlmNoResponseReceived
LlmNoResponseReceivedField
Type
Description
PlayerSpeakingStateChanged
PlayerSpeakingStateChangedField
Type
Description
FinalUserTranscriptionReceived
FinalUserTranscriptionReceivedField
Type
Description
VadSttStateChanged
VadSttStateChangedField
Type
Description
Supporting types
SpeakerInfo struct
SpeakerInfo structField
Type
Description
SpeakerType enum
SpeakerType enumValue
Description
Inspector relay vs. C# events — when to choose
Usage examples
Example 1 — Live transcript subtitle display
Example 2 — Emotion-driven material swap
Example 3 — "Thinking" spinner on no response
Troubleshooting
Symptom
Likely Cause
Fix
Next steps
Last updated
Was this helpful?