
Key RequiredUniversal

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)



@fvokjf thank you!
No one can see ts