Introduce a VoiceChatService property or method to see if voice chat is enabled in that experience

It’s currently impossible for third-party-packages like TopbarPlus to check whether an experience has voice chat enabled or not:

This is necessary otherwise it’s impossible to account for features like the BETA topbar label:
image

To check for individual players you can use VoiceChatService:IsVoiceEnabledForUserIdAsync(localPlayerUserId) however this is incomplete because IsVoiceEnabledForUserIdAsync returns true even if the experience has disabled VoiceChat.

We can’t overcome this with our own property/variable like IconController.isVoiceChatEnabled because TopbarPlus is used by additional third-party-applications like HD Admin and the Super Biz Catalog which don’t manage the games their applications are used within.

We also can’t use an external approach such via HttpService as TopbarPlus is entirely client-sided (introducing server-sided code would introduce major unnecessary bloat) and many experience don’t even enable HttpService.

Overcoming this would be as simple as introducing a VoiceChatService property like:

VoiceChatService.IsVoiceChatEnabledInExperience
34 Likes

Ever since the introduction of VoiceChatService, it has had very little documentation and has barely any functions. Even functions that are provided are barely functional, like how VoiceChatService:IsVoiceEnabledForUserIdAsync can only be checked on the client. VoiceChatService is long overdue for a new update.

6 Likes

you can probably use

game:GetService("Players").PlayerAdded:Connect(function(plr)
	game.VoiceChatService:IsVoiceEnabledForUserIdAsync(plr.UserId)
end)
1 Like

This will not work, as it’s only checking if the user has enabled voice chat personally in their settings.

2 Likes