Hi Developers,
We’re pleased to announce the addition of several new customization capabilities in TextChatService!
Per-Bubble Customization
With
TextChatService.onBubbleAdded
, you can now individually style and modify chat bubble behaviors based on specific conditions that override your general settings. For example, you can use chat bubbles to differentiate NPCs and users, highlight critical health status, and apply special effects to messages with pre-defined keywords.
New BubbleChatConfiguration Child Instances
We now support custom corners, gradients, and images for Bubble Chat! You can parent UICorner, ImageLabel, or UIGradient instances under BubbleChatConfiguration to have them applied to all bubbles, or under BubbleChatMessageProperties to have them applied on a per-bubble basis.
Note: For new places, these instances will already be added to BubbleChatConfiguration.
Additional Bubble Chat Properties
We now support additional requested customizations such as BubbleChatConfiguration.MaxBubbles
and BubbleChatConfiguration.TailVisible
.
Other Improvements to TextChatService
In addition to the above bubble chat customizations, we’ve also released the following highly requested capabilities for TextChatService:
ChatInputBarConfiguration.IsFocused
:
- Detect if the user has focused/unfocused the chat input bar, empowering use cases such as a custom typing indicator.
ChatInputBarConfiguration.HotKey
:
- Set an additional hotkey to focus chat
/clear command:
- A new default command for users to clear to chat window
Documentation
For more information on how to use these APIs, please see the documentation links below.
What’s next
Our next major focus will be on TextChannel UI support. Beyond that, we’re going to continue investing in TextChatService to make sure it addresses developer needs for chat.
Please note that we are not actively maintaining the legacy chat system anymore, so if you haven’t migrated to TextChatService yet, please follow these instructions, and let us know your feedback!
Special thanks to @daweezy99, @SubtleShuttle, @Clasifex, @Loonatheexodus, @be_nj, @Roblorcah for all their work!