The default in-game bubble chat has seen very few updates over the years and we think it’s time to give it a facelift!
We’re bringing a completely reworked bubble chat, featuring:
- Brand new visuals, powered by Roact
- Animated transitions, to make it feel more alive
- Many customization option, including:
- Bubbles duration
- Max amount of bubbles above a single character
- Bubbles background color
- Distance at which the bubbles are minimized/hidden
- Many more, see the full list below
- More coming soon!
Enable the API!
Enable it through new property BubbleChatEnabled in the Chat service (game.Chat):
Or through a (client-side) script:
local chat = game:GetService("Chat")
chat.BubbleChatEnabled = true
Customize the Looks!
Customize various aspects using the new function SetBubbleChatSettings in the Chat service.
It takes a dictionary of settings as the only arguments. The supported settings and their default values are as follows (more are coming):
local settings = {
-- The amount of time, in seconds, to wait before a bubble fades out.
BubbleDuration = 15,
-- The amount of messages to be displayed, before old ones disappear
-- immediately when a new message comes in.
MaxBubbles = 3,
-- Styling for the bubbles. These settings will change various visual aspects.
BackgroundColor3 = Color3.fromRGB(250, 250, 250),
TextColor3 = Color3.fromRGB(57, 59, 61),
TextSize = 16,
Font = Enum.Font.GothamSemibold,
Transparency = .1,
CornerRadius = UDim.new(0, 12),
TailVisible = true,
Padding = 8, -- in pixels
MaxWidth = 300, --in pixels
-- Extra space between the head and the billboard (useful if you want to
-- leave some space for other character billboard UIs)
VerticalStudsOffset = 0,
-- Space in pixels between two bubbles
BubblesSpacing = 6,
-- The distance (from the camera) that bubbles turn into a single bubble
-- with ellipses (...) to indicate chatter.
MinimizeDistance = 40,
-- The max distance (from the camera) that bubbles are shown at
MaxDistance = 100,
}
pcall(function()
game:GetService("Chat"):SetBubbleChatSettings(settings)
end)
Omitting keys from that list will result in them having default values, as seen above. For example, running this:
local chat = game:GetService("Chat")
chat:SetBubbleChatSettings({
BubbleDuration = 20,
MaxBubbles = 5,
})
Will result in only the BubbleDuration and MaxBubble settings being changed, every other settings will have the default value.
But what about the old Bubble Chat?
It is still available! To preserve backwards compatibility there are no plans to remove it yet.
If you have both the new and old bubble chat enabled, the old one will automatically disable itself to prevent overlaps between the two.
Warning!
All mobile versions now support this feature, therefore it is not needed to use pcall anymore when using it.
Please note that this is an early release. We wanted to put this feature into your hands as soon as possible, but should you run into any issue please let us know in this thread. We’ll be closely monitoring it for your feedback.