DisplayBubble is the alternative, but I did not consider the legacy bubble chat when porting it…
If you change the settings to get the old bubble chat, and use Chat:Chat() (and I mean Chat = Game:GetService("Chat"), it works, but the new bubble chat overlaps it for some reason?
Or you can manually trigger this function, in this module
Sadly no, it uses the same filterer as TextChatService (probably?)
The delay is probably because messages have to do the client → server round trip twice. Using TextChatService’s API, it is impossible to either intercept sent messages on the server (other than the ShouldDeliverCallback maybe), and it is also impossible to use :SendAsync() from the server. So to get the LegacyChat backend working, what I did was, message is sent to the LegacyChat backend, processed (but no filtering step), then sent back to the sender client (and other clients for the placeholder effect), and the sender client then calls :SendAsync() and there I assume it is sent back to the server (internally) to be filtered and sent to every player
V1.5 is now safe to use, and was published to the creator store. Fixed an issue with the beta version, where the ContextActionService binding (for openeing the chat) was not being binded unless chat settings for the keybinds were modified