Five months and 10k+ lines of code later…
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.
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.
- This does not use the new chat API system by Roblox as of yet, waiting for full in-depth documentation.
- There will be bugs, but I’ve fixed as many as I can find as of now.
- 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.
- 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
→ API docs
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
- Want to clarify who you’re responding to? Go right ahead!
- This menu allows users to make small clientside modifications to their chat’s appearance for their own personal spin!
- Hover over a message to reveal the user’s username over their display name!
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.
- Bold text
- Italics text
- Underlined text
- Italics & bold
- Strikethrough text
- Color text
(brick color / text)or
(r,g,b / text)or
(#hexcode / text)
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.
- Chinese (Simplified)
- Chinse (Traditional)
Addons created by me
- Only shows commands you have access to and updates w custom commands
@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
- @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!)
- Insert the loader module
- Turn off ‘Chat.LoadDefaultChat’
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.
(unknown, dm me if you see any!)