EchoChat - Custom Chat GUI

Hello everyone! Hope you’re interested in a chat GUI!
Originally inspired by Discord but also drifted off into looking more like Roblox, this is a fully custom-made chat GUI I’ve made slowly over a year and uploaded as a FreeModel and now would like to show it off.

The Setup

It’s just a simple as dragging the EchoChat script inside the model into ServerScriptService and then deleting the model.

The ChatGui is loaded from a script to allow EchoChat to be updated automatically but can also just use the main script without all the setup.

Inside the setup

Inside you can find the current Loader Version and the Configuration you want to load, including the version of EchoChat.

local Selected_Version = "Latest_Release"

The Selected_Version variable is used to load a specific version of EchoChat just chose between:

  • Latest_Release
  • Version_1
  • Version_2
    and et cetera as more versions are released.

The rest of the configuration is a table that gets parsed onto the chat, this includes the Moderators, Avatars (like seen above in the screenshot), Statuses (Icons next to names), Message character limits, and more.

Features

  • A large UI but with the option to enable Compact mode
    CompactMode
  • The option to force everyone to use Compact mode
  • Themes (With options to add more)
  • Chat Logs for the Owner or specific moderation level to view
  • A dedicated menu for Chat Logs, EchoChat Updates, Settings, and additional menus that can be added by third party users with Addons
Screenshot

EchoChat Menu

  • Accessibility settings (Text size, font, saturation, reduce transparency, with reduce motion planned)
  • Other settings (Chat Bubbles, Compact Mode, Bubble Length, Change Theme)
  • Tagging (@Username)
  • Whispers
  • HD Admin support
  • Built in commands
  • Player profiles (activated by clicking on a player’s message)
Screenshot

Player profile

Addons

Expand for addons explanation

Addons are a way for other players to add their own menu items easily.
By placing a ModuleScript in the Addons folder under the Loader or ScreenGui it will run as if its a Menu Item which expects a table with a Button and Frame variable

See template
local module = {}

local EchoChat = script:FindFirstAncestorWhichIsA("ScreenGui")
local EchoUI = require(EchoChat.Scripts.EchoUI)
local Button, Frame, Content = EchoUI.MenuSetup("Custom Addon", "rbxassetid://6986134856")

-- Place your UI elements into "Frame" (Regular frame) or "Content" (A scrolling frame with a UIListLayout that updates automatically)


module.Button = Button
module.Frame = Frame

return module

This will create an empty menu item.
“EchoUI” is a way to try and keep all the UI elements at least looking the same even if something changes in the future

There is also a LoadAddons RemoteEvent that will fire when a player joins and is ready to load addons located game.ReplicatedStorage.ChatEvents.LoadAddons encase a regular script wants to be used alongside the ModuleScript addon

Patches

Expand for patches explanation

Patches, like addons, are a way for more third-party customization, these, however, will directly affect the chat instead of the menus.
Any ModuleScript with the attribute name “PatchScript” and the value set as a path (with the ScreenGui as the root, e.g. “Scripts/MainChatScript”), that target path module script will be modified by the patch script.
The patch script has to return a table and any value inside that table will add/replace anything from the target scripts.

Anything (Including ModuleScripts) with the Attribute “PatchInstance” will replace that instance completely.

Screenshots

This patch basically just removes the rounded edges in the UI (and can be found here)

EchoChat Paths Screenshot 1

EchoChat Paths Screenshot 2

EchoChat Paths Screenshot 3

Remote and Bindable Events

Events

Located in ReplicatedStorage.ChatEvents

  • LoadAddons
    Like said above, this will fire when the player is ready to load addons and will send the Addons folder location
  • MutePlayer
    Used to mute and unmute another player and will send the target player to be muted (Player) and if the player is muted or not (boolean)
  • ServerAnnouncement
    Used to create server messages in the chat from server scripts.
    These only need a message to make a plain message but can take more arguments
    in order of (message, target, minimumPermission, messageType)
  1. message - self-explanatory
  2. target - a target player (or nil for everyone)
  3. minimumPermission - the minimum moderation level required to receive this message
  4. messageType - can be nil (regular), error, command, or warning

Planned updates

  • More channels
  • More moderation control
  • Actually be able to unmute people after their messages are gone…
  • Re-add SetCore functionality

You can get EchoChat here or you can test it in this place
EchoChat.rbxl (423.7 KB)


Watch out for someone named ortenaus trying to scam users to buy the “owner rights”
more details from this comment

235 Likes

Looks amazing! Prob won’t use it but I am just impressed with amount of dedication that you given to this chat, thank you for open sourcing it ;).

11 Likes

I love it and I love your custom playerlist I hope you expand both

6 Likes

Is this mobile compatible?

5 Likes

yes, though it might be large on some small phones

6 Likes

Wow! Amazing, this UI perfectly fits the Roblox system UI such amazing work! :yellow_heart:

2 Likes

omg this looks amazing! and i love the icons on the side.

3 Likes

Yes, yes! Just what I’ve been looking for! A custom chat, just what I’ve been looking for a long time! Great work!

Also can you explain why I didn’t thought of this lol
image

1 Like

Alright, I have seen quite a bit of UI’s, but this is definitely one of the top best

1 Like

Very well done!, Does this have support for phone users?

1 Like

Very awesome I need this in my game lol. The default chat feels so out-of-date.

2 Likes

Seems good, has an interesting UI as well.

This may require a rewrite of (some) areas, but I think it would be more intuitive for developers to provide an API to interface with the chat system - this could methods which allow channel creation/manipulation, player muting, etc. From what I can see, chat manipulation is already (somewhat) implemented in the form of addons and patches, though they seem to be rather limited in comparison to a centralised API module.

You could also move to a more object-oriented styled approach for the system (e.g. speaker & channel classes) to make the chat system easier to manage, though this is more of a ‘preference’ kind of thing since some people tend not to like using this paradigm.

2 Likes

There is something I must bring to your notice,
First off, a GREAT custom chat. Currently using it in numerous projects

I am using Version 1, but have disabled the chat bubble unfortunately as it doesn’t tag certain words which is done in the chatbox.
I loved the dark chat bubble feature but just can’t help it :confused:
Any solution to this?

I am using version 1 cuz of the great UI and server messages

1 Like

I added this to my game and it is so useful! Thank you so much for making this! :slight_smile:

1 Like

Thank you! I have used EchoChat in my earliest of games. The only reason I don’t now is because it lacks one feature I want the most: chat tags. Please add chat tags. Also, PLEASE add the /disguise command back! It was so much fun playing around with in iChat X.

EDIT: disable ClearOnFocus for the textbox to chat.

3 Likes

I heavily agree with you. I am currently using a different custom chat system (BetterChat) due to not much being to the API of EchoChat.

3 Likes

I Really enjoyed this! my friends loved when i used it in my game!

1 Like

Hey everyone, just wanted to inform you all to be aware of someone by the username of ortenaus. They are trying to sell this system as their own, version one of Echo Chat made by Celieleki. I fell for this scam and ended up wasting almost 15k for “ownership rights”. You can find their YouTube video here, trying to claim the system as their own. Their discord tag goes by Shiota#0001. Thanks for reading, and don’t fall for this like I mistakenly did.

7 Likes

I HATE those type of people. That is the reason why I am very paranoid when making assets. It is one of my worst nightmares to have someone claim my work as theirs and sell it.

4 Likes

Exactly, I am totally with you on this one. I’m annoyed I was scammed and don’t want it to happen to anyone else.

1 Like