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

Would you like this in something like a module in a themes folder of the loader?

2 Likes

Update

  • Added polls, in alpha so check the main module source to see how to enable them
  • Fixed duplicate teams bug
  • Added new function to speakers that allows you to add and remove tags
  • Fixed permission gamepass bug
  • API now allows you to use all programming cases instead of the default ones
  • Formatted better for GitHub
  • Bug fixes
3 Likes

Thanks for helping me make updates to the system! If anyone has more requests / bugs I missed please let me know.

1 Like

Amazing resource! Iā€™m going to use this in my games. I also donated :grin:

1 Like


Here you go. Only 11 days lateā€¦

Also I got pretty bored so I started making a fully modular version of this in TypeScript with autocomplete for the API. Mainly just doing this for fun so who knows if anything will actually come from it.
image

1 Like

Hey! I was just reading the updates and had a neat suggestion! Iā€™m not sure if it is possible to do this, but it would be cool if the chat system found a asset id using some format, then it searched to get a nice looking menu for it.

For example if it was a 2x speed game pass you would say something like ā€œ!asset[AssetId]ā€ and then it would make a menu when you chat that gives your the title, icon, and purchase button.

Not sure if this is very confusing or not but I thought it would be pretty cool to have!

1 Like

that bug with ghost messages and very slow filter has not been fixed and just after i updated the chat itā€™s the same (second screenshot)
image
image

this function actually makes the ghost message
image

Yes, itā€™s before the filter processes the text and replaces it with underscores (otherwise thereā€™d be a delay to sending your messages that lasts however long it takes to filter and lowers UX). Iā€™m not sure why your game specifically never processes the filtered text. Can you send me the game and any errors?

It needs to be on the client addons, which is honestly confusing. Iā€™ll make one that replicates to the clients for the sever API when I have time.

And, did you create functions to add tags or just start adding them after I updated this and added tags?

Iā€™ve removed .onCreated function and added attempts thing for filter and it started doing something, but if you want the game: Bee Swarm Hangout 2 - Roblox

Hm, calling it ā€œsystem messageā€ doesnā€™t really make sense on the client. When you think ā€˜systemā€™ you think of the server.

I cannot actually find the updated GitHub repository, the one Kampf made is unmaintained and you donā€™t have a repo under your username on GitHub.

1 Like

Hello, Iā€™m having an issue with the chat tag system. Iā€™m not entirely sure that this is mentioned yet, but if it is Iā€™m sorry for repeating this!

I have it set up so that each rank in my group gets a tag, but since chat tag stacking is a thing, Iā€™ve left the MaxAmountTags in the config set to 1. The only issue is that anyone in the Developer tag is getting the Supporting Developer tag instead, and if I remove the Supporting Developer tag, they get the Moderator tag.

This is only for the Developer rank, and all existing IDs and rank structures work. On the other hand, is there a method to set chat tags manually (such as the default method, which uses a function) rather than by the ranking structure? If so, that would make setting this a lot easier. Thanks!

(Attached is Scorch, a Developer rank, having the Supporting Developer tag.)
image

Iā€™ve also left the relevant config sections below:

Ranks = { 
			--[[
				Ranks are like permissions for the chat, we can assign things 
				like editing message access to them if you don't want regular users
				to have those. They're not admin-commands, I've just named them in this
				manner to understand more effectively.
			--]]

			[1] = "Guest", --> Rank ID 1 will automatically be assigned to each user (the config below can determine their final permission level)
			[2] = "AstralPlus",
			[3] = "Tester",
			[4] = "Moderator",
			[5] = "Supporting Developer",
			[6] = "Developer",
			[7] = "Executive",
			[8] = "Founder" --> Highest rank automatically assigned to the group creator or game creator
		},
		Users = {
			
		},
		Groups = {
			[6809773] = { --> Astral HRs get these roles automatically
				[255] = "Founder",
				[254] = "Executive",
				[253] = "Developer",
				[252] = "Supporting Developer",
				[251] = "Moderator",
				[250] = "Tester",
			}
		},
		Gamepasses = {
			[29201460] = "AstralPlus", --> For A+ Chat tag
			[12156329] = "AstralPlus", --> ERH 1.0 Astral+
		},
		RobloxPremium = "Guest" --> No premium chat benefits
	},
	ChatTags = {
		MaxAmountTags = 1, --> Maximum amount of tags one user can have (Set to 1 so only 1 tag is present per user)
		Users = {
			
		},
		Ranks = {
			[8] = {
				{	
					Text = "Founder",
					Color = Color3.fromRGB(255, 0, 255),
					Priority = 9 --> If you have a max amount of tags and one user goes over it, the tags with the lowest priority will be removed first.
				}
			},
			[7] = {
				{	
					Text = "Executive",
					Color = Color3.fromRGB(255, 90, 242),
					Priority = 8 --> If you have a max amount of tags and one user goes over it, the tags with the lowest priority will be removed first.
				}
			},
			[6] = {
				{	
					Text = "Developer",
					Color = Color3.fromRGB(17, 216, 255),
					Priority = 7 --> If you have a max amount of tags and one user goes over it, the tags with the lowest priority will be removed first.
				}
			},
			[5] = {
				{	
					Text = "Supporting Developer",
					Color = Color3.fromRGB(151, 255, 249),
					Priority = 6 --> If you have a max amount of tags and one user goes over it, the tags with the lowest priority will be removed first.
				}
			},
			[4] = {
				{	
					Text = "Moderator",
					Color = Color3.fromRGB(182, 119, 255),
					Priority = 5 --> If you have a max amount of tags and one user goes over it, the tags with the lowest priority will be removed first.
				}
			},
			[3] = {
				{	
					Text = "Tester",
					Color = Color3.fromRGB(105, 107, 255),
					Priority = 4 --> If you have a max amount of tags and one user goes over it, the tags with the lowest priority will be removed first.
				}
			},
			[2] = {
				{	
					Text = "Astral+",
					Color = Color3.fromRGB(255, 221, 117),
					Priority = 3 --> If you have a max amount of tags and one user goes over it, the tags with the lowest priority will be removed first.
				}
			},
		}
	},

In addition to this, I have discovered a bug where whispering to someone and sending the message makes it say that itā€™s to you and not the other person.

image

Investigating your other post right now and would like to know on behalf of the whisper bug: Is this a consistent issue or a one-off kind of issue?

Edit: Can you remove the tag limit and see the order of it and send me a screenshot of that?

Iā€™ve also just added an API to speakers that lets you individually add tags to players. I do not remember the way to call it right now but it should be in the code (MainModule ā€”> core ā€”> constructors ā€”> speaker) iirc.

Could the tag issue be an issue with the priorities of the tags?

Honestly this seems like a ranking issue in your group itself, there should be no reason they even get the Supporting Developer tag. Better Chat V3 doesnā€™t use a >= for rank checking and instead only =. What does your group ranking hierarchy look like?

1 Like

I donā€™t see a problem here honestly, intrigued if they updated it and havenā€™t replied or if the system is somehow breaking internally.

1 Like

Hello, hereā€™s an update for now.

Is the whisper bug a one off thing or a consistent issue?

It appears to be consistent, the naming thing happens every time.

Can you remove the tag limit and see the order of it and send me a screenshot of that?

Image showing that Scorch has every tag that is below Supporting Developer, and supporting dev. He doesn't have the intended Developer tag.
Something strange happened, he doesnā€™t have the developer rank! This is pretty odd considering that he is ranked to Developer on the group, as seen here:
An image showing that Scorch is in fact a developer in the group.

Iā€™ve also just added an API to speakers that lets you individually add tags to players. I do not remember the way to call it right now but it should be in the code (MainModule ā€”> core ā€”> constructors ā€”> speaker) iirc.

Iā€™ll take a look at this, if we canā€™t solve the tag issue weā€™ll migrate tags to that API.

In summary, this appears to be an internal issue with the ranking. Somehow, the developers arenā€™t getting their rank. Also, I (the founder) can get the Developer tag, which proves that the rank itself isnā€™t bugged.

An image showing that AstraX2, the founder, has all ranks, including the Developer rank.

1 Like

Bug replicated!
image

Iā€™ll update this message when I figure out whatā€™s happening.

EDIT 1:

Potential fix found, trying to find the error in the actual code
image

EDUT 2:

A full fix has been found! Read next post.