Improvements to Experience Chat Performance

Sorry to ruin it, but…


microprofile-20250328-214703.html (7.7 MB)

I got a huge lag spike from ExperienceChatMain just by joining a Doors lobby server with around 34-36 players or so. This is on my mid-range Window laptop, it’s usually way more severe on my low-end phone. You guys seriously need to benchmark your chat system on servers with a lot of players and see what’s causing the huge spikes there. This doesn’t mean that lag spikes don’t occur on experiences or servers with less players, but it’s probably way less common.

Hope to see improvements on situations like these, and keep up with the improvements and updates!

Finally, I hope the improvements and fixes that are coming next are going to completely solve the performance issues of ExperienceChatMain for good or at least drastically reduce their impact, especially for situations like in demanding experiences and servers with a lot of players. Looking forward for it!

18 Likes

This is amazing, I’m so glad this is something that you guys are addressing. Hoping you guys can also get to work optimizing the leaderboard as well.

1 Like

How much? 1% is an optimization but it’s a hell of a lot different than e.g. 20% or 50%.

13 Likes

honestly i prefer the smaller chat. I too play on a 1440p monitor and i bought the larger screen so i have more viewport space not so the UI can take more space.

1 Like

bubblechat tailvisible is still broken

2 Likes

Could this bug get attention?

2 Likes

I absolutely hate the new textchatservice. I’m not able to make messages show from npcs or sources other than players because SendAsync() is meant to send a message from the client that it’s being run on. I haven’t come across a new way to do it and everyone I’ve asked hasn’t found a way. it also removed "ChatMakeSystemMessage" which was great for sending customized messages with colors and fonts, but this has also been removed in place of DisplaySystemMessage() which doesn’t allow any sort of customization. I get that Roblox is trying to make the chat safer for everyone, but they got rid of valuable features while doing that.

4 Likes

I also play at 1440p and I can barely read the chat. Mostly because my monitor is not actually meant for 1440. It’s 1440p modified to fit a 1080p monitor. Regardless, I think the chat window definitely needs a draggable resize button.

6 Likes

what would this look like, perhaps?

1 Like

Howdy’

You mentioned improvements when chat components are disabled — does this include bubbles? Our team saw that even when disabled, they would take up significant performance.

1 Like

Thats why now most of my chat messages doesn’t show up in the text chat but visible speech bubbles… its kinda annoying because my friends will say to me why i ignore them

1 Like

You can customise the font and font size via the properties of the instances within the chat service quite easily, so you can already fix this. However Roblox absolutely need to fix the default size and also improve its scaling for larger screens.

Definitely should be player-customisable via a setting to change the chat font and font size from default imo.

2 Likes

This is pretty valid; I’ve seen a lot of responses from staff taking care of this issue in particular and can say that the time taken to process chat is reduced.
Thanks for optimising this.

Hopefully these optimisations can be replicated in other react-lua spaces, such as the Roblox app landing page updating whilst in-experience costing up to 30ms per frame despite user context not requiring it. I have gone through the effort of defining a repro for you guys to follow.

4 Likes

Does this actually improve performance? If so, could proper evidence be provided? this post just seems to follow a “trust me bro” mentality, which is bad in terms of a severe, lingering frametime issue that roblox has inflicted onto itself with no way to avoid it anymore as they’re forcing us to use the “frametime accumulators” now

5 Likes

They did improve performance though just a bit. Some actions like typing are seemingly more optimized (if you consider 1 to 0.4 ms per character input to be optimized) though their previous performance issues have been now replaced by SchedulerHostConfig.default?

Either way, these performance improvements are nothing really meaningful.

4 Likes

cool so they did absolutely nothing, or they did other things that don’t actually improve the chat system’s lingering hunger for all the frametimes

either that or all the optimizations broke immediately, which is kinda plausible for roblox

3 Likes

I mean they did something. The numbers im seeing are technically lower. Sending messages would create a 15-8 ms stutter before and now its only a 12-5 ms stutter soooo theres that. But yeah, personally i would appreciate news about how the stutters are gone entirely.

But yeah, this statement is pretty sneaky. I’m sure average frame times of 30 going down to like 20 is a considerable drop but yknow…

5 Likes

that is not going to make a difference as roblox’s forced stuff is still stealing like 30ms of frametime, possibly more, possibly less

but clearly it’s a very severe issue when even high tier hardware can’t get rid of that frametime usage

like if you don’t launch a game directly through the website, that’s 30ms of frametime being spent on unnecessary updates, and then other roblox core scripts are probably going to eat up another 20-40ms

3 Likes

My time as the biggest TextChatService hater has come yet again. (Just kidding)

These changes are great, I don’t hate for the love of the game, I hate it 'cus the system being forced is not yet any better than the previous system that you could easily modify and make your own. So when improvements arrive, they’ll always be appreciated.

Though, can you give us a clear benchmark or % of how much the performance has improved? A small 1-2% is barely any change, whereas 20-30% is actually pretty significant.

From my point of view, this announcement has just been made to calm down a certain portion of the community that is rightfully complaining about the ExperienceChatMain because of its poor performance and because they’ve been forced to use it.

I am honestly impressed by how Roblox is still being incredibly stubborn on forcing these changes to the developer base when they can just spend fewer company resources to make it free and up to the developers and literally face no significant consequences or anything whatsoever. (Or anything that is different from today)

6 Likes

Oh btw ignore my previous post saying how adding characters into the chat box takes 1 to 0.4 ms. Here’s some even more fresh numbers. The numbers overall are pretty unstable overall. May have been wrong about my performance improvement claims but who knows. Would appreciate if roblox also told us what exactly changed and by how much.


And yeah as ive said, apparently SchedulerHostConfig.default just replaced the chat stutters.

6 Likes