How to get voice chat working in GameLift?

Hello,

My team is currently using GameLift to host our game servers. We are hoping to implement the new VOIPTalker so that our players can chat without having to use Discord or another third party app, but we are having trouble getting that to work on GameLift.

We are using a custom variation of the null OnlineSubsystem. We are also using GameLift’s functionality instead of joining a session via the Multiplayer Sessions system (our problem is acutally very similar to the one posed in this question, which has gone unanswered: https://answers.unrealengine.com/que…7117/view.html)

We have added the following to our DefaultGame.ini:

[/Script/Engine.GameSession]
bRequiresPushToTalk=false

As well as the following to our DefaultEngine.ini:

[Voice]
bEnabled=true

[OnlineSubsystem]
bHasVoiceEnabled=true

On our character blueprint, we have tried:

Initializing a Talker variable on BeginPlay and registering it with the player state
InitTalker.JPG

Adding the Talker as a component instead, and registering it with the player state

We have also tried adding “Voice” to both the PrivateDependencyModuleNames and PublicDependencyModuleNames in our project’s build.cs file, as well as adding it to the PrivateDependencyModules in our online subsystem’s build.cs file.

None of the above worked, and this is something that we really want to implement. Any help that you guys can offer would be greatly appreciated! :slight_smile:

You might wanna ensure that RegisterVoice gets called in the OnlineSessionInterface and calls RegisterRemoteTalker etc.

Alternatively you could use the Vivox plugin. Network traffic should be considered and it could be handled by a dedicated VOIP server instead.

Hi @GarnerP57, thank you so much for your response!

To clarify your first suggestion, do you mean that when RegisterVoice gets called in the OnlineSessionInterface, the check for IsLocalPlayer from the online subsystem should return false? Because RegisterRemoteTalker is theoretically called if IsLocalPlayer is false.

Unfortunately, the Vivox plugin is not an option for us; it would require a refactor of our user database, and that is something that my team wants to avoid.