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