Better Chat V2 [Deprecated]

Superceded by BetterChat V3 | Discontinued

Old post

Warning

I want to acknowledge this version will be soon outdated by the predecessor V3. I’m doing this because this version is not easy to maintain and it’s entire system is inefficient in my opinion. Check the current solution of this thread for any updates. V3 is an entire ground-up rewrite with significantly better user-experience in mind than what this project is. I’d recommend using that over this when it’s released in it’s entirety.

Introduction

Hey everyone! I’ve been working on a cool custom chat system for roughly the past month. I believe it’s stable enough for release as of now. This was branched off of my chat fork that I released. This one is feature-packed, easier to set up, and more functionality for developers. It’s also fully open-sourced if you want to see how it works. Although, I may not recommend learning from my code since it’s messy and this is my first ever custom chat system.

Features

Better Chat is feature-packed with a lot of features. I’m planning on introducing more features as the system grows in popularity.

  • Highly customizable configuration that allows you to configure a lot of aspects of the system.
  • Rich Text support with a basic markdown format that allows you to use bold, italics, bold italics, strikethroughs, underlines, and even a custom color tag format.
  • Support for Roblox’s new attribute system to allow developers to quickly modify specific users chat properties without the need of making a plugin or forking.
  • Support for Roblox’s privacy settings and terms. This means that the system will not work on Xbox, does not allow you to speak to people you have blocked, and will not function if your privacy settings have chat disabled.
  • A basic permissions system that allows you to quickly give specific groups of users specific chat colors and chat tags.
  • The ability to select messages in the chat and copy/paste parts of them.
  • A plugin system that allows you to modify the system’s internals without requiring to fork the source code. This allows you to send custom messages, create new channels, quickly make Discord webhooks, and more! I’ve created some plugins that’ll be included in this post for developers.
  • A custom Rich Text supported bubble chat system that has an API included using the plugin system for developers to give non-player-objects the ability to use chat bubbles.
  • An emoji dropdown menu that allows you to quickly send emojis in the chat to further express yourself.
  • DisplayName support, with an ability to hover over display names to reveal the actual username, and an option to make them italicized. If you don’t like display names, you can disable them in settings.
  • A player mentioning system that comes with an autofill dropdown menu when mentioning a user.
  • Support for most administrative systems such as HD Admin, Kohl’s Admin Infinite, and more. Some systems may require a custom plugin to work properly, but once done it’ll work smoothly.
  • An automatic scaling system that allows the UI to function and maintain the same look on all devices.
  • There are many more features coming in the future, and that I’ve probably forgotten to list.

Showcase

Here’s a showcase that features the UI, user mentions, and rich text.

If you don’t like the roundness of the UI, you can easily configure that in the settings!

Want to try it out first?

If you want to try it out first before putting it into your game, you can check out the official testing center! This game will feature updates before they’re pushed out to the general public.

BetterChat V1 [deprecated] - Roblox

Installation

If you think the system looks cool, it’s also super easy to set up in your games! Let’s get into how to install it in a few simple steps.

  1. Take the official loader model and add it to your game, preferably in ServerScriptService.
  2. Go to the explorer, click on the “Chat” service and disable “LoadDefaultChat.”
  3. You’re done! You can now configure the system with the settings module and add your plugins!

Rich Text Basics

  • Italics are easy to do, here’s an example: *italics* or _italics_
  • Bold text: **bold**
  • Italic Bold text: ***italic bold***
  • Underlines: __underlines__
  • Strikethrough: ~~strikethrough~~
  • Color text: (Really red / brick color support), (255,0,0 / RGB support), (#FF0000 / hex color support)

Documentation

If you want to begin creating your own plugins, check out our official documentation! This documentation will have information on the custom plugin API. If you have any requests for the API system, don’t hesitate to contact me.

Official Plugins

I’ve created some plugins using the API system and these are now public.

Plugin Name Description Plugin Type
HD Admin Wrapper By default, HD admin does not work with the chat system, but this plugin makes HD admin work with the chat system perfectly. Server
Friend Notifier This plugin is by default one of the plugins that’s here when you insert the loader. It will create a system message when your friends join the game! Client

Credits

@Repotted - UI inspiration + base ideas.
@RogChamp - ISO8601 method for the webhook system.
@PysephDEV - Custom wait function.
@Xsitsu - Name color system implemented into the default chat.
@TheGamer101 - The emote command in the chat system, also part of the default chat.
@IrakliDoesStuff - First tester + a large majority of the ideas.

Resources

Discord Server

Bug Reports + Support

If you experience any bugs or need support with the system, do not hesitate to contact me. You can contact me with the following:

  • Replying to this post
  • My discord (Toxic#2799)
  • PMing me on DevForum
  • Joining the Discord Server

Ideas

If you have any ideas about the system, join our Discord server. I’m down for listening to community input on new ideas!

Polls

[poll type=regular results=always public=true chartType=bar]
  • Yes
  • No
[/s [poll ][poll name=abc type=regular results=always public=true chartType=bar]
  • Yes
  • No
[/ [poll ][poll name=poll4 type=regular results=always public=true chartType=bar]
  • Yes
  • No
[/ [poll ]
282 Likes

This really looks cool! I will definitely check it out. It’s really nice to see people open-sourcing custom chat modules since well, the default roblox chat is sometimes hard to modify, specially for beginners.

14 Likes

I agree! That’s actually why I ended up making this system. The default system is too hard to fork and add new features to.

7 Likes

As an Alpha Tester of the chat system I highly vouch for the open sourcing of the project and I encourage people to look more in-depth into the source-code as the system may have multitude of bugs that even me and the rest of us aren’t even aware of. Give the person some love and appreciation for their hard work as this is the second of it’s kind to be open-sourced like this.

With a customizable config and due to the fact that it’s feature-packed with inspirations coming from different sources, I think it will not be too difficult on adjusting the chat system to your own needs. You still have a lot to do, but I am glad to be a part of this phenomenal project!

6 Likes

i really like this, and im a huge fan of that discord type feeling that it gives us, its like smaller version of discord

2 Likes

This chat module is amazing, a much nicer chatting experience than the default one roblox provides. Can you please change the documentation page to a dark theme though, the white is burning my retinas.

3 Likes

The documentation host won’t allow me to change the theme. Which is actually quite annoying, I’ll probably find a solution later.

2 Likes

As someone that rarely uses modules created by other people, I really found this really useful and handy for future projects. I really appreciate this open-sourced module, and I’m excited to see how I can customize this to make it more personalized :slight_smile:

One thing I wanted to ask: Is there any easy way to change the size of the chatbox without digging through root code? After looking through the settings module, I found that there is no way to customize the sizes of the chatbox.
I found the chatbox to be quite skinny, so I tweaked some code in the UI Initializer module but it still defaulted to the 0.26 X Scale which I presume happens because of the scale module?

4 Likes

Yes, the scale module controls the sizing of most of the UI. The code behind it is horrible though due to my non-experience with scaling. You should be able to increase it by changing the “offsetAmount” variable.

3 Likes

Fantastic. This is what roblox chat should be. Thanks! I will 100% be using this!

6 Likes

Great resource! I really dig the Discord feel to the entire thing. Just see what you can do about chat window customizations eventually, I’d like to be able to change the chat’s transparency. I give this resource an 8.7/10!

5 Likes

Very impressive! Will be checking this out in the near future.

5 Likes

Wow. I really like this user interface on this UI and it has fantastic features from the look of it.

3 Likes

I possibly will use this in my games, though I’d have to change it quite a bit to fit nicely.

3 Likes

I would use this over normal chat, though I think EchoChat is better because your GUI is too small . EchoChat also images and has more features (too many).
Some features I would like to see:
Custom Chat Font (in like a settings menu)
Custom Chat Size (in like a settings menu)
Custom GUI Size (I think there is roblox option for this)
Player’s Avatar Headshot in chat

1 Like

Glad to see you finally posted about this!
It’s like discord, but in your Roblox game. Very cool.

3 Likes

Patch 1.0.1

This update is just some minor bug fixes and enhancements, no major new features.

  • Increased UI size
  • Fixed Typing Indicators showing up far away (hopefully)
1 Like

Could you upload the source to GitHub so others could contribute?

3 Likes

The only reason I won’t be using this is because my chat moderation script that I spent like five hours making won’t wok in it. Great UI though! I hope to be seeing this in games soon!

1 Like

How does your moderation work? I can potentially make a plugin that’ll support it!

1 Like