Do you find the steam app ID 480 stable for testing VoIPTalker?
I’ve been following tutorials for setting up VoIPTalker with proximity and PushToTalk on a client-server multiplayer using AdvancedSessionsPlugin. It seems to kind-a work, but just parts of words are going though the VoIP talker communication. I’m attaching the VoIPTalker to either Mesh or Capsule.
Could it be that AppID 480 is always congested on Steam side and it not reliable to test VoIP communication?
Or maybe I should troubleshoot microphone settings? I do not see any silence-detection mechanism that could interfere with my tests, but that is still a possible problem that I might be missing.
Important for me was to mark both events as Reliable (initially I thought this is not essential)
Multicast_initVoipTalker
For safety - check if voipTalker is already valid - if it is then do not create new one
check if PlayerState is valid and wait until it is valid - in future I’d rather avoid waits inside thread, but it works
call AddVoipTalker and save to a variable (not setting replication on that variable)
Note: I gave up on implementation with VoipTalker added as a Component to character with ComponentReplicates=true
RegisterWithPlayerState for VoipTalker
set settings on VoipTalker with CapsuleComponent as a attach point and attenuation settngs
set MicThreshold to -1
ExecuteCommand with voice.MicNoiseGateThreshold 0.01 - I’ll furhter troubleshoot if this really helps or rather causes cracking in voice sometimes
ExecuteCommand with voice.SilenceDetectionThreshold 0.01 - I’ll furhter troubleshoot if this really helps or rather causes cracking in voice sometimes
GameMode:
Inside OnPostLogin (here setup without seamless travel),
adds each connecting playerController to an array
check if this array has already all players
if all players connected then wait further e.g.: 10 seconds (e.g.: setTimerByEvent 10 seconds)
Iterate playerController array and for each call on playerController.getControlledPawn → call thirdPersonCharacter.Server_initVoipTalker
It seems that it is really important to call init of VoipTalkers on all players only when all of them are already present on the connected session. If I would allow host player to create its VoipTalker without this wait then it would not attanuate the voice.
Hello, I tried your configuration and it’s working (I heard players with attenuation) but only if I put 10 seconds delay, otherwise, I hear server host everywhere and the host dont hear clients. Did you find a reliable solution to prevent usin 10sec delay ?
Hey, glad to hear that this was helpful.
I actually stopped the Voip implementation at that phase as I had another priority aspects of the game to complete. I’m still not sure I’d go with my own implementation or a plugin - I wanted to implemenet also seperate channels per teams.
Anyway if this still relevant to you - I think that the final wait after last login of a new player is needed to ensure that each remote client character is properly replicated/initiallized.
This is network sensitive - I’m planning to investigate that later with RepNotify notifications, but right now I was focused on something else.