Chat bubble by familybros11 Local script (Yourself)
Key RequiredUniversal

Chat bubble by familybros11 Local script (Yourself)

Universal Scriptbobiruwufsssbobiruwufsss 683 views 138 executesUpdated Apr 18, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•240 lines (7334 chars)
--[[
    FULL CHAT GUI SCRIPT - Delta Executor
    - Works on mobile
    - Drag enabled
    - ???
    - Can see yourself messages
--]]

local player = game.Players.LocalPlayer

-- Clear old GUI
local old = player.PlayerGui:FindFirstChild("FullChatGUI")
if old then old:Destroy() end

-- Create GUI
local gui = Instance.new("ScreenGui")
gui.Name = "FullChatGUI"
gui.Parent = player.PlayerGui
gui.ResetOnSpawn = false

-- Main Frame
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 380, 0, 450)
frame.Position = UDim2.new(0.5, -190, 0.5, -225)
frame.BackgroundColor3 = Color3.fromRGB(35, 35, 45)
frame.BackgroundTransparency = 0.1
frame.BorderSizePixel = 0
frame.Parent = gui

-- DRAG FUNCTIONALITY
local dragging = false
local dragStart
local frameStart

frame.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 then
        dragging = true
        dragStart = input.Position
        frameStart = frame.Position
    end
end)

frame.InputEnded:Connect(function(input)
    dragging = false
end)

game:GetService("UserInputService").InputChanged:Connect(function(input)
    if dragging and (input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseMovement) then
        local delta = input.Position - dragStart
        frame.Position = UDim2.new(frameStart.X.Scale, frameStart.X.Offset + delta.X, frameStart.Y.Scale, frameStart.Y.Offset + delta.Y)
    end
end)

-- Title Bar
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, 0, 0, 40)
title.BackgroundColor3 = Color3.fromRGB(55, 55, 70)
title.Text = "≡≡≡ BUBBLE CHAT ≡≡≡"
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.Font = Enum.Font.GothamBold
title.TextSize = 16
title.Parent = frame

-- Close Button
local close = Instance.new("TextButton")
close.Size = UDim2.new(0, 35, 0, 35)
close.Position = UDim2.new(1, -40, 0, 2)
close.BackgroundColor3 = Color3.fromRGB(200, 60, 60)
close.Text = "X"
close.TextColor3 = Color3.fromRGB(255, 255, 255)
close.Font = Enum.Font.GothamBold
close.TextSize = 16
close.Parent = title
close.MouseButton1Click:Connect(function() gui:Destroy() end)

-- Chat Display (ScrollingFrame)
local chatDisplay = Instance.new("ScrollingFrame")
chatDisplay.Size = UDim2.new(1, -10, 1, -110)
chatDisplay.Position = UDim2.new(0, 5, 0, 45)
chatDisplay.BackgroundColor3 = Color3.fromRGB(25, 25, 35)
chatDisplay.BackgroundTransparency = 0.2
chatDisplay.BorderSizePixel = 0
chatDisplay.CanvasSize = UDim2.new(0, 0, 0, 0)
chatDisplay.ScrollBarThickness = 6
chatDisplay.Parent = frame

local messageLayout = Instance.new("UIListLayout")
messageLayout.Parent = chatDisplay
messageLayout.Padding = UDim.new(0, 5)

-- Input Area
local inputArea = Instance.new("Frame")
inputArea.Size = UDim2.new(1, -10, 0, 55)
inputArea.Position = UDim2.new(0, 5, 1, -60)
inputArea.BackgroundTransparency = 1
inputArea.Parent = frame

-- Text Box
local textBox = Instance.new("TextBox")
textBox.Size = UDim2.new(0.7, -5, 1, 0)
textBox.Position = UDim2.new(0, 0, 0, 0)
textBox.BackgroundColor3 = Color3.fromRGB(60, 60, 75)
textBox.TextColor3 = Color3.fromRGB(255, 255, 255)
textBox.PlaceholderText = "Type your message..."
textBox.PlaceholderColor3 = Color3.fromRGB(150, 150, 170)
textBox.Font = Enum.Font.Gotham
textBox.TextSize = 14
textBox.ClearTextOnFocus = false
textBox.Parent = inputArea

-- Send Button
local sendButton = Instance.new("TextButton")
sendButton.Size = UDim2.new(0, 70, 1, 0)
sendButton.Position = UDim2.new(0.73, 0, 0, 0)
sendButton.BackgroundColor3 = Color3.fromRGB(0, 120, 215)
sendButton.Text = "SEND"
sendButton.TextColor3 = Color3.fromRGB(255, 255, 255)
sendButton.Font = Enum.Font.GothamBold
sendButton.TextSize = 15
sendButton.Parent = inputArea

local buttonCorner = Instance.new("UICorner")
buttonCorner.CornerRadius = UDim.new(0, 6)
buttonCorner.Parent = sendButton

-- Username colors
local userColors = {}
local colorList = {
    Color3.fromRGB(0, 120, 215),
    Color3.fromRGB(0, 160, 80),
    Color3.fromRGB(200, 80, 200),
    Color3.fromRGB(220, 120, 0),
    Color3.fromRGB(180, 60, 60),
    Color3.fromRGB(0, 180, 180),
}

local function getUserColor(name)
    if not userColors[name] then
        userColors[name] = colorList[math.random(#colorList)]
    end
    return userColors[name]
end

-- Add message to display
local function addMessage(sender, message)
    local msgFrame = Instance.new("Frame")
    msgFrame.Size = UDim2.new(1, 0, 0, 32)
    msgFrame.BackgroundTransparency = 1
    msgFrame.Parent = chatDisplay
    
    local nameLabel = Instance.new("TextLabel")
    nameLabel.Size = UDim2.new(0, 95, 1, 0)
    nameLabel.BackgroundTransparency = 1
    nameLabel.Text = sender .. ":"
    nameLabel.TextColor3 = getUserColor(sender)
    nameLabel.Font = Enum.Font.GothamBold
    nameLabel.TextSize = 13
    nameLabel.TextXAlignment = Enum.TextXAlignment.Left
    nameLabel.Parent = msgFrame
    
    local msgLabel = Instance.new("TextLabel")
    msgLabel.Size = UDim2.new(1, -105, 1, 0)
    msgLabel.Position = UDim2.new(0, 105, 0, 0)
    msgLabel.BackgroundTransparency = 1
    msgLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
    msgLabel.Font = Enum.Font.Gotham
    msgLabel.TextSize = 13
    msgLabel.TextXAlignment = Enum.TextXAlignment.Left
    msgLabel.Text = message
    msgLabel.TextWrapped = true
    msgLabel.Parent = msgFrame
    
    task.wait(0.05)
    chatDisplay.CanvasPosition = Vector2.new(0, chatDisplay.CanvasSize.Y.Offset)
end

-- Send to Roblox chat (everyone sees)
local function sendToRoblox(message)
    pcall(function()
        local remote = game:GetService("ReplicatedStorage"):FindFirstChild("DefaultChatSystemChatEvents")
        if remote and remote:FindFirstChild("SayMessageRequest") then
            remote.SayMessageRequest:FireServer(message, "All")
        end
    end)
end

-- Create bubble above player
local function createBubble(message)
    local character = player.Character
    if not character then
        character = player.CharacterAdded:Wait()
    end
    local head = character:FindFirstChild("Head")
    if not head then return end
    
    pcall(function()
        game:GetService("Chat"):Chat(head, message)
    end)
end

-- Send message
local function sendMessage()
    local message = textBox.Text
    if message == "" then return end
    
    addMessage(player.Name, message)
    sendToRoblox(message)
    createBubble(message)
    textBox.Text = ""
end

-- Listen for other players
local function listenForMessages()
    pcall(function()
        local remote = game:GetService("ReplicatedStorage"):FindFirstChild("DefaultChatSystemChatEvents")
        if remote and remote:FindFirstChild("OnMessageDone") then
            remote.OnMessageDone.OnClientEvent:Connect(function(data)
                if data.FromSpeaker and data.FromSpeaker ~= player.Name then
                    addMessage(data.FromSpeaker, data.Message)
                end
            end)
        end
    end)
end

-- Start listening
listenForMessages()

-- Button click
sendButton.MouseButton1Click:Connect(sendMessage)

-- Enter key
textBox.FocusLost:Connect(function(enter)
    if enter then sendMessage() end
end)

-- Welcome message
addMessage("System", "Chat ready! Drag the title bar to move.", false)

print("✅ Full Chat GUI loaded!")

Features & Information

Updated: released message bubble And random user colour and script has made bubble which is you can type any and send and it shows up default bubble. Owner by familybros11, Warning ⚠️ IT ONLY USED YOUR SELF MAY CHANCE CAN SEE FROM OTHERS PLAYER⚠️
#Chat#Chat Local script#Chat bubble

Community Comments (4)

Yogurt121234Yogurt121234Apr 19, 2026

can everyone see it?

Replying to @Yogurt121234
bobiruwufsssbobiruwufsssApr 19, 2026

@Yogurt121234 No only your self

Replying to @bobiruwufsss
Yogurt121234Yogurt121234Apr 20, 2026

@bobiruwufsss oh ok

Replying to @Yogurt121234
bobiruwufsssbobiruwufsssApr 19, 2026

@Yogurt121234 Just look my word "Yourself"

More Scripts for Universal Scripts