Voice chat / VOIP not working in shipped build

VOIP isn’t working in shipped builds, in PIE/Standalone/Dev build it works just fine.

DefaultGame.ini
[/Script/Engine.GameSession]
bRequiresPushToTalk=true

DefaultEngine.ini
[Voice]
bEnabled=true
[OnlineSubsystem]
bHasVoiceEnabled=true

I add custom VOIPTalker, register it with PlayerState, and then I watch if VOIPTalker “Event begin Talking” triggers or not, but it doesn’t…

Also without VOIP, if I just use ToggleSpeaking 0/1 without anything else, it still doesn’t work only in shipped builds.

Where are you setting up the voip talker? Are you using sessions?

Just for complete clarification I will post the whole implementation because it’s still pretty short.

  • I use Advanced Sessions
  • I Add Custom VOIPTalker inside PlayerState Begin Play, then register it with PlayerState, and if it’s local player I run few console commands for thresholds and set OSS.VoiceLoopback 1, so I can hear myself talking (Player State VOIP posted by anonymous | blueprintUE | PasteBin For Unreal Engine)
  • This custom VOIPTalker has 2 overriden events: Event Begin Talking and Event End Talking, where I just set color of Image inside of Player’s HUD, just to see if event triggers
  • Lastly, in PlayerController I just use console command ToggleSpeaking 1/0 based on pressed/released key

That’s interesting. My DefaultGame.ini is set up similarly. I was under the impression it needed to be attached to a physical component such as the capsule component for it to work…? or it just falls through the floor like and any other detached component. I did have 100% success setting it up on the character and casting to the player state for registration using sessions on packaged builds using multiple internet connections on separate networks. It all executed from the player character inputs.

This worked perfectly on LAN. I proceeded to celebrate like Alexander Graham Bell. Switched to dedicated servers and it ceased to function. I do receive the loopback call “1” on the log though on event begin play when testing, but no voices. Haven’t been able to dedicate enough time to either:

a. get it to work on a dedicated server
b. implement another solution

One thing that I found today while configuring ports in the BaseEngine.ini and not the DefaultEngine.ini is that:

“[Voice]
bEnabled=false”

Is also specified there and was set to false!.. I did not know that, yet it still worked on LAN. Just bouncing ideas here, but I wonder if it not attached to a component has anything to do with it or perhaps maybe the BaseEngine.ini [Voice] setting there is messing me up or maybe you also. I’ll be trying that myself tomorrow, maybe it’ll help one of us. Here is mine:

“VoipRef” is connected to a voice settings variable. “MakeVoiceSettings” must expose the pins first. This is UE4.26.2. I know UE5 has newer settings, but should work close to the same. I’m curious about your findings regardless of the outcome here!

I finally got to test your approach, whole voice chat logic was moved to character’s pawn and got the same result It works in PIE/Standalone/Dev Build but not it Shipping build…

After researching UE’s voice chat options, probably the best one is EOS Voice Chat Plugin, because with default ToggleSpeaking or VOIP I’ve read multiple problems, such as game crashes after seamless travel, need to increase bandwith, otherwise voice chat will be laggy, etc. Not sure If you’ve encountered them as well. On the other hand my issue with EOS Voice Chat Plugin is that I just do not want to implement Epic’s interface into a Steam game.

About BaseEngine.ini, I’m pretty sure it doesn’t matter that voice enabled is set to false, because it will just get overriden by DefaultEngine.ini

That’s a bummer. I started looking into EOS for voice services and such as well, but yes, I started feeling a little uneasy because of using steam as well and messing up years of work I’ve put in. Especially since I’ll have to implement this through visual studio with the dedi servers and it’s super easy to destroy a project that way.

From what I was reading from EOS it sounds much more promising on terms of support, functions and security, but I think it’s a paid service and then started getting a little gray about how to successfully implement and sign up for the service and how all that works. But if I can’t get this VOIP Talker to work, I’ll be looking more into that myself as it’s necessary.

Seems like it’s a better candidate for launching a game onto the Epic Games Store in lieu of Steam, but when I started working with these interfaces EOS wasn’t quite ready and there’s not much information available in the community I can find since it’s all still very new.

Having a voice system for multiplayer is turning into an expected/baseline feature for most popular online games these days, but there isn’t much discussion about it’s implementation. With that being said, I will certainly be dedicating a lot of hours/weeks implementing a fool proof system in the final stretch of my launch and I’ll be sharing my findings.

Most of what I find is, “Well, we found a guy and he implemented a solution for us”. The End. So it’s starting to sound more like a purely C++ solution through an external network to handle the VoIP to avoid lagging the game server and isn’t as simple as using some nodes in the editor lol.

I was able to get the LAN to work, but it seems this solution is for peer to peer connections and it’s getting snubbed out and just doesn’t work like that over a dedicated server which isn’t what you said you’re working with, but hopefully you’ll get to worked out and share it here.

Good luck my friend!

1 Like