Better Chat V3 | Custom chat with replies, rich text, message editing, and more!

But still, it has some code which will detect if there is HD Admin or any other popular admin in my game, and if my game has, it will unlock the feature. Which official Roblox chat doesn’t have. And I personally don’t like any resource making some features for “third-party” models. I would like it more if he only updated the Roblox chat with his coding skills. HD Admin does have some features which automatically shows the admin command when I type something! So I would like this chat system more if it had pure code which only had scripts about the formatting, reply, mention features. But yeah, every feature this chat system has is a lot better than the official Roblox chat. Which will unlock many doors for players. Like if I said “Hi” and it gets tagged, they can edit the message and change it to “Hello”. And they won’t need to send another message like “*Hello, it got tagged”. And when many players are chatting very fast in a big server they can mention or reply to people and players can understand who messaged them.

Does it have detection code? I didn’t know. I knew you could get an add on that would detect HD Admin. Nor did I know it detected multiple popular systems. How do you know that it does? Like do you mean how you can still run commands thru the chat? Because that’s due to it hooking to the regular chat hooks.

Small update. I found a bug where sometimes your message will send as just a bunch of lines, as if its loading, but it’ll still send the message you sent normally. so like a double message that’s just a bunch of underlines. is it possible to look into this? and is anyone else having this issue?

image

1 Like

Disclaimer

I’m currently having personal problems in reality that are pulling me away from being able to work on developing this chat system. Development will be put on hiatus until I can return. I don’t know how long this will be, and I hope it doesn’t last long because I love this chat. I’m sorry about this.

Replies

Thank you so much for this! It makes me happy that people enjoy this system so much.

I believe you can do this through the settings module for the chat, but I want to create a function for creating tags individually for developers.

This is entirely up to you, it’d be nice to have it so people can see this resource exists, but not necessary.

I think that’s due to when the filter errors out, if it is there should be a filtering error in the developer console. I should probably add like a failed filter message to it for clarity as opposed to just leaving it as lines indefinitely. It’s difficult to add new phrases to the chat though, per localization because it has like eleven languages and translator apps aren’t the most effective, nor do I know where to find translators that don’t use Discord.

Thoughts

  • When I get back, would anyone be interested in a feature like that lets you rebind the events created by the chat to make plugins easier in the system if you don’t want to fork the whole system to add like one new function or something?
6 Likes

For some reason, whenever I type a message, nothing shows up in the chat bubble or in the chat logs. I’ve had this same issue both in my own game and in the test place.

Is there a reason for this?

3 Likes

Great chat system, although I was wondering if theres any plans to add a theme system in the future. As I have currently tried to edit the ui somewhat heavily, as an attempt to make the ui better fit in with my games ui. Other than that its pretty great in my opinion.

1 Like

I have added a new feature to it
Module: https://www.roblox.com/library/9893385969/Better-Chat-V3-1-Source

5 Likes

heya! i was using the system, and set up tags for all my group ranks (admin, mod, developer, VIP) which means i had to add ranks, now i have every single rank tag thats on the list! how do i fix this?

Groups = {
			[13112234] = { --> community group
				[2] = "VIP",
				[3] = "Mod",
				[4] = "Admin",
				[5] = "Developer",
				[6] = "Owner"
			}
		},
[1] = "Guest", --> Rank ID 1 will automatically be assigned to each user (the config below can determine their final permission level)
			[2] = "VIP",
			[3] = "Mod",
			[4] = "Admin",
			[5] = "Developer",
			[6] = "Owner" --> Automatically assigned to the group creator or game creator

after some further investigation, i learned that it stacks your tags, might i suggest you add a toggle in the config script so i can set it to highest rank?

to anybody as dumb as me while trying to do this: set your max tags to one and then priority it :skull:

1 Like

How can you make it so when you die, it chats out a random death message?

Something like this:

--Messages
local DeathMessages = {"Died. ","saw cringe.","said /e free.","watched the reactor explode.","went to the wrong game.",",really, can you live a little longer?",}  --you can add more if you like :D

--Actual script
game.Players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function()
		if script:FindFirstChild("SendDeathMessage") and script:FindFirstChild("DeathMessage") then
			script:FindFirstChild("SendDeathMessage").Parent = game.ReplicatedStorage
			script:FindFirstChild("DeathMessage").Parent = game.StarterGui
			if player.Character:FindFirstChild("Humanoid") then
				local hum = player.Character:FindFirstChild("Humanoid")
				hum.Died:Connect(function()
					local DeathMessage = DeathMessages[math.random(1,#DeathMessages)]
					local Users = game.Players:GetChildren()
					for i, User in pairs(Users) do
						if game.ReplicatedStorage:FindFirstChild("SendDeathMessage") then
							game.ReplicatedStorage.SendDeathMessage:InvokeClient(User, player.Name .. " " .. DeathMessage)
						end
					end
				end)
			end
		elseif game.ReplicatedStorage:FindFirstChild("SendDeathMessage") and game.StarterGui:FindFirstChild("DeathMessage") then
			if player.Character:FindFirstChild("Humanoid") then
				local hum = player.Character:FindFirstChild("Humanoid")
				hum.Died:Connect(function()
					local DeathMessage = DeathMessages[math.random(1,#DeathMessages)]
					local Users = game.Players:GetChildren()
					for i, User in pairs(Users) do
						if game.ReplicatedStorage:FindFirstChild("SendDeathMessage") then
							game.ReplicatedStorage.SendDeathMessage:InvokeClient(User, player.Name .. " " .. DeathMessage)
						end
					end
				end)
			end	
		end
	end)
end)

After a bit of fiddling I figured this out for you.

In the BetterChatV3 Folder, navigate to Addons > Server and create a ModuleScript. Here is the code for the death messages:

local Players = game:GetService("Players")
local DeathMessages = {"Died. ","saw cringe.","said /e free.","watched the reactor explode.","went to the wrong game.",", really, can you live a little longer?",}  --you can add more if you like :D

return function(api)
    local success, speaker = api.speaker.new("System") -- :systemMessage doesnt work for some reason
    if success then
        speaker.isPlayer = false
        local function playerAdded(player)
            player.CharacterAdded:Connect(function(character)
                local humanoid = character:FindFirstChild("Humanoid")
                if humanoid then
                    humanoid.Died:Connect(function()
                        local deathMessage = DeathMessages[math.random(1, #DeathMessages)]
                        speaker:say("Main", player.Name .. " " .. deathMessage)
                    end)
                end
            end)
        end
        Players.PlayerAdded:Connect(playerAdded)
        for _, player in Players:GetPlayers() do
            playerAdded(player)
        end
    end
end

P.S. You’re using RemoteFunctions incorrectly. RemoteFunctions are only useful if data will be sent back through a return. RemoteEvent is when you pass data and don’t expect anything in return.

2 Likes

One last thing, how do you get rid of the system chat tag when this is triggered?

Nvm I figured it out

Thank you for being awesome with helping people while I’m gone! From your replies, you seem to know the system really well. On top of this, when I return would you be interested in joining me as a developer for the chat system or when just for addons?

2 Likes

Can you send me a repro to check out when I have time?

What kind of themes do you mean? Like colors or entire overhaul?

It shouldn’t be that difficult, I just don’t know how to make it work better than that.

1 Like

Status update:

My laptop’s hard drive just failed and the laptop will no longer start up right now. This will even further delay updates unfortunately. No clue when (or if) we’ll be able to get a replacement hard drive for it.

Apologies, Jumpathy.

6 Likes

Can you add VR support possibly? I can’t chat in VR nor see the chat in VR.

Oh? I’ve never been able to test in VR. Is there a way you can get screenshots / help me debug later?

1 Like

This is like a chat I found on one of these hand VR games

And this is a game with better chat in VR

I have noticed that there is no button to chat with better chat on VR as well as there not being chat bubbles for the exception of when someone is typing.

And this is a basic VR controller layout.

This may help out greatly for games with VR support and have better chat installed.

1 Like

Can’t believe I just found this. I have added it into the public version of v4.0 when that releases in my game tomorrow.

Also, will this be ported to the new Roblox chat as well? I will be using this rather than the new Roblox chat.

1 Like