In the hangout game On Tap, we are noticing that the CoreScript ExperienceChatMain is taking a lot of CPU time on the Heartbeat event. On the Meta Quest 2 and my BlackBerry KEY2 (Snapdragon 660), the Heatbeat event is taking 15ms to process, and nearly 9ms on my AMD R7 3700X desktop. This is a very significant part of the CPU frame times considering the Meta Quest 2 currently gets 50ms-60ms CPU frame times currently.
This screenshot is from the HTML view from my phone:
If I were to take a shot in the dark, it would be something within Modules/InGameChat/BubbleChat/Components/BubbleChatBillboard.lua because it has a RunService.Heartbeat event and On Tap uses voice chat. (Made an oversight looking at this, may not be accurate)
I’m having the same issue, where CoreScripts/ExperienceChatMain causes major performance drops in my game. It happens especially with higher player counts, and it keeps happening even when we mute all players in the server. Given the significant performance impact and our limited ability to do anything about it, I believe a fix should be prioritized
At least when I reported this (I no longer work on On Tap), no. I made sure to check before and didn’t notice any scripts interacting with the chat. The only system that would make sense is admin commands, and On Tap does not use chat for this.
Yes, but I do need to issue a correction: the Heartbeatjob, not the RunService.Heartbeat event. That was an oversight on my end and probably voids my initial guess. The screenshot of the BlackBerry KEY2 microprofiler shows all but 2 frames are maybe 15ms in the delayedThreads section, with 1 random one at nearly 65ms. I believe lots of people using voice chat (i.e. hangout games like On Tap) is a requirement for this issue to manifest, otherwise, this issue would have appeared in many more games I have worked on.
After experimenting a bit… I spawned a bunch of NPCs that say things using ChatService:Chat , after removing these NPCs performance issues still remain.
here is a repro place, spawn around 1000 dummys, make them chat then remove them . Continue this cycle and performance becomes worse and worse. ExperienceChatMain Bug.rbxl (73.1 KB)
Hello, I found a good way to reproduce the issue you can call TextChatService:DisplayBubble on every frame and you’ll see that it’ll take around 5ms to complete at first but it’ll then start taking around 15ms. I expect this to not take such a long time.
How to repro use the place file provided and press play, wait around 30 seconds you’ll see that your performance will degrade a lot.
Any chance you could fix thiswidely reportedissue that you guys have been ignoring for months? Would be great because right now it’s one of the #1 complaints to do with the new TextChatService, and a massive inconvenience to my game.
I only ask because this is really affecting performance in games with this new chat system and I’m not sure if I should move to the legacy chat system in the meantime.
my game relies on the new chat system for player tags and more – I’ve thought about moving to the legacy chat system temporarily until this is fixed but converting parts of my game to support the legacy chat system sounds like a bit of a hassle to do and I’m a bit unsure if I should do it especially when this issue is going to be resolved soon.
Thank you for the follow up reply too, I’m excited to see how much better performance is when it ships!
We want to move over to the new chat system (from Lua chat), but cannot spend the time converting everything until this is confirmed fixed. Any updates? It’s worrying that people are still saying it’s an issue.