New Roblox Chat System Developer Beta


On OS X Yosemite 10.10.5, when you press / to activate the TextBox, it focuses but inputs an ‘/’ at the same time.

Quick question:
Will the new chat system use the same way of detecting when you press the chat hotkey?

If I - and other players - suddenly have to press “-” instead of where “/” is visually on our keyboard, it’ll probably be confusing for new players.

On a side note, it’d be cool if Guiservice.SpecialKeyPressed could be unlocked.

1 Like

Right now it just listens for the “/” key on UserInputService, but I’ll switch it over to this system.
Thanks for bringing this up. I didn’t know this existed.



##Official Issue List
This is the official list of things that I am aware of that need to be fixed for the new chat system.
If there is something missing, please comment and I will be sure to add it.

###High Priority Fixes

  • Guests should not be able to chat.
  • Chat window needs to respect bubble chat only settings.
  • Message overflowing needs to be properly fixed in a way that isn’t CPU intensive (the hot fix was redrawing all 50 messages in each chat window log lol).
  • Flood filter / spam prevention needs to be implemented.
  • Need to move to GuiService.SpecialKeyPressed instead of UserInputService.InputBegan for selected chatbox.
  • Need to figure out what causes chat message text to get bunched together and stop it from happening.


  • Speaker name color should match Player team color.
  • Fix error output where players are told to join channels they are already in on startup.
  • Make tabs have a set order and not randomly reorder themselves when one is joined or left.
  • Channel tab names should shorten text based on character width and not number of characters.
  • Clicking on a Speaker’s name in chat does not open up a private message channel with them.
  • Chat window needs a better system for persisting through respawn. The current system does not work if the Player’s Character is removed.

###Changes / Extra Features

  • Fading in/out needs to be shortened.
  • Fading logic for when to fade in and fade out based on events needs to change. Fading the backround in and out every time a message is received doesn’t look good.
  • “/w speaker_name message” should be behavior that exists. Also, sending a whisper message to a player should put you in their whisper channel.
  • Add functionality for dragging and resizing chat window.
  • Some basic settings should exist in a ModuleScript for flags such as emoji enabled (assuming they are allowed to stay in the default install), starting size and position of chat window, bools for dragable and resizable, and maybe a few others.
  • “/help” should be able to function as “/?”.

Please comment if there is anything you feel that I’ve missed or if there’s anything you’d want to be added on to this list.

I love how people are like “this should be an official release!” in the comments of that place…

This looks neat. May take some getting used to, and the chat channel buttons are a bit large, but… Good job, overall. :slight_smile:

The design was mobile-first. This may be a good thing :slight_smile:

Make sure they can read chat, and possibly use 13- chat. It’s quite difficult in a co-op game to work with a Guest that you can’t communicate with. Find out if you can.

Also, I hope that the other parts of the CoreGui become modules eventually.

1 Like

As much as I agree with you, I think there may be legal reasons why Roblox can’t do this. Don’t know for sure tho.

There’s not

1 Like

if you really want it, you could script it. the joys of open source…

(im sure theres a good reason why they cant. think botters spammers etc)

That sounds like the most likely reason. I’m not sure how effective that is though with creating a chatting-able account taking literally seconds.

Then the change is only applicable to my game. I want guests to be able to chat in every single game. I could definitely make a PR for the chat when it’s up on the ROBLOX github, but would it even be accepted?

The current plan is that guests will not be able to send chats, but they will be able to see chats in whatever channels they are in. They can type and try to send a message, but it will be blocked and they’ll just be sent a system message saying something like “make a free account”.

This is a moderation issue. We can’t moderate people who do not have accounts.

local ChatService = require(game.ServerScriptService.ChatServiceRunner.ChatService)
local Channel = ChatService:GetChannel("All")

When I do it like this, channel occasionally returns nil. It could be me doing something wrong, but I thought I’d mention it anyway.

Because that is not the intended way to use it. Your code executes before ChatServiceRunner is finished initializing and before the channel “All” exists. The ideal use is to put a ModuleScript containing your code into the ChatModules folder. ChatServiceRunner will then automatically require and run those modules when everything has been set up.

This is awesome. Just what I needed for my game too, my custom chat was way too annoying to work with.

I agree on the chat background fading a bit too slowly though.

Egh. I had a feeling I wasn’t doing it right. Sorry for wasting your time.

Don’t worry about it. It taught me that I need to make it more clear, especially for when this hits the general public.

1 Like

I’ve found that when working with ROBLOX APIs, it’s best to try to support any silly use case you can think of because people will probably try it. Even if that support means spitting out a warning to use it the correct way…