How to implement VOIP from 1 source to 3 locations on a level?

evrenbus
Mon, 19 May 2025 09:29:56 +0000
Programming & Scripting

Hello everyone I have been searching for a week now, decided to ask here.

I am trying to make a voice chat, there are 4 stations on the map and there are 4 players in the game. I want them to be able to talk to each other when they are near their stations. For example, lets say stations are A,B,C,D. If a player is near station A, and there are players on both B and C, I want B and C to hear when A talks, and when B talks I want A and C to hear and so on. On top of this I want players to be able to communicate when they are near each other, proximity chat.

What I tried:

1. Creating a station blueprint and attaching 3 VOIPTalker components to it then registering it with each player state on server. This did not work because from what I understand each Player State can have only one VOIPTalker component registered.

2. Had the idea to attach attenuation to more than 1 scene components, three in total, one for each station excluding self. But I couldn’t find a way, the VOIPTalker settings property only takes single scene component to attach.

3. Tried to implement channels, channel 1 for proximity and when a player enters the range of a station their channel will be switched to channel 2 to be able to communicate with each player on their stations. But I couldn’t find a way to implement channels. From what I understand I can implement something similar (I am not sure) by enabling “Voice Chat Interface” plugin and using it via C++. But when I activate “Voice Chat Interface” and restart the engine, it doesnt work, says I need to rebuild the project, the “VoiceChat” is in another engine version. So when I rebuild the project it throws an error saying “VoiceChat” is not a C++ module and build fails.

Is there another way I did not think of? What can I do to solve this issues? How can I implement the system I mentioned?

UE version 5.4
Using SteamSockets, AdvancedSteamSessions

Thanks in advance.

2 posts - 2 participants