It seems like what is causing this to break is adding a speaker to the ‘All’ channel via script. I removed all of my :JoinChannel(“All”) references and this seems to have fixed general chat function, but now I can’t send system messages.
It seems that when it tries to do a LocaleID on a non-player, chat breaks for that channel. (which is ‘All’ in my case)
Out of curiosity, why do you still want the legacy chat system when there is an updated one?
I don’t see a reason to keep an outdated version of a system when all of its features are transferred to the new one that is probably (1) more secure (2) more efficient (3) more updated.
I don’t want it, I just have it, I’ll have to redo my scripts to use the new one. But many legacy games will not be updated(not mine). I hope Roblox will fix this.
The new chat is still a Beta add-on feature of studio. Any games created last year won’t have it.
I ‘fixed’ it like this, ChatChannel line 511 replace that area with this.
if speaker then
-- If the sender is not the same as the receiver and chat translation is turned on, translate the message before sending
--[[if userIsChatTranslationEnabled and translations and (fromSpeaker:GetPlayer().LocaleId ~= speaker:GetPlayer().LocaleId) then
speaker:InternalSendFilteredMessageWithTranslatedFilterResult(messageObj, self.Name, translations)
else--]]
speaker:InternalSendFilteredMessageWithFilterResult(messageObj, self.Name)
--end
end
Because the new chat system is EVEN LESS documented than legacy was. Try as I may, I haven’t even been able to get system messages working with the new chat system. Roblox needs to do something about this or just keep legacy working.
Ok I fixed my patch. There were TWO areas where localeId was used and I only fixed one of them previously.
Now any time localeId fails (because it always does as of right now) the script just keeps going past that point and will not try to translate messages on the fly (which is what localeId was meant for, it seems).
It’s a little quick and dirty, but should localeId ever get fixed in the future, my patch shouldn’t disable any code it was used for.
On further inspection, even while using this patch my messages start to disappear and not send when i send a bunch of them in too little time (not super fast, just normal typing speeds).
Damn this is really broken, and IDK what else to change from here because there aren’t any error messages so…
Yeah, default legacy chat seems to still work fine if you don’t have a non-player speaker defined. For now I have just disabled my system messages and that fixed my game.
NVM problem with my patch again, I should have made it less hastily. It now fully fixes legacy chat. SystemMessages, public chat, and all. EasternBloxxer’s patch likely also works, tho you must remember to remove those changes once Roblox fixes translations if you want translations to work in your game in the future.
Just to follow up on this thread, we have a potential fix ready to be merged in! We’d love if any devs with a place that experienced this issue could send us their place so we can thoroughly test our fix before it’s deployed. Just DM me a link to your place + instructions on triggering messages from a non player speaker and I’ll take a look. Thanks in advance to everyone