Chat gui script Open source
Key RequiredUniversal

Chat gui script Open source

Universal ScriptSignalboy4232Signalboy4232 700 views 108 executesUpdated Feb 1, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•231 lines (8114 chars)
-- FULL CHAT EXPLOIT v3 - Global = Real Chat | Server = Private Local Only (Bubble + Log)
local Players = game:GetService("Players")
local TextChatService = game:GetService("TextChatService")
local StarterGui = game:GetService("StarterGui")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")

local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")

-- Force bubbles on (local only)
pcall(function()
    TextChatService.BubbleChatConfiguration.Enabled = true
end)

-- MASTER SCREEN GUI
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "ExploitChatMaster"
ScreenGui.ResetOnSpawn = false
ScreenGui.DisplayOrder = 999
ScreenGui.Parent = PlayerGui

-- BIG VISIBLE TOGGLE BUTTON (top-center, draggable)
local ToggleButton = Instance.new("TextButton")
ToggleButton.Parent = ScreenGui
ToggleButton.Name = "ChatToggle"
ToggleButton.BackgroundColor3 = Color3.fromRGB(0, 120, 255)
ToggleButton.Position = UDim2.new(0.5, -100, 0, 20)
ToggleButton.Size = UDim2.new(0, 200, 0, 60)
ToggleButton.Text = "🗨️ OPEN CHAT EXPLOIT"
ToggleButton.TextColor3 = Color3.new(1,1,1)
ToggleButton.TextSize = 22
ToggleButton.Font = Enum.Font.GothamBold
ToggleButton.BorderSizePixel = 0

local ToggleCorner = Instance.new("UICorner")
ToggleCorner.CornerRadius = UDim.new(0, 12)
ToggleCorner.Parent = ToggleButton

-- Draggable toggle (same as before)
local dragging, dragInput, dragStart, startPos
local function updateInput(input)
    local delta = input.Position - dragStart
    ToggleButton.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end

ToggleButton.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        dragging = true
        dragStart = input.Position
        startPos = ToggleButton.Position
        input.Changed:Connect(function()
            if input.UserInputState == Enum.UserInputState.End then dragging = false end
        end)
    end
end)

ToggleButton.InputChanged:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
        dragInput = input
    end
end)

UserInputService.InputChanged:Connect(function(input)
    if input == dragInput and dragging then updateInput(input) end
end)

-- MAIN PANEL
local MainFrame = Instance.new("Frame")
MainFrame.Parent = ScreenGui
MainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 35)
MainFrame.Position = UDim2.new(0.5, -130, 0.3, 0)
MainFrame.Size = UDim2.new(0, 260, 0, 220)
MainFrame.Visible = false
MainFrame.BorderSizePixel = 0

local MainCorner = Instance.new("UICorner")
MainCorner.CornerRadius = UDim.new(0, 16)
MainCorner.Parent = MainFrame

local MainStroke = Instance.new("UIStroke")
MainStroke.Color = Color3.fromRGB(0, 150, 255)
MainStroke.Thickness = 2
MainStroke.Parent = MainFrame

-- Buttons
local GlobalButton = Instance.new("TextButton")
GlobalButton.Parent = MainFrame
GlobalButton.BackgroundColor3 = Color3.fromRGB(60, 100, 200)
GlobalButton.Position = UDim2.new(0, 10, 0, 10)
GlobalButton.Size = UDim2.new(0.48, 0, 0, 45)
GlobalButton.Text = "🌐 Open Global Chat"
GlobalButton.TextColor3 = Color3.new(1,1,1)
GlobalButton.TextSize = 16
GlobalButton.Font = Enum.Font.GothamBold
GlobalButton.BorderSizePixel = 0

local GlobalCorner = Instance.new("UICorner")
GlobalCorner.CornerRadius = UDim.new(0, 10)
GlobalCorner.Parent = GlobalButton

local ServerButton = Instance.new("TextButton")
ServerButton.Parent = MainFrame
ServerButton.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
ServerButton.Position = UDim2.new(0.52, 0, 0, 10)
ServerButton.Size = UDim2.new(0.48, 0, 0, 45)
ServerButton.Text = "🔒 Server Chat (Private)"
ServerButton.TextColor3 = Color3.new(1,1,1)
ServerButton.TextSize = 14
ServerButton.Font = Enum.Font.GothamBold
ServerButton.BorderSizePixel = 0

local ServerCorner = Instance.new("UICorner")
ServerCorner.CornerRadius = UDim.new(0, 10)
ServerCorner.Parent = ServerButton

-- Private Server Chat Box + Log
local ChatBoxFrame = Instance.new("Frame")
ChatBoxFrame.Parent = MainFrame
ChatBoxFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 50)
ChatBoxFrame.Position = UDim2.new(0, 10, 0, 65)
ChatBoxFrame.Size = UDim2.new(1, -20, 0, 110)
ChatBoxFrame.Visible = false
ChatBoxFrame.BorderSizePixel = 0

local ChatBoxCorner = Instance.new("UICorner")
ChatBoxCorner.CornerRadius = UDim.new(0, 12)
ChatBoxCorner.Parent = ChatBoxFrame

local TextBox = Instance.new("TextBox")
TextBox.Parent = ChatBoxFrame
TextBox.BackgroundTransparency = 1
TextBox.Position = UDim2.new(0, 10, 0, 10)
TextBox.Size = UDim2.new(1, -20, 0, 40)
TextBox.TextColor3 = Color3.new(1,1,1)
TextBox.PlaceholderText = "Type private msg → Enter (local only)"
TextBox.TextSize = 15
TextBox.Font = Enum.Font.Gotham
TextBox.ClearTextOnFocus = false
TextBox.MultiLine = true
TextBox.TextWrapped = true

local ChatLog = Instance.new("ScrollingFrame")
ChatLog.Parent = ChatBoxFrame
ChatLog.BackgroundTransparency = 1
ChatLog.Position = UDim2.new(0, 10, 0, 60)
ChatLog.Size = UDim2.new(1, -20, 1, -70)
ChatLog.CanvasSize = UDim2.new(0, 0, 0, 0)
ChatLog.ScrollBarThickness = 4

-- Status
local StatusLabel = Instance.new("TextLabel")
StatusLabel.Parent = MainFrame
StatusLabel.BackgroundTransparency = 1
StatusLabel.Position = UDim2.new(0, 10, 1, -35)
StatusLabel.Size = UDim2.new(1, -20, 0, 25)
StatusLabel.Text = "Global = real chat | Server = hidden local bubble + log"
StatusLabel.TextColor3 = Color3.fromRGB(180, 180, 200)
StatusLabel.TextSize = 13
StatusLabel.Font = Enum.Font.Gotham
StatusLabel.TextWrapped = true

-- Toggle panel smooth
local function toggleMain()
    if MainFrame.Visible then
        TweenService:Create(MainFrame, TweenInfo.new(0.3, Enum.EasingStyle.Back), {Size = UDim2.new(0, 0, 0, 0)}):Play()
        task.wait(0.3)
        MainFrame.Visible = false
        ChatBoxFrame.Visible = false
    else
        MainFrame.Visible = true
        MainFrame.Size = UDim2.new(0, 0, 0, 0)
        TweenService:Create(MainFrame, TweenInfo.new(0.4, Enum.EasingStyle.Back), {Size = UDim2.new(0, 260, 0, 220)}):Play()
    end
end

ToggleButton.MouseButton1Click:Connect(toggleMain)

-- Global: open real chat bar
GlobalButton.MouseButton1Click:Connect(function()
    pcall(function()
        StarterGui:SetCore("ChatActive", true)
    end)
    StarterGui:SetCore("ChatMakeSystemMessage", {
        Text = "🟢 Global Chat Opened! Type normally (everyone sees)",
        Color = Color3.fromRGB(0, 255, 100)
    })
end)

-- Server: toggle private input
ServerButton.MouseButton1Click:Connect(function()
    ChatBoxFrame.Visible = not ChatBoxFrame.Visible
    if ChatBoxFrame.Visible then
        TextBox:CaptureFocus()
    end
end)

-- Send private: bubble + add to local log (only you see)
TextBox.FocusLost:Connect(function(enterPressed)
    if enterPressed and TextBox.Text:match("%S") then
        local message = TextBox.Text
        
        -- Local bubble (unfiltered, only you)
        local char = LocalPlayer.Character
        if char and char:FindFirstChild("Head") then
            pcall(function()
                TextChatService:DisplayBubble(char.Head, message)
            end)
        end
        
        -- Add to local chat log
        local entry = Instance.new("TextLabel")
        entry.BackgroundTransparency = 1
        entry.Size = UDim2.new(1, 0, 0, 20)
        entry.Text = "> " .. message
        entry.TextColor3 = Color3.fromRGB(200, 255, 200)
        entry.TextSize = 14
        entry.Font = Enum.Font.Gotham
        entry.TextXAlignment = Enum.TextXAlignment.Left
        entry.Parent = ChatLog
        
        -- Auto-scroll log
        ChatLog.CanvasSize = UDim2.new(0, 0, 0, #ChatLog:GetChildren() * 22)
        ChatLog.CanvasPosition = Vector2.new(0, ChatLog.AbsoluteCanvasSize.Y)
        
        TextBox.Text = ""
        print("[Private Server Chat] " .. message)
    end
end)

print("🚀 PRIVATE CHAT EXPLOIT LOADED! Server Chat is now fully hidden/local.")

Features & Information

A Chat Script I made
#Scripts#Chat script

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts