Better Chat V3 | Feature-rich custom chat with replies, rich text, message editing, and more!

Introduction

Socialization is an integral aspect of most games, so I strived to make a custom chat system that could help users better interact with each other and convey their messages more effectively. This project took me over five months of off-and-on work to complete, and I sincerely hope this can help others. In addition, it’s entirely open source and not something behind closed walls, it is also capable of being updated by users unlike the default chat.

Features

The primary features of this chat system include:

  • Rich text formatting (allows users to emphasize their messages in the chat with easy to understand syntax and makes sure to escape rich text, so it’s not exploited)
  • Ability to reply to other’s messages (help users clarify what they’re responding to in the case of an active chat)
  • Ability to mention users in the chat (Want to get someone’s attention? You can mention them effectively, and it’ll light up the message on their screen)
  • Message editing (Ability to edit messages after sending them, but it will mark it as ‘edited’).
  • Permissions system (Don’t like users to have message editing, mentioning, rich text? You can assign each of these individually to specific people/groups)
  • Undo/redo system (Ctrl+Y / Ctrl + Z system for the chat bar on PC to undo/redo your messages, you can also use arrows to navigate through your past messages)
  • Sleek UI (Consistent UI design throughout that feels right and looks excellent)
  • Various configurations (Configuration for most aspects of the chat to fit the needs of your game)
  • Player icons next to messages (Show who’s speaking, there’s also an option for viewports which allows you to see the player’s outfit as it changes but is lower quality due to Roblox limitations)
  • Localization (Localization support forked from the default chat system to provide that similar feel and accommodate games that go beyond English)
  • Settings menu (This is toggleable, but highly recommended to keep. This menu allows the users to customize their chat’s text size, ability to resize, bubble chat, and use quick chat effectively. It only has an effect on them visually, nobody else will see it.)

Even with all of these, it’s not flawless. There will still be bugs, and the code won’t always be the cleanest, but it all still works. If you have any ideas on how to improve my code, feel free to private message on here.

This release as of now is currently in Alpha, so a lot of features can end up using work but I want the community’s help on finding what needs work and what people want.

Disclaimers

  1. This does not use the new chat API system by Roblox as of yet, waiting for full in-depth documentation.
  2. There will be bugs, but I’ve fixed as many as I can find as of now.
  3. The filter does not work in studio, that’s a Roblox thing and not mine. I’m clarifying this because people keep thinking the filter doesn’t work due to that.
  4. There is not a GitHub because I don’t know how to format nested modules and nested folders into GitHub. PM me if you know how to do this! <3

Documentation

API docs

Previews

Screenshots:

Channel bar and team chat


Message context menu
  • Hold your messages on mobile or right click them on PC to open this menu that supports: message editing, add to quick reply, and reply in general
Message editing
Rich text

*Use rich text to add dramatic flair to your messages!

Replies
  • Want to clarify who you’re responding to? Go right ahead!
    reply
Need to get their attention even more? Mentioning!

Settings menu
Custom bubble chat
  • Feature-packed custom bubble chat


Don’t like it? Use the default one!

Autofill


Localization
Display names
  • Hover over a message to reveal the user’s username over their display name!
    player display name
    player real nam
Whispering

Mobile support


Anti-spam
Simplification
Chat tags
  • With images:
    image
  • With text:
    image

Rich text

Your messages can use rich text, but not in the sense of <b>text</b> more of **text**. This ensures that users don’t like set their text size to 100 or do things we don’t want them doing.

Formats:

  • Bold text **text**
  • Italics text *text* or _text_
  • Underlined text __text__
  • Italics & bold ***text***
  • Strikethrough text ~~text~~
  • Color text (brick color / text) or (r,g,b / text) or (#hexcode / text)

Localization

Localization is one of the key differences between this and my other custom chat systems. It’s mostly localized using Roblox’s default chat’s strings but for new features I’ll need to outsource that localization. As of now, the addon features are just in English but soon they’ll be available in all the languages the rest of the chat supports.

Supported languages:

  • English
  • French
  • Russian
  • Italian
  • Dutch
  • Spanish
  • Chinese (Simplified)
  • Chinse (Traditional)
  • Korean
  • Japanese

Official addons

Addons created by me

HD admin support

GhostChat

  • I made a custom addon like Murder Mystery 2 where dead users can talk to each other without alive users seeing it, but alive messages can be seen by everyone. To install it, you just add 2 teams named ‘Dead’ and ‘Alive’ and add this module to BetterChat > Addons > Server
  • Also don’t forget to disable ‘Team Chat’ in the better chat config

Credits

@Xsitsu - A few of the original chat functions such as user chat colors and chat cooldowns.
@qwreey74 - High quality material icons
@Blockzez - Hex color encode / decode functions
@boatbomber - Textbox+'s undo/redo system code concept
@boatbomber - Image masking for some user thumbnails
@ForeverHD - Topbar+
@Fm_Trick - Slider math help via public resource
@McThor2 - Math help for bubble chat
@sleitnick - Raycasting code for bubble chat
@alexinite - Contributing bug fixes and helping people in replies with their issues
@iamEvanRBLX - Topbar+ update

Donors

  • @tnavarts —> Sorry I just saw your donation! I’m astounded that a Roblox admin has donated to this system. This is literally incredible, you just made my month. Thank you.
  • @GamerOkami → Diamond Supporter (Thank you so much for supporting my work!)
  • @Alorist → Diamond Supporter (Another big thank you for your donation!)
  • @Astra_X2 —> Diamond Supporter (Thanks for pointing out bugs and supporting my work!)

Where do I get it?

How do I install it?

  1. Insert the loader module
  2. Go to TextChatService in the explorer, and set ‘ChatVersion’ to ‘LegacyChatService’
  3. Go to the model tab in studio, Advanced (on the far right), Service, and insert ‘Chat’.
  4. From here, all you need to do is turn off ‘LoadDefaultChat’ and ‘BubbleChatEnabled’

Sorry for the complexity! Roblox made it very difficult with recent updates.

Polls

Would you use this over the default chat? Why or why not?
  • Yes
  • No

0 voters

Rate the system!
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

0 voters

Support my work

I develop a lot of community resources for free with thousands of lines of code and hours of my time, and I don’t make anything back from them. If you wish to support my work, you can check out the donation game below. It always means a lot when people donate to me.

Test the chat:

336 Likes

I like it a lot! Keep up the good work! :slight_smile:

6 Likes

Wow! I couldn’t wait for V3 to come out! It’s finally here!

9 Likes

This is great! I especially like the new message actions like editing and quick replies.

For bubble chat settings, I’d say to perhaps add a user-toggled color setting (but allow this setting to be disabled due to some games using it to display rank, etc).

5 Likes

Can you elaborate on what that means in detail? I’m a bit confused.

2 Likes

I’ve been waiting for this for so long!! Thanks!

2 Likes

I have never seen a edit option in roblox! This is amazing!

5 Likes

Quick question, if I give a player 2 ranks (example: Contributor rank and Staff rank (Custom ranks)) then do they get both chat tags (example: [Staff] [Contributor] Player_Name: text) or just the one assigned to the higher rank?

3 Likes

Just the one assigned to the higher rank, but it would make more sense for it to give both of them. I’ll work on that fix later tonight with HD admin support since I forgot that :skull:

3 Likes

Hi, and thanks! And if the player has 2 ranks with custom text color/name color, is it possible to add some sort of gradient to the actual name/text with one of the ranks’ color in the first gradient color, and then the color of the other rank in the end of the gradient? Because if the player has both tags but only the text/name color of one of ranks, it’d look pretty weird

3 Likes

This is literally one of the best resources I’ve ever seen in this category… your literally insane dude! :exploding_head:

4 Likes

omg this is amazing, i can’t wait to use this in EVERY GAME I MAKE AAAAAAAAAAAAAA i love it

great job.

2 Likes

Good job, but I won’t use it until it will be tested well.
Project itself is look nice, is there API to handle/change chat?

2 Likes

@Jumpathy Yes! You finally released it!

proceeds to jump into Studio

4 Likes

Sure. What I mean is a color setting that users can change (locally) that changes the background color of a bubble chat bubble.

2 Likes

The API is mostly internal right now, I want to know what features people want for it before I create the whole thing. Any requests?

3 Likes

enjoy the robux i gave you (i gave 10 because thats all i had)

3 Likes

Yeah, I would like something like CreateChannel(channelName), SetChannel(speaker, channelName), LockInChannel(speaker, channelName, boolean) methods. This would be great feature for team chats

2 Likes

it looks great with the rest of my TopbarPlus items.

here is the game if you wanna see it, thank you again

3 Likes

This is insanely good! Keep it up.

4 Likes