
KeylessUniversal

-- Dodo's BrookChat for Executors (Optimized)
local HttpService = game:GetService("HttpService")
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
-- CONFIG
local GIST_URL = "https://pastebin.com/raw/YOUR_PASTE_ID" -- Replace with your paste URL or server endpoint
local POLL_INTERVAL = 3 -- seconds between updates
local username = Players.LocalPlayer.Name
-- GUI
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Parent = game:GetService("CoreGui")
ScreenGui.Name = "DodosBrookChat"
local MainFrame = Instance.new("Frame")
MainFrame.Size = UDim2.new(0, 400, 0, 500)
MainFrame.Position = UDim2.new(0.5, -200, 0.5, -250)
MainFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
MainFrame.Visible = false
MainFrame.Parent = ScreenGui
local FrameCorner = Instance.new("UICorner")
FrameCorner.CornerRadius = UDim.new(0, 10)
FrameCorner.Parent = MainFrame
-- Title
local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, 0, 0, 50)
Title.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
Title.Text = "Dodo's BrookChat"
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.Font = Enum.Font.GothamBold
Title.TextScaled = true
Title.Parent = MainFrame
-- Chat ScrollingFrame
local ChatFrame = Instance.new("ScrollingFrame")
ChatFrame.Size = UDim2.new(1, -20, 1, -120)
ChatFrame.Position = UDim2.new(0, 10, 0, 60)
ChatFrame.BackgroundTransparency = 1
ChatFrame.ScrollBarThickness = 6
ChatFrame.AutomaticCanvasSize = Enum.AutomaticSize.Y
ChatFrame.Parent = MainFrame
local UIListLayout = Instance.new("UIListLayout")
UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
UIListLayout.Padding = UDim.new(0, 5)
UIListLayout.Parent = ChatFrame
-- Input
local InputBox = Instance.new("TextBox")
InputBox.Size = UDim2.new(1, -20, 0, 30)
InputBox.Position = UDim2.new(0, 10, 1, -50)
InputBox.PlaceholderText = "Type your message..."
InputBox.TextColor3 = Color3.fromRGB(255, 255, 255)
InputBox.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
InputBox.ClearTextOnFocus = false
InputBox.TextScaled = true
InputBox.Parent = MainFrame
-- Send button
local SendBtn = Instance.new("TextButton")
SendBtn.Size = UDim2.new(0, 60, 0, 30)
SendBtn.Position = UDim2.new(1, -70, 1, -50)
SendBtn.Text = "Send"
SendBtn.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
SendBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
SendBtn.Parent = MainFrame
-- Toggle Button
local ToggleBtn = Instance.new("TextButton")
ToggleBtn.Size = UDim2.new(0, 50, 0, 50)
ToggleBtn.Position = UDim2.new(0, 10, 0.5, -25)
ToggleBtn.Text = "Chat"
ToggleBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
ToggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
ToggleBtn.Parent = ScreenGui
ToggleBtn.MouseButton1Click:Connect(function()
MainFrame.Visible = not MainFrame.Visible
end)
-- Message storage
local messages = {}
-- Utilities
local function addMessage(name, msg)
local label = Instance.new("TextLabel")
label.Size = UDim2.new(1, 0, 0, 30)
label.Text = name .. ": " .. msg
label.TextColor3 = Color3.fromRGB(255, 255, 255)
label.BackgroundTransparency = 1
label.TextScaled = true
label.Font = Enum.Font.Gotham
label.TextWrapped = true
label.Parent = ChatFrame
-- Scroll to bottom
ChatFrame.CanvasPosition = Vector2.new(0, ChatFrame.CanvasSize.Y.Offset)
end
local function updateChat(newMessages)
-- Only add new messages
for i = #messages + 1, #newMessages do
local msgData = newMessages[i]
addMessage(msgData.username, msgData.message)
table.insert(messages, msgData)
end
end
-- Send message
local function sendMessage()
local msg = InputBox.Text
if msg ~= "" then
local data = {username=username, message=msg}
pcall(function()
HttpService:PostAsync(GIST_URL, HttpService:JSONEncode(data))
end)
InputBox.Text = ""
addMessage(username, msg)
table.insert(messages, data)
end
end
SendBtn.MouseButton1Click:Connect(sendMessage)
InputBox.FocusLost:Connect(function(enterPressed)
if enterPressed then
sendMessage()
end
end)
-- Polling messages
spawn(function()
while true do
if MainFrame.Visible then
pcall(function()
local json = HttpService:GetAsync(GIST_URL)
local data = HttpService:JSONDecode(json)
updateChat(data)
end)
end
task.wait(POLL_INTERVAL)
end
end)No comments yet for this script.



