TextChatService does not support displaying bubbles over NPCs from the server

I would like to display bubbles over NPCs from the server with TextChatService:DisplayBubble(part, message). I previously could do this with ChatService:Chat(part, message).

I have checked that TextChatService has ChatVersion set to TextChatService and that TextChatService.BubbleChatConfiguration.Enabled is set to true.

To verify that it’s an issue sending from the server, I have made a baseplate to replicate the issue. On one part labeled LocalChat is a ProximityPrompt. When triggered, this proximity prompt will call into TextChatService:DisplayBubble to show “Hello World”. The Server Chat part does the same but from a Script on the server. There are print lines to show that the triggered callback is working. Note that the local chat part will successfully show the bubbles whereas ServerChat does not.

Note that if you change the TextChatService.ChatVersion to LegacyChatService and replace the calls to TextChatService:DisplayBubble with game:GetService("Chat"):Chat, it works as expected.

The closest related post that I found is a comment from @be_nj which states that this method may be disabled. If this is the case, I request that this be enabled or the documentation be updated to specify this method does not work from the server.

client_server_bubblechat_repro.rbxl (51.2 KB)

Expected behavior

I would expect that TextChatService:DisplayBubble(part, message) when called from the server would have the same behavior as when it is called from the client.

1 Like

Hi,

TextChatService:DisplayBubble(part, message) only works from the client by design. One reason is to encourage proper string filtering (remember, all text needs to be filtered before being displayed to users, and filtering behavior is different per sender/recipient even with the same string!).

For example, for message = “This is a test message”, if we let RCC be able to call DisplayBubble, developers may be more prone to sending this message unfiltered to all clients by simply calling TextChatService:DisplayBubble(part, message) from RCC.

However, by limiting calls to client only, developers have to be more explicit of receiving clients (and consider appropriate filtering rules).

It’s recommended to use RemoteEvents/RemoteFunctions to trigger defined DisplayBubble calls in the client from RCC.

1 Like

If the text is coming from an NPC, then I wouldn’t worry about filtering it. This is because the text was written by a developer. If it was randomly generated or written by a user, then it should be filtered.

I wouldn’t filter NPC text because it can hurt gameplay and could cause important details or hints to be thrown away into hashtags. If the NPC text is inappropiate, that’s the developers fault and they would get warned after somebody reports it.

3 Likes

Thanks! Makes sense if each client needs to apply different filtering rules.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.