How to disable textchat service altogether including backend

Hello, I’m developing a lightweight single player game that runs well on mobile devices. To achieve this, I’m attempting to make any and all optimizations possible to get the memory usage down. (I’m well aware of what I’m doing and understand the consequences of disabling built in services)

Previously, with the legacy chat service, the entire service, including the backend could be disabled by ticking “LoadDefaultChat” off in studio. Chat | Documentation - Roblox Creator Hub
Note: I do not want to only disable the UI with SetCoreGuiEnabled(). I want to completely disable the entire functionality behind it.

On the documentation page I found a possible? method that may have something to do with this? However, despite it being 9 months since TextChatService has replaced the legacy chat service, there is spotty documentation. TextChatService | Documentation - Roblox Creator Hub (There is literally no description for this method)

What’s wrong with just hiding the chat and preserving the service you might ask? Well, a couple years back, most games would aim to keep total client memory usage under ~500mb. Now an empty baseplate alone takes 1.1gb of memory usage. (In game client, 2.2gb on studio) Over a gigabyte of memory used with no actual game to show for is absurd.
This spike in memory usage can only be attributed to new services. I understand these were rolled out with good intentions, meant to “update” or “modernize” experiences, but why has all control over these been removed from the hands of developers?

I know how it felt to use nothing but low end devices my entire life, and for the longest time, Roblox was like the “lifeline” platform supplying lightweight games for people like me. I believe low end devices still make up a good chunk of Roblox’s playerbase, even in the current day. However, in a mere three years, the addition of more and more bloated services has tripled the baseline memory usage (empty baseplate was ~300 mb in 2020). A lot of these features are pushed out to the platform and enabled by default, with no consideration given to lower end users.

For example, the 1.1gb baseline memory figure was taken with this new feature disabled:

Enabling it uses up an additional 200 mb of ram. This might be easily turned off, but how about for the young obby creator who has no clue what this is?

You could try set the ChatVersion to LegacyChatService and disable that LoadDefaultChat property you were talking about?
image

1 Like

The LoadDefaultChat property is only accessible in studio as a property of the legacy Chat

EDIT:
I think that might work, if you use insert service to get the legacy chat service in the explorer, then set ChatVersion to legacy, then disable the LoadDefaultChat property on the inserted chat, the chat seems to not work on the client (ui is still there though). The caveat is now there is two “chats” in the explorer. I’ll have to do some more testing to see if this actually disables the service