Simple Bubble Chat - An alternative bubble chat [Open sourced]

Hey all! Once again, I was making a resource for one of my games and decided it could potentially be a viable community resource for developers. So, today I’ve grabbed the bubble chat I made for BetterChat and made it 100% compatible with the default chat system.


  • Typing indicator
  • 2-step installation process
  • More than 16 configurations for your own customization experience (colors, tweening, fonts, etc)
  • API system for developers similar to the one Roblox offers themselves
  • Open-sourced if you want to fork it!

Future features:

  • Support for voice chat indicators
  • Rich text (possibly)
  • More configurations


ignore edgy avatar k thx

yes this is an actual screenshot that represents the bubble chat

Where do I get it?
You can get the model here!
You can get the source code here!

Installation instructions:

  1. Add the loader model above
  2. Disable ‘BubbleChatEnabled’ in Chat to prevent the default bubble chat from overlapping
  3. Enjoy! That’s all you need to do in order to install the system.

Can I try it out first?
I created a showcase game that has it implemented into it for people who want to test it out and see how it looks!

Suspicious about backdoors?
You can fork the system yourself from the source code but you will no longer receive automatic updates that the default loader includes.

API? Where?
For scripters who want to implement bubble chat for NPCs (or whatever strange purposes you have) we have an API system for you!

In the loader model, there’s a “Plugins” folder and an example plugin, the code below shows an example of how you could make a brick say something. All plugins are run on the clients immediately upon the bubble chat loading.

return function(api)	
	local speaker = api.newSpeaker(workspace:WaitForChild("Part"))
	local gui = speaker:getUI() --> Billboard GUI for the chat bubble

*also supports metatables with the __call metamethod

local module = {};
    __call = function(t,api)
        -- do stuff with your api ig
return module;


API docs:


Name Arguments Returns
newSpeaker ‘Instance’ (parent, required) ‘String’ (gui name, optional) ‘speaker’ (table)
local speaker = API.newSpeaker(workspace.Brick) --> table

Speaker methods: (I know, there’s not a lot. But if you need more please let me know, I’ll be glad to try and add them!)

Name Arguments Returns
say ‘message’ (string, required) nil
getUI N/A billboardGUI (Instance)
local speaker = API.newSpeaker(workspace.Brick)
local gui = speaker:getUI()

Thank you for reading my trainwreck of a post! <3 (If you’re having trouble finding the model, it’s at the “Where do I get it?” section below the showcase screenshots)

If you have any feedback / constructive criticism please do not hesitate to PM me or leave it in the comments.


My other projects:
BetterChat Custom chat system I got this bubble chat from
Rbx.Lua Lua roblox API wrapper for discord bots etc


Would you use this in your games?
  • Yes
  • No
  • I’m just looking at random resources on DevForum man, not ready for this kind of commitment

0 voters


Just checked it out, bubble chat looks very good!

1 Like

If you notice any bugs please report them to me as soon as you can! Also, I’m open to new ideas for the bubble chat itself.

1 Like

This is a LIFE SAVER! I once tried to port the BetterChat bubble chat into the default chat system. I didn’t turn out too well.

1 Like