Fake Chat ui
Key RequiredUniversal

Fake Chat ui

Universal Scriptdsdwdsdw 2.2K views 4.3K executesUpdated May 6, 2026
3.8/ 5(4 votes)
3175% Positive
Lua Script•213 lines (7383 chars)
if game.CoreGui:FindFirstChild("FakeChatGUI") then
    game.CoreGui.FakeChatGUI:Destroy()
end

local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
local ChatService = game:GetService("Chat")

local gui = Instance.new("ScreenGui")
gui.Name = "FakeChatGUI"
gui.ResetOnSpawn = false
gui.Parent = game.CoreGui

local selectedPlayer = ""
local minimized = false
local fullSize = UDim2.new(0, 320, 0, 365)
local miniSize = UDim2.new(0, 320, 0, 45)

local frame = Instance.new("Frame")
frame.Size = fullSize
frame.Position = UDim2.new(0.3, 0, 0.3, 0)
frame.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
frame.BackgroundTransparency = 0.5
frame.BorderSizePixel = 0
frame.Active = true
frame.Draggable = true
frame.ClipsDescendants = true
frame.Parent = gui

Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 10)

local mainTitle = Instance.new("TextLabel")
mainTitle.Size = UDim2.new(1, -80, 0, 35)
mainTitle.Position = UDim2.new(0, 10, 0, 5)
mainTitle.BackgroundTransparency = 1
mainTitle.Text = "Fake Chat"
mainTitle.Font = Enum.Font.GothamBold
mainTitle.TextSize = 20
mainTitle.TextColor3 = Color3.fromRGB(255, 255, 255)
mainTitle.TextXAlignment = Enum.TextXAlignment.Left
mainTitle.Parent = frame

local miniBtn = Instance.new("TextButton")
miniBtn.Size = UDim2.new(0, 30, 0, 30)
miniBtn.Position = UDim2.new(1, -65, 0, 5)
miniBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
miniBtn.BackgroundTransparency = 0.5
miniBtn.Text = "-"
miniBtn.Font = Enum.Font.GothamBold
miniBtn.TextSize = 20
miniBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
Instance.new("UICorner", miniBtn)
miniBtn.Parent = frame

local closeBtn = Instance.new("TextButton")
closeBtn.Size = UDim2.new(0, 30, 0, 30)
closeBtn.Position = UDim2.new(1, -35, 0, 5)
closeBtn.BackgroundColor3 = Color3.fromRGB(150, 0, 0)
closeBtn.BackgroundTransparency = 0.3
closeBtn.Text = "X"
closeBtn.Font = Enum.Font.GothamBold
closeBtn.TextSize = 14
closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
Instance.new("UICorner", closeBtn)
closeBtn.Parent = frame

local contentFrame = Instance.new("Frame")
contentFrame.Size = UDim2.new(1, 0, 1, -40)
contentFrame.Position = UDim2.new(0, 0, 0, 40)
contentFrame.BackgroundTransparency = 1
contentFrame.Parent = frame

local statusLabel = Instance.new("TextLabel")
statusLabel.Size = UDim2.new(1, 0, 0, 20)
statusLabel.Position = UDim2.new(0, 0, 0, 5)
statusLabel.BackgroundTransparency = 1
statusLabel.Text = "Select a player below"
statusLabel.Font = Enum.Font.Gotham
statusLabel.TextSize = 12
statusLabel.TextColor3 = Color3.fromRGB(0, 170, 255)
statusLabel.Parent = contentFrame

local searchBar = Instance.new("TextBox")
local searchBar = Instance.new("TextBox")
searchBar.Size = UDim2.new(0.9, 0, 0, 25)
searchBar.Position = UDim2.new(0.05, 0, 0, 35)
searchBar.PlaceholderText = "Search players..."
searchBar.Text = ""
searchBar.Font = Enum.Font.Gotham
searchBar.TextSize = 12
searchBar.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
searchBar.TextColor3 = Color3.fromRGB(255, 255, 255)
Instance.new("UICorner", searchBar).CornerRadius = UDim.new(0, 4)
searchBar.Parent = contentFrame

local scrollingFrame = Instance.new("ScrollingFrame")
scrollingFrame.Size = UDim2.new(0.9, 0, 0, 100)
scrollingFrame.Position = UDim2.new(0.05, 0, 0, 70)
scrollingFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
scrollingFrame.BackgroundTransparency = 0.6
scrollingFrame.BorderSizePixel = 0
scrollingFrame.ScrollBarThickness = 4
scrollingFrame.Parent = contentFrame

local gridLayout = Instance.new("UIGridLayout", scrollingFrame)
gridLayout.CellSize = UDim2.new(0, 90, 0, 25)
gridLayout.CellPadding = UDim2.new(0, 5, 0, 5)

local function updatePlayerList()
    for _, child in pairs(scrollingFrame:GetChildren()) do
        if child:IsA("TextButton") then 
            child:Destroy() 
        end
    end
    for _, player in pairs(Players:GetPlayers()) do
        local pBtn = Instance.new("TextButton")
        pBtn.Name = player.Name
        pBtn.Size = UDim2.new(0, 90, 0, 25)
        pBtn.Text = player.Name
        pBtn.Font = Enum.Font.Gotham
        pBtn.TextSize = 11
        pBtn.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
        pBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
        Instance.new("UICorner", pBtn).CornerRadius = UDim.new(0, 4)
        pBtn.Parent = scrollingFrame
        
        pBtn.MouseButton1Click:Connect(function()
            selectedPlayer = player.Name
            statusLabel.Text = "Chatting as: " .. player.Name
            for _, btn in pairs(scrollingFrame:GetChildren()) do
                if btn:IsA("TextButton") then 
                    btn.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
                end
            end
            pBtn.BackgroundColor3 = Color3.fromRGB(0, 170, 255)
        end)
    end
end

searchBar:GetPropertyChangedSignal("Text"):Connect(function()
    local text = searchBar.Text:lower()
    for _, btn in pairs(scrollingFrame:GetChildren()) do
        if btn:IsA("TextButton") then
            btn.Visible = string.find(btn.Name:lower(), text) ~= nil
        end
    end
end)

updatePlayerList()
Players.PlayerAdded:Connect(updatePlayerList)
Players.PlayerRemoving:Connect(updatePlayerList)

local messageBox = Instance.new("TextBox")
messageBox.Size = UDim2.new(0.9, 0, 0, 30)
messageBox.Position = UDim2.new(0.05, 0, 0, 190)
messageBox.PlaceholderText = "Type message here..."
messageBox.Text = ""
messageBox.Font = Enum.Font.Gotham
messageBox.TextSize = 14
messageBox.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
messageBox.TextColor3 = Color3.fromRGB(255, 255, 255)
Instance.new("UICorner", messageBox).CornerRadius = UDim.new(0, 6)
messageBox.Parent = contentFrame

local sendBtn = Instance.new("TextButton")
sendBtn.Size = UDim2.new(0.9, 0, 0, 35)
sendBtn.Position = UDim2.new(0.05, 0, 0, 230)
sendBtn.Text = "Send Fake Chat"
sendBtn.Font = Enum.Font.GothamBold
sendBtn.TextSize = 14
sendBtn.BackgroundColor3 = Color3.fromRGB(0, 170, 255)
sendBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
Instance.new("UICorner", sendBtn).CornerRadius = UDim.new(0, 6)
sendBtn.Parent = contentFrame

local footer = Instance.new("TextLabel")
footer.Size = UDim2.new(1, 0, 0, 30)
footer.Position = UDim2.new(0, 0, 0, 265)
footer.BackgroundTransparency = 1
footer.Text = "Made by Miti"
footer.Font = Enum.Font.GothamBold
footer.TextSize = 14
footer.TextColor3 = Color3.fromRGB(255, 255, 255)
footer.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
footer.TextStrokeTransparency = 0.5
footer.Parent = contentFrame

miniBtn.MouseButton1Click:Connect(function()
    minimized = not minimized
    frame.Size = minimized and miniSize or fullSize
    contentFrame.Visible = not minimized
    footer.Visible = not minimized
    miniBtn.Text = minimized and "+" or "-"
end)

closeBtn.MouseButton1Click:Connect(function()
    gui:Destroy()
end)

UserInputService.InputBegan:Connect(function(input, gp)
    if not gp and input.KeyCode == Enum.KeyCode.RightShift then
        frame.Visible = not frame.Visible
    end
end)

sendBtn.MouseButton1Click:Connect(function()
    if selectedPlayer ~= "" and messageBox.Text ~= "" then
        local plr = Players:FindFirstChild(selectedPlayer)
        if plr and plr.Character and plr.Character:FindFirstChild("Head") then
            ChatService:Chat(plr.Character.Head, messageBox.Text, Enum.ChatColor.White)
        end
    end
end)

Features & Information

fake chat
#fakechat

Community Comments (2)

dsdwdsdwMay 8, 2026

@fvokjf thank you!

kallingallaila1982kallingallaila1982May 16, 2026

No one can see ts

More Scripts for Universal Scripts