There is currently no way on the client to tell when a player’s Roblox Chat has fully loaded for the first time. This is a issue because if you try to TargetTextChannel to custom channel before the Chat has had the chance to load, the channel tab for the channel does select for that channel and the player is unable to talk in the channel. This creates a state where you have to add waits when the player joining the game hoping to wait enough time for the Chat System to load. Some way of telling when the chat system has loaded would prevent this.
For this particular case, it would be most ideal for TextChatService to simply be more flexible to property changes which occur before it is loaded. However that doesn’t mean this feature would be useless, this would most likely be very useful for determing when TextChatService-related functions (such as DisplaySystemMessage
) can be fired since unlike properties, it is much more difficult (and perhaps even not ideal behaviour) to back-fill function fires.
Having to deal with TextChatService and the race conditions you have to account for is absurd. I use this system to tell users if they have commands. Having TextChatService:IsLoaded()
and TextChatService.Loaded:Connect()
would be very useful so that we would no longer have to worry about race conditions. Even Roblox’s “Roblox automatically translates supported languages in chat” message has a race condition as sometimes it fails to display if you have chat translations enabled before loading into a game.