I need assistance with my Voice Chat system.

So I tried making a custom VoiceChatSubsystem in C++ using UE5’s Voice Chat Class, and I believe I’ve done the code correctly, as my debug print it displays that I am talking, but players can’t communicate with each other. I noticed that despite the fact that both my friend and I would talk simultaneously, it would only recognize the local player speaking.

I don’t think it’s a code error, but it is possible. However, I think it may be an issue with my game settings. Either in the Dev Portal for my game or in the GameEngine.ini.

If you think you have a solution, please contact me on Discord (ChamillionOG). If you are unable to, then just respond here. Thank you.

Local-only recognition usually means the voice data isn’t being routed between the clients, rather than anything wrong in your subsystem code. Things to verify:

  • Voice needs an online subsystem session: both players must be in the same session/lobby and registered as talkers. Check that bHasVoiceEnabled/voice is enabled in the session settings, and that players are registered via the voice interface (RegisterRemoteTalker / the Online Subsystem’s Voice interface) when they join.
  • In DefaultEngine.ini make sure [OnlineSubsystem] has bHasVoiceEnabled=true and under [/Script/OnlineSubsystemUtils.OnlineEngineInterfaceImpl]/[Voice] bEnabled=true. For the Voice Chat plugin (EOS), you must also enable the EOS Voice/RTC feature in the Dev Portal and the plugin settings, and the product must have RTC enabled.
  • Make sure each client joins the same voice room: log the room name and the participants list. If each player ends up in a separate room (e.g. a name derived from a per-player id), they’ll only hear themselves.
  • Your debug print showing “I’m talking” only proves local capture. Also log OnVoiceChatPlayerAdded / participant callbacks to see if remote participants show up, and check that they aren’t muted, and that audio output device/volume are set.
  • Test with two separate machines/accounts (not two instances with the same login) and look at the log with LogVoiceChat, LogEOSSDK set to Verbose; the connection/room join errors usually point to the config problem.