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

I’ll do my best to see what I can do, thanks for the idea!

Update

  • Added Image tags for user tags, adding them is as easy as adding an ‘Image =’ property for any tags in the configuration.
{	
	Text = "Owner",
    Color = Color3.fromRGB(255,255,0),
	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.
	Image = "rbxassetid://13489662569"
},

And it will look like:


Thanks for the idea @ph33sh !

wow, that was fast, I’ll check it out now!

1 Like

from a quick test it looks like the ImageContainer has a 1px border that’ll show up as a black line on the left hand side (easy to fix on my end)

I did notice that if you have a mixture of image and text tags they can overlap eachother, so in it’s current form you may not want to mix image and text tags if displaying multiple tags.

1 Like

That’s my bad! It was an oversight. I rewrote part of the code and I do believe both problems have been fixed. Let me know if you experience any issues.


A separate observation - i was able to reproduce the following stack error w/ bubble chat enabled: If you have a text window open and the character is removed/destroyed, typing any new character in the chat or trying to press enter will cause a number of stack errors to happen. It seems like it is still trying to process bubble chat w/ no character.

I added an additional check that player.Character exists to these to events in billboard module and it seemed to resolve the issue.
image

1 Like

Thanks! Addressed that issue.

Update

In addition, I’ve also added an internals update. This likely won’t be that helpful to general users but now it is possible to control message recipients internally and I’ve created this module to do so:

Ghost Chat

Ghost Chat

  • I made a custom addon like Murder Mystery 2 where dead users can talk to each other without alive users seeing it, but alive messages can be seen by everyone. To install it, you just add 2 teams named ‘Dead’ and ‘Alive’ and add this module to BetterChat > Addons > Server
  • Also don’t forget to disable ‘Team Chat’ in the better chat config

To use it, refer to this:

Docs
return function(api)
	local success,channel = api.channel.new("CustomChannel",true,true) -- Name, auto-join, & handle messages automatically
	if success and channel then
		channel.events.messageRequested:Connect(function(speaker,message)
			--[[
				channel:sendMessageToSpecificUsers(
					speaker_list <table>
					speaker <table>
					message <string>
					historyLogic <function> (messageObject,messageSender,toUser)
					onCreated <function> (messageObject)
				)
			]]
			
			channel:sendMessageToSpecificUsers(
				{
					-- Add a list of speakers that you want to see the message when it's first sent
					-- You can get speakers in the channel by channel:getSpeakers()
				},
				speaker, -- Not changeable in this case
				message, -- Not changeable in this case
				function(messageObject,messageSender:Player,toUser:Player)
					-- This is called when the history is requested for a channel
					-- Return true if you want 'toUser' to see a message from 'messageSender'
				end,
				function(object)
					-- This function is called when the message is created if you need to add additiional metadata to refer to later
				end
			)
		end)
	end
end

Questions

  • If you have any questions or API expose requests, DM me and I’ll do my best to address those!


it looks like a player check wasn’t added on the receive message event so you may want to add that one as well, I only saw the first check included in your update - if you press enter for your chat after character got removed it will still give stack error otherwise

1 Like

This resource is still kicking, that’s cool! A lot of Roblox updates to ChatService and @Jumpathy, you still find time to grow this resource with it. Kudos for longevity. This resource is trustworthy to know it will be updated with changes made to Chat and won’t randomly break on you.

I am curious if this could support Roblox’s auto-translate it has in the default chat, but I think the functionality of that is still private and not exposed to developers (yet, hopefully)…

1 Like

For some a tester of my game reported that he only sees the custom chat open if the game is on fullscreen. otherwise, nothing can be seen.

Is there a way to adjust the distance between the icon and the name? For some reason mine appears very distant.
image

Honestly I would like to see the distance between the image to the text be adaptive depending on the constraints of the image itself, which Roblox will tell you about! It seems like this update to support images is made for rectangular icons, so this would be a welcome change to see down the line.

Could you ask for the dev console to be provided with this? I’ve never had this happen but that seems very interesting…

image
Would it be possible to reduce the exagerated amount of space between the icon roles and the name?

You came back! Heck yeah. Well done on this update;

Woah! That’s not supposed to happen, can you send me your settings module?

how does the poll system work?

nvm figured it using the source code, you need to go to settings and Polls then set it to true, then in the chatbox u say /poll

The channels system is really confusing

Has anyone made an addon for Adonis admin support?