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

getting this error when enabling settings menu

1 Like

Oops, so sorry. Just published the correct version. I had accidentally posted the unfinished version. Thank you for bringing this to my attention. I had been working on the chat in 2 separate studio tabs and I hadn’t brought them both up to speed.

1 Like

im still getting the same error, topbar wont pop up

image

Okay, so I had been posting the correct version, however the auto-update plugin when I was first developing it, had some issues with TopbarPlus when loading it in, and I had made a hotfix that overwrote the TopbarPlus source code, which has been causing these problems. I just went around the hotfix and published a new version that should load correctly. Thank you for bringing this to my attention.

1 Like

New update:

  • Added new API methods
  • Added filter fixes
  • Added new configurations (will need to insert latest loader to see them)

i set the bubblechat color to black but within a few seconds it changes to white
image

image

I am unable to reproduce this bug, what does your config look like? I made an update recently that sets the chat bubble color to the ‘BubbleBackgroundColor’ attribute of the Player, and for me this stays the default color (20,20,20).

Hey, nice module! I was planning on using it on my game, however, I have an issue where I want to do leaderboard chat tags, but the module (obviously) makes it not very easy to do that, is there any easy way to add support for this using server addons and such?

1 Like

Yes, there is. There’s 2 functions within speakers that aren’t documented. These are:

speaker:addTag(<text:string>,<color:Color3>)
speaker:removeTag(<text:string>)

An example of this would be a server addon with the following code:

return function(api)
	local players = game:GetService("Players")
	local speakerModule = api.speaker
	
	local getSpeaker = function(player)
		if not speakerModule:getById(player.UserId) then
			repeat
				task.wait()
			until speakerModule:getById(player.UserId)
		end
		return speakerModule:getById(player.UserId)
	end
	
	local onPlayer = function(player)
		local speaker = getSpeaker(player)
		
		-- to add tags:
		
		speaker:addTag("text",Color3.fromRGB(255,0,0))
		
		-- to remove tags:
		
		speaker:removeTag("text")
	end
	
	players.PlayerAdded:Connect(onPlayer)
	for _,player in pairs(players:GetPlayers()) do
		task.spawn(onPlayer,player)
	end
end

1.0.9

  • Added new options in the loader to configure transparency, fonts, and colors as requested by @varuniemcfruity (these also go to the settings menu now)
  • Added the ability for profile service to be disabled and handled with custom logic through the API
  • Random bug fixes
New loader options:
		FadeOptions = {
			Window = {
				HoveringTransparency = 0.75, --> Transparency of main window when hovering
				NotHoveringTransparency = 1 --> When not hovering
			},
			Chatbar = { --> Transparency of chatbar, resize button, channel button
				HoveringTransparency = 0,
				NotHoveringTransparency = 1,
				TextColor = { --> Chatbar text color when hovering
					Regular = {
						Hovering = Color3.fromRGB(100,100,100),
						NotHovering = Color3.fromRGB(255,255,255)
					},
					Placeholder = {
						Hovering = Color3.fromRGB(80,80,80),
						NotHovering = Color3.fromRGB(200,200,200)
					}
				}
			}
		},
		ColorOptions = {
			ChatbarColor = Color3.fromRGB(255,255,255),
			Buttons = {
				ResizeButton = { --> UI resize button
					BackgroundColor = Color3.fromRGB(52,52,52),
					IconColor = Color3.fromRGB(255,255,255)
				},
				ChannelButton = { --> Channel bar channel buttons: (also autofill too lol)
					BackgroundColor = Color3.fromRGB(0,0,0),
					TextColor = Color3.fromRGB(255,255,255)
				},
				AutofillButton = { --> Autofill buttons
					BackgroundColor = Color3.fromRGB(30,30,30),
					TextColor = Color3.fromRGB(255,255,255)
				},
				ReplyAndChannel = { --> On the chatbar, when whispering or replying this icon shows up
					BackgroundColor = Color3.fromRGB(253,80,111), --> 253,80,111
					TextAndIconColor = Color3.fromRGB(255,255,255)
				}
			},
			Window = {
				BackgroundColor = Color3.fromRGB(0,0,0),
			}
		},
2 Likes

Nice! But how do I update betterchat? I’m trying to use your plugin to overwrite it but I get this error

00:54:20.693  Overwriting source code...  -  Edit
00:54:20.784  [Failed to get] HttpError: SslConnectFail  -  Edit

image
I also get the same error when trying to install it using the plugin.

That’s odd, that’s a Roblox issue and can be caused by network settings.

Here’s what the plugin is updating it to:
src.rbxmx (942.1 KB)

When there’s an update, if this keeps occurring, you can always get the newest source code from my GitHub:

1 Like

Alright, downloading the .rbxl file from the github and importing betterchat from that file to my game seems to work. Thanks!

1 Like

1.10

  • Added new loader options
    → Message grouping
    → User and text on separate lines
  • Added help page on settings
    → Includes color picker
    → Includes formatting for rich text
  • Added message blacklist fixes
  • Added rich text to system messages (supposed to be done a long long time ago)

That’s what happens when I setup hd admin

I solved the problem, it was because I was using the old version.

Can you add the same transparancy adjustment to the bubblechat

Could you make something similar to TextChatService.OnIncomingMessage so we can manipulate incoming bubble chat texts? it’s an important feature in my game to manipulate messages and twist them so if you could; this would be nice

and also a general :displaybubble method for any head or player

Using addons, you could do something like:

local channel = api.channel:getByName("Main")
channel:registerMessageProcess("Quackify",function(obj,filtered)
    if not filtered then
        obj.message = "quack"
        obj.data.chatColor = Color3.fromRGB(255,0,0)
    end
end

This would turn any messages into quack, unless you’re referring to the bubble chat exclusively. I can likely add a :DisplayBubble method, I don’t see why not.

1 Like

Thank you for the quick reply, I appreciate it very much! Also, incredibly good module; thank youu!