VOIP Talker Attenuation Settings not replicating to clients.

Hey all, I am slightly going insane trying to get the attenuation settings of my pawn voip talker component replicated so that the client player can hear the attenuated voice of the server player.

Goal: Proximity-based voice chat for all connected players.

Problem:

  1. The server can hear all clients based on their proximity. The clients, however, cannot hear other clients or the server based on their proximity; their voice is just omnipresent.

Current functionality:

  1. My pawn will initialize the voip talker logic on an event that fires after the pawns controller is done with setting up custom functionality.

Specifically: Register with player state > Set Mic Threshold > Make Voice Settings (For Attenuation and Attaching the Voip talker to the component that moves through the level).

  1. If we are not the server, we will send a server RPC and then do a multicast RPC to setup all of the voice chat logic on all versions of that players’ pawn.

To my understanding this should be all that is required to get this setup and working. But the problem remains, the client will not hear other clients’ players or the server player in a spatialized/attenuated way.

I have tried many different logic flows, but none seem to make any difference at all. Any help and insight would be massively appreciated.

Alright after going fully insane, I went back to the basics and managed to get it working. Below are the screenshots for how it works in my pawn.

  1. Event triggered on beginplay in my pawn:

  2. After the event triggers, we check if the player state is valid. If it is not, we continue checking on a delay. If it is valid we register the VOIP Talker component that we added to our pawn to the replicated player state. Note: The player state is automatically replicated and can be retrieved by right clicking and then searching for Get Player State.

  3. After registering the VOIP Talker, we set the mic threshold and set the voice settings on the VOIP Talker component. This is not a custom variable, just drag off your VOIP Talker component and search for ‘Set Settings’. Then Make VoiceSettings.

And that was all I needed to do.

Doing tests outside of the engine, in a build on Steam confirms that this approach works for the server and all clients.

I also realise EOS has voice chat functionality, but barely any of it is exposed to blueprints, so that is why I am not using that system and sticking with the VOIP Talker for now.