Skip to main content

hide chat bubbles

removes the textchat bubble system.

overview

the hide chat bubbles feature disables roblox's textchat bubble system that shows chat messages above players' heads.

how it works

textchat system

roblox's modern chat uses textchatservice:

  • contains TextChatWindow instances
  • these control bubble display
  • disabling them hides bubbles

on enable

  1. finds textchatservice
  2. searches children for textchatwindow instances
  3. sets Enabled = false on each
local function setChatBubblesState(state)
for _, bubble in ipairs(TextChatService:GetChildren()) do
if bubble:IsA("TextChatWindow") then
bubble.Enabled = state
end
end
end

use cases

recording clean footage

prevent chat from appearing in videos.

screenshot sessions

eliminate unexpected chat bubbles.

cinematic shots

maintain immersion without chat interruptions.

limitations

legacy chat

some older games use the legacy chat system. this feature only affects textchat (the newer system).

for legacy chat, you need to hide:

  • game.Players.LocalPlayer.PlayerGui.Chat

doesn't prevent chat

players can still chat - you just won't see the bubbles. the chat window may still be visible unless hidden by the hide ui feature.

new windows

if the game creates new textchatwindows after enable, they won't be automatically hidden.

on disable

when disabled:

  • sets Enabled = true on all textchatwindow instances
  • chat bubbles return to normal

technical details

textchatservice structure

TextChatService
├── TextChatWindow (bubbles)
├── TextChannel (channels)
└── TextChatCommand (commands)

only textchatwindow affects bubble display.

why check type?

textchatservice can contain multiple types. type checking ensures we only affect bubble display, not other chat functionality.

source code

location: features/hideChatBubbles.lua

extremely simple module (~20 lines):

  • toggle function
  • enable/disable exports

customization

hiding legacy chat too

add to enable function:

local chat = localPlayer:FindFirstChild("PlayerGui"):FindFirstChild("Chat")
if chat then
chat.Enabled = false
end

hiding all chat ui

combine with hide ui feature, or specifically target:

  • chat window
  • chat button
  • emoji picker

troubleshooting

bubbles still showing

  • game might use legacy chat
  • check if textchatservice is enabled in game
  • some games have custom bubble systems

chat not working

  • this only hides bubbles, not chat functionality
  • if chat itself breaks, it's a game issue
  • toggle lcs off to restore