UE5 clients cannot call Server RPCs on actors they don't own. NPC actors are server-owned, causing "No owning connection" errors when remote clients try to start conversations, send mic audio, or interrupt agents. Solution: relay all client→NPC RPCs through the InteractionComponent on the player's pawn (which IS owned by the client). The relay forwards commands to the NPC's ElevenLabsComponent on the server side. Changes: - InteractionComponent: add Server relay RPCs (Start/End conversation, mic audio, text message, interrupt) and Client relay RPCs (ConversationStarted/Failed) with GetLifetimeReplicatedProps - ElevenLabsComponent: implement FindLocalRelayComponent(), route all client-side calls through relay (StartConversation, EndConversation, SendTextMessage, InterruptAgent, FeedExternalAudio, mic capture) - Fix HandleConnected/ServerRequestConversation to route Client RPCs through the player pawn's relay instead of the NPC (no owning connection) - Fix StartListening/FeedExternalAudio/StopListening to accept bNetIsConversing on clients (WebSocket only exists on server) - Fix EvaluateBestAgent to use NetConversatingPawn instead of NetConversatingPlayer (NULL on remote clients due to bOnlyRelevantToOwner) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Description
Eleven Labs Integration for Unreal Engine 5.5
Languages
C++
90%
Python
4.8%
HTML
4.3%
Batchfile
0.6%
C#
0.3%