TextChatService 'CoreScripts/ExperienceChatMain' Excessive CPU Usage

I see this issue a lot in plugins that use Roact, where the plugin has the tiniest functionality (like an icon pack menu) and the actual file is 90% roact modules which in this case is, essentially, bloat.

I understand why Roblox would want uniformity in their newer core UI, but I strongly believe using heavy frameworks like this is what’s causing delays for basic fixes, like the player list scrolling being buggy for over a year.

8 Likes

I am still experiencing this. It’s caused a huge drop in concurrent players over the past 6 months. Many users are reporting losses of 66% in their FPS before I made the change. It is imperative that this issue is resolved before TextChatService is made a requirement. My game takes around 3ms to do all local logic while both the new chat and leaderboard take a combined 15ms+! I have users reporting less than 25fps with the root cause being the performance of the new chat system.

This needs to be fixed. It is unacceptable, especially after having the issue made known for over 8 months.

2 Likes

Here’s a clip of the performance in action:

External Media

It is absolutely appalling for 200FPS to be nuked down to 40FPS due to chat.

2 Likes

For anyone experiencing this, this post may be relevant Client Locking Up On Humanoid Death - #9 by Cuyler.

The gist is that you should check if your game has Workspace.SignalBehavior set to Immediate. If it does, try changing it to Deferred. All issues relating to lag from ExperienceChatMain and other CoreScripts was resolved and most users in my game reported 2x to 3x frame time (FPS) improvements.

This is definitely still an issue with the Engine though, Immediate signal behavior shouldn’t tank frame time that much.

1 Like

Unfortunately this isn’t a universal fix. For example, all of my instances of complaints have been from Checho’s Deltarune RP - Roblox and this has SignalBehavior set to Deferred

2 Likes

Yeah, I’ve had a few people bring it up however I’m wondering if they’re using bloxstrap? I think a few users in my game were using it and that was causing issues with FastFlag settings which may be defaulting to Immediate signaling.

The system absolutely needs to be optimized still!

It would help a lot if this issue were to be fixed.

I’ve also noticed there are a lot more tasks taking up excessive cpu usage, if roblox were to improve these things it would all games would run a lot smoother.

Some examples of areas that could be improved are:

  1. AD gui heartbeat loops could be grouped up or perhaps parallelized.

  1. The resizer task.

  1. Renderstep containing tons of small core tasks that could be grouped or parallelized.

  1. Random tasks that has to do with players or the microphone gui’s above the characters not being grouped and not cached to improve performance.

If roblox were to improve these there would be an estimate improvement of 400-1000 microseconds.

4 Likes