Add functionality to set adornee of VoiceChat bubble

rfc format drawn from /luau-lang/rfcs/blob/master/TEMPLATE.md


Add functionality to set adornee of VoiceChat bubble

Summary

There currently exists no functionality to set the adornee of the VoiceChat bubble when working with non-humanoid characters, or when seeking to change the sound emission point of the overhead VoiceChat bubble. The addition of something like VoiceChatService:SetAdornee(player: Player, partOrCharacter: Instance) would address this problem perfectly.

Motivation

Adding some functionality (possibly along the lines of TextChatService.DisplayBubble() in regard to function args) to set the adornee of the VoiceChat bubble would allow developers working with non-humanoid characters to implement voice chat without the hindrance of humanoid instances. Such an implementation would also be a step towards having “complete” social features which when working with custom characters can only go so far as displaying text bubbles.

Design

VoiceChatService:SetAdornee(player: Player, partOrCharacter: Instance)
VoiceChatService:SetVoiceAdornee(player: Player, partOrCharacter: Instance)
… sets the voice chat bubble associated with player to be displayed on/above partOrCharacter. It’s drawn from the structure TextChatService.DisplayBubble() for some consistency because both deal with player-specific visual social features in 3d space.

Drawbacks

Adds another function to the VoiceChatService singleton. Functionality is really only ideal/usable by developers seeking to change the sound emission point/instance of player voice bubbles.

Alternatives

Forgoing voice chat entirely, which greatly impacts player social interactions because they’d be restricted to just text chat.

4 Likes