Wrong mutelist for Steam VoIP

Branch: Source

Build version: 4.9.2-0+++depot+UE4-Releases+4.9 & 4.11.0-0+UE4

Detailed description of the issue:

FOnlineVoiceSteam::UnmuteRemoteTalker() will never unmute a player:

// Make sure there isn't a system mute
bool bIsMuted = IsMuted(LocalUserNum, PlayerId);
if (!bIsMuted)
{
	// Remove them from the mute list
	MuteList.RemoveSingleSwap((const FUniqueNetIdSteam&)PlayerId);
	UE_LOG(LogVoice, Log, TEXT("Unmuting remote talker (%s)"), *PlayerId.ToDebugString());
}

FOnlineVoiceSteam::IsMuted() will return true if the player is in the MuteList array.

“If player is not in the MuteList array, remove the player from the MuteList array”.

Once muted, a player can never be unmuted.

Fix:

In the function FOnlineVoiceSteam::IsMuted(), this:

Index = MuteList.Find((const FUniqueNetIdSteam&)UniqueId);

Should be this:

Index = SystemMuteList.Find((const FUniqueNetIdSteam&)UniqueId);

Tested online on packaged Steam build using dedicated server exe.

Note: FOnlineVoiceImpl::IsMuted() uses the correct mute list.

Hello Kris,

If I understood your post correctly you are providing a solution to an issue that you have run into. If you would like to submit this to the developers you will need to create a pull request. I have provided a link below. After you submit your information it will be given to the developers for further consideration. I hope that this information helps.

Link: https://github.com/EpicGames/UnrealEngine/compare/

Make it a great day

Yes, I figured that would be the next step.

I thought a post on the answer hub would help anyone dealing with the same or similar issues in future.

Thanks.

Edit: Pull request submitted

https://github.com/EpicGames/UnrealEngine/pull/2051