Now this is really cool! I don’t do studio work myself but I can this will be easier for developers! This will definitely be useful for the different types on genres there are on Roblox!
You would just not manipulate the settings at all.
when you said “manipulate the settings”, are you saying like there wont be an option where i can add back the old bubble chat in roblox studio or am i not understand much from your reply
Cannot express how crucial this update was for us!
Our game struggled to make good use of this new feature due to the lack of adornee customization, and that addition alone has made this a viable tool to use.
The additional customization options are convenient to use and implement; exactly what I wanted from a reworked chat bubble system.
This is a 10/10 update. Kudos to the Roblox Staff who worked on this and made it possible!
Like manipulation of a majority of core Roblox ui, it takes a dictionary that can define specific settings. This is explained in the documentation that has been listed at the bottom of the post. You don’t need to call :SetBubbleChatSettings() at all if you just want it to be normal.
Good update; however it is still missing a much-asked-for feature, setting chat customization per channel or per message. For instance, setting the background color of a team chat bubble or a whisper bubble. Please implement this, thank you.
You’re already able to do so, by doing the following:
local Chat = game:GetService("Chat")
Chat:SetBubbleChatSettings({
CornerRadius = UDim.new(0, 12) -- Set it to whatever radius you want.
})
I’m really happy with this update! I wasn’t satisfied by the initial release of the new bubble chat, due to the lack of customization. Now, all of my problems with it have been solved! I’m looking forward to using the new features.
There is a setting for CornerRadius. It isn’t mentioned in the post, but it is in the Developer Hub page at the bottom of the post.
If you’re referring to the old bubble chat that was buggy and broken, I don’t think so. But, you can easily recreate the look of the old one with the new bubble chat settings (corner radius, background color, disabled animations)
You sure can, using the CornerRadius
setting! Here’s a client-side example snippet:
game:GetService("Chat"):SetBubbleChatSettings({CornerRadius = UDim.new(1, 0)})
No plan for this yet, but I’d be curious to hear what would be the use cases/user stories for this that wouldn’t be covered by the new UserSpecificSettings
system!
Since this update, you can now use custom images to use as the bubble’s background, so you can provide your own custom shapes now!
It would be useful for a per use case, or have it so it doesn’t replace each bubble instantly, but instead changes new bubbles could lead to some cool things.
I would like to be able to modify the background color of the bubble chat to the team’s color if the message is within team-chat, if not in team chat it would stay as the default color. This would help players identify if a message sent is in team chat or not.
Some examples I can think of:
- Changing the customization depending on where the NPC/User is located. (For example different levels/worlds/lighting settings.)
- Changing the customization depending on the mood of the NPC to convey them more easily, like a red message box showing the NPC is angry/disapproving vs a green one being more approving.
- Allowing you to do things like exclusive chat effects where the chat box changes shape or colour in a sort-of animation, for example rainbow chat.
I know you could change the settings before sending each message, but I can imagine that creates a lot of overhead especially with more animated systems, as you’d have to change the entire customization table for the entire client for each individual message. And, another problem with that is possible race conditions, especially with the new up-coming truly parallel luau.
A simply solution would be allowing us to pass along a customization table with the :Chat() function, the API of which would look like this:
void Chat(Instance partOrCharacter, string message, Dictionary appearance)
And used like this:
chatService:Chat(adornee, "Hello world!", {
TextColor3 = Color3.new(1, 0, 0),
TextSize = 24,
Padding = 12,
BubblesSpacing = 8
})
Or you could store the table somewhere and swap between presets based on certain variables being at play.
Great! How would you make team-specific settings with this update, or this still currently not possible?
This is a great and useful change and will definitely benefit us in one way or another!!
Much love to the hardworking DevRel team
You can now! Here’s an example (local) script that makes every player’s bubble have the same background color as their team’s color.
local Chat = game:GetService("Chat")
local Players = game:GetService("Players")
local bubbleChatSettings = {
UserSpecificSettings = {}
}
local function onPlayerAdded(player)
-- The lines below change the color of chat bubbles only for the player passed as an argument
bubbleChatSettings.UserSpecificSettings[player.UserId] = { BackgroundColor3 = player.TeamColor.Color }
Chat:SetBubbleChatSettings(bubbleChatSettings) -- Applies the new settings table
player:GetPropertyChangedSignal("TeamColor"):Connect(function() -- Also update when the player's team changes
bubbleChatSettings.UserSpecificSettings[player.UserId] = { BackgroundColor3 = player.TeamColor.Color }
Chat:SetBubbleChatSettings(bubbleChatSettings)
end)
end
local function onPlayerRemoving(player) -- When a player leaves, we need to clear their settings
bubbleChatSettings.UserSpecificSettings[player.UserId] = nil
Chat:SetBubbleChatSettings(bubbleChatSettings)
end
for _, player in ipairs(Players:GetChildren()) do -- Registers players who were in the game before we joined
onPlayerAdded(player)
end
Players.PlayerAdded:Connect(onPlayerAdded) -- Listens for incoming players
Players.PlayerRemoving:Connect(onPlayerRemoving) -- Listens for leaving players
Thank you all for your ideas on what a more granular “per-bubble” customization system could bring to the table. Can’t promise anything, but I’m definitely taking notes!
With the implementation of video frames, would it be possible to allow us to change the background to a video instead of a static image as well? If ever in the future we’re allowed to upload our own, I could imagine some cool effects being made with the use of video frames as the background. For example a chat box that has an animated bubbly background in an underwater setting.
This would be something for the future, if we’re ever even going to be able to upload videos ourselves, but still cool nonetheless.
Honestly great update though, the fact I’m spurting out ideas proves I’m excited about the change and possibilities, keep em coming.
Really great update! I plan on using this later when I start making the multiplayer mode.
Suggestion:
Can there be StrokeColor3(Color3) and StrokeSize(Number) properties for bubble chat?
im talking about this chat right here that i’m referring to
at first when i saw the topic, i thought the chat shown on the pictures were going to be the new bubble chat to replace the current bubble chat we have today until i looked more into the topic to find out that it was actually about customization features for the bubble chat like backgroundimage or backgroundgradient and stuff like that
I love the fact that you’re increasing the amount of customisation options for the new bubble chat, but it would be nice, if we could get a version of the chat that doesn’t hook into RobloxScriptSecurity functions so we can fork it.
Nope, its a LocalScript you can edit, so you can fix any part of it’s bugs. I also find it funny how the old bubblechat has slowly been breaking itself.