WEAK HERO BOT SCRIPT
Key RequiredUniversal

WEAK HERO BOT SCRIPT

Universal ScriptWeakhero95oppWeakhero95opp 1.4K views 120 executesUpdated Apr 17, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Scriptβ€’397 lines (12126 chars)
local Players = game:GetService("Players")
local TextChatService = game:GetService("TextChatService")
local RunService = game:GetService("RunService")

local player = Players.LocalPlayer

--------------------------------------------------
-- SETTINGS
--------------------------------------------------
local saying = false
local targetName = "TMX"
local delayTime = 1
local pattern = "_"
local allowedPlayer = nil

--------------------------------------------------
-- RO MESSAGE LIST
--------------------------------------------------
local roMessages = {
"TMX MEH FIRE πŸ”₯","FYTER BNEGA?🀣","BCHE CQ ON TOPπŸ‘‘","TMX MEH Rocket πŸš€",
"TMX MEH electricity ⚑","TMX meh SURF πŸ˜†","Leave marde 🀣","CQ ON TOP BOL πŸ”₯",
"TMX MEH BOOK πŸ“š","Pil gya itni jaldi 🀣","Itna lallu fyter🀧","Cvr bye CQπŸ‘‘",
"Tmx meh petroleum","Dffn?πŸ˜”","Bhag ja bache😹","Tmx meh dino 😈",
"TMX MEH MAJDOOR","TMX MEH SCRIPT","TMX MEH TREE🌴","TMX MEH CLIP",
"Tmx AlluπŸ₯”","TMX MEH GOAT","TMX MEH BLAZE","TMX MEH SALT",
"TMX MEH ROD","TMX MEH UNIVERSE","TMX MEH SOFA",
"TMX MEH KEYBOARD","TMX MEH SNIPER","CQ ON TOPπŸ‘‘",
"TMX MEH MONITOR","TMX MEH TABLE","TMX MEH GALAXLY",
"TMX MEH MUSHROOM","TMX MEH STONE","TMX MEH BOT",
"TMX MEH TAB","TMX MEH CYLINDER","TMX MEH KING",
"TMX MEH VOID","TMX MEH REAPER","TMX MEH GOD",
"TMX MEH MASTER","TMX MEH NOVA","TMX MEH BEAST",
"TMX MEH LEGEND","TMX MEH GHOST","TMX MEH NINJA",
"TMX MEH STAR","TMX MEH MOON","TMX MEH NEON",
"TMX MEH OMEGA","TMX MEH STICK","TMX MEH PAPER",
"TMX MEH STYLE","TMX MEH ALPHA","TMX MEH FISH"
}

--------------------------------------------------
-- GENERATE LINE
--------------------------------------------------
local function generateLine()
	local result = ""
	while #result < 150 do
		result = result .. pattern
	end
	return string.sub(result, 1, 150)
end

--------------------------------------------------
-- SPAM SYSTEM
--------------------------------------------------
local function startROSpam()
	if saying then return end
	saying = true

	task.spawn(function()
		while saying do
			local msgText = roMessages[math.random(1, #roMessages)]
			local msg = generateLine().."\n"..targetName.."\n"..msgText
			
			TextChatService.TextChannels.RBXGeneral:SendAsync(msg)
			task.wait(delayTime)
		end
	end)
end

local function stopAll()
	saying = false
end

--------------------------------------------------
-- COMMAND SYSTEM
--------------------------------------------------
local function handleCommand(speaker, message)
	if allowedPlayer and speaker.Name ~= allowedPlayer then return end

	local args = message:split(" ")
	local cmd = args[1]:lower()

	if cmd == "!ro" then
		if args[2] then targetName = args[2] end
		startROSpam()
	end

	if cmd == "!say" then
		if #args > 1 then
			local text = message:sub(6)
			TextChatService.TextChannels.RBXGeneral:SendAsync(text)
		end
	end

	if cmd == "!bot" then
		local msg = generateLine().."\nH1 CQ RULER πŸ‘‘"
		TextChatService.TextChannels.RBXGeneral:SendAsync(msg)
	end

	if cmd == "!stop" then
		stopAll()
	end

	if cmd == "!delay" then
		local n = tonumber(args[2])
		if n then delayTime = n end
	end

	if cmd == "!pattern" then
		if args[2] then pattern = args[2] end
	end
end

--------------------------------------------------
-- CHAT LISTENER
--------------------------------------------------
for _, plr in pairs(Players:GetPlayers()) do
	plr.Chatted:Connect(function(msg)
		handleCommand(plr, msg)
	end)
end

Players.PlayerAdded:Connect(function(plr)
	plr.Chatted:Connect(function(msg)
		handleCommand(plr, msg)
	end)
end)

--------------------------------------------------
-- GUI
--------------------------------------------------
local gui = Instance.new("ScreenGui", player:WaitForChild("PlayerGui"))
gui.Name = "ModernGUI"
gui.IgnoreGuiInset = true

--------------------------------------------------
-- FLOATING BALLS ANIMATION
--------------------------------------------------
local balls = {}
local ballColors = {
	Color3.fromRGB(70, 130, 200),
	Color3.fromRGB(100, 150, 220),
	Color3.fromRGB(130, 170, 240),
	Color3.fromRGB(160, 190, 255),
	Color3.fromRGB(190, 210, 255)
}

local function createFloatingBall(parent, xPos, yPos, size, color)
	local ball = Instance.new("Frame", parent)
	ball.Size = UDim2.new(0, size, 0, size)
	ball.Position = UDim2.new(0, xPos, 0, yPos)
	ball.BackgroundColor3 = color
	ball.BackgroundTransparency = 0.3
	ball.BorderSizePixel = 0
	
	local corner = Instance.new("UICorner", ball)
	corner.CornerRadius = UDim.new(1, 0)
	
	-- Add glow effect
	local glow = Instance.new("Frame", ball)
	glow.Size = UDim2.new(1.5, 0, 1.5, 0)
	glow.Position = UDim2.new(-0.25, 0, -0.25, 0)
	glow.BackgroundColor3 = color
	glow.BackgroundTransparency = 0.7
	glow.BorderSizePixel = 0
	
	local glowCorner = Instance.new("UICorner", glow)
	glowCorner.CornerRadius = UDim.new(1, 0)
	
	return ball
end

local function animateBalls()
	for _, ball in pairs(balls) do
		task.spawn(function()
			local startPos = ball.Position
			local amplitude = math.random(20, 50)
			local speed = math.random(2, 5)
			local time = 0
			
			while ball and ball.Parent do
				time = time + 0.016
				local newY = startPos.Y.Offset + math.sin(time * speed) * amplitude
				ball.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset, startPos.Y.Scale, newY)
				RunService.Heartbeat:Wait()
			end
		end)
	end
end

--------------------------------------------------
-- MAIN PANEL (MODERN LIGHT BLUE)
--------------------------------------------------
local frame = Instance.new("Frame", gui)
frame.Size = UDim2.new(0, 350, 0, 480)
frame.Position = UDim2.new(0, 80, 0.5, -240)
frame.BackgroundColor3 = Color3.fromRGB(173, 216, 230)
frame.BackgroundTransparency = 0.02
frame.BorderSizePixel = 0
frame.Visible = true
frame.Active = true
frame.Draggable = true

-- Main panel corner
local frameCorner = Instance.new("UICorner", frame)
frameCorner.CornerRadius = UDim.new(0, 15)

-- Panel shadow
local frameShadow = Instance.new("Frame", frame)
frameShadow.Size = UDim2.new(1, 15, 1, 15)
frameShadow.Position = UDim2.new(0, -7, 0, -7)
frameShadow.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
frameShadow.BackgroundTransparency = 0.25
frameShadow.BorderSizePixel = 0
frameShadow.ZIndex = -1

local frameShadowCorner = Instance.new("UICorner", frameShadow)
frameShadowCorner.CornerRadius = UDim.new(0, 18)

-- Toggle button (floating)
local toggle = Instance.new("TextButton", gui)
toggle.Size = UDim2.new(0, 55, 0, 55)
toggle.Position = UDim2.new(0, 20, 0.5, -27)
toggle.Text = "πŸ‘‘"
toggle.TextSize = 28
toggle.BackgroundColor3 = Color3.fromRGB(70, 130, 200)
toggle.BackgroundTransparency = 0.05
toggle.BorderSizePixel = 0
toggle.Visible = true
toggle.Active = true
toggle.Draggable = true

local toggleCorner = Instance.new("UICorner", toggle)
toggleCorner.CornerRadius = UDim.new(1, 0)

-- Toggle shadow
local toggleShadow = Instance.new("Frame", toggle)
toggleShadow.Size = UDim2.new(1, 8, 1, 8)
toggleShadow.Position = UDim2.new(0, -4, 0, -4)
toggleShadow.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
toggleShadow.BackgroundTransparency = 0.3
toggleShadow.BorderSizePixel = 0
toggleShadow.ZIndex = -1

local toggleShadowCorner = Instance.new("UICorner", toggleShadow)
toggleShadowCorner.CornerRadius = UDim.new(1, 0)

-- Title bar
local titleBar = Instance.new("Frame", frame)
titleBar.Size = UDim2.new(1, 0, 0, 60)
titleBar.Position = UDim2.new(0, 0, 0, 0)
titleBar.BackgroundColor3 = Color3.fromRGB(70, 130, 200)
titleBar.BackgroundTransparency = 0.1
titleBar.BorderSizePixel = 0

local titleBarCorner = Instance.new("UICorner", titleBar)
titleBarCorner.CornerRadius = UDim.new(0, 15)

-- Title text
local titleMain = Instance.new("TextLabel", titleBar)
titleMain.Size = UDim2.new(1, 0, 1, 0)
titleMain.Text = "πŸ‘‘ weakhero PANEL"
titleMain.TextColor3 = Color3.new(1, 1, 1)
titleMain.BackgroundTransparency = 1
titleMain.Font = Enum.Font.GothamBold
titleMain.TextSize = 22

-- Target Label
local targetLabel = Instance.new("TextLabel", frame)
targetLabel.Size = UDim2.new(1, 0, 0, 35)
targetLabel.Position = UDim2.new(0, 0, 0, 70)
targetLabel.Text = "🎯 COMMANDS TO: NONE"
targetLabel.TextColor3 = Color3.fromRGB(70, 130, 200)
targetLabel.BackgroundTransparency = 1
targetLabel.Font = Enum.Font.GothamBold
targetLabel.TextSize = 15

-- Commands section
local cmdSection = Instance.new("Frame", frame)
cmdSection.Size = UDim2.new(1, -20, 0, 140)
cmdSection.Position = UDim2.new(0, 10, 0, 115)
cmdSection.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
cmdSection.BackgroundTransparency = 0.15
cmdSection.BorderSizePixel = 0

local cmdSectionCorner = Instance.new("UICorner", cmdSection)
cmdSectionCorner.CornerRadius = UDim.new(0, 10)

local cmdTitle = Instance.new("TextLabel", cmdSection)
cmdTitle.Size = UDim2.new(1, 0, 0, 30)
cmdTitle.Position = UDim2.new(0, 0, 0, 0)
cmdTitle.Text = "πŸ“ COMMANDS"
cmdTitle.TextColor3 = Color3.fromRGB(30, 60, 90)
cmdTitle.BackgroundTransparency = 1
cmdTitle.Font = Enum.Font.GothamBold
cmdTitle.TextSize = 14

local cmdText = Instance.new("TextLabel", cmdSection)
cmdText.Size = UDim2.new(1, -20, 1, -40)
cmdText.Position = UDim2.new(0, 10, 0, 35)
cmdText.Text = "!ro <player>     - Start RO spam\n!say <msg>       - Say something\n!bot               - Bot message\n!stop              - Stop all spam\n!delay <n>        - Set delay\n!pattern <text>   - Set pattern"
cmdText.TextColor3 = Color3.fromRGB(50, 80, 110)
cmdText.BackgroundTransparency = 1
cmdText.Font = Enum.Font.Gotham
cmdText.TextSize = 13
cmdText.TextXAlignment = Enum.TextXAlignment.Left
cmdText.TextYAlignment = Enum.TextYAlignment.Top

-- Player list section
local playerSection = Instance.new("Frame", frame)
playerSection.Size = UDim2.new(1, -20, 0, 200)
playerSection.Position = UDim2.new(0, 10, 0, 265)
playerSection.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
playerSection.BackgroundTransparency = 0.15
playerSection.BorderSizePixel = 0

local playerSectionCorner = Instance.new("UICorner", playerSection)
playerSectionCorner.CornerRadius = UDim.new(0, 10)

local playerTitle = Instance.new("TextLabel", playerSection)
playerTitle.Size = UDim2.new(1, 0, 0, 30)
playerTitle.Position = UDim2.new(0, 0, 0, 0)
playerTitle.Text = "πŸ‘₯ PLAYERS"
playerTitle.TextColor3 = Color3.fromRGB(30, 60, 90)
playerTitle.BackgroundTransparency = 1
playerTitle.Font = Enum.Font.GothamBold
playerTitle.TextSize = 14

-- Scrolling frame for players
local scroll = Instance.new("ScrollingFrame", playerSection)
scroll.Size = UDim2.new(1, -10, 1, -40)
scroll.Position = UDim2.new(0, 5, 0, 35)
scroll.BackgroundTransparency = 1
scroll.BorderSizePixel = 0
scroll.ScrollBarThickness = 6
scroll.ScrollBarImageColor3 = Color3.fromRGB(70, 130, 200)

local function loadPlayers()
	scroll:ClearAllChildren()
	local y = 0

	for _, plr in pairs(Players:GetPlayers()) do
		local btn = Instance.new("TextButton", scroll)
		btn.Size = UDim2.new(1, -10, 0, 35)
		btn.Position = UDim2.new(0, 5, 0, y)
		btn.Text = "πŸ‘€ " .. plr.Name
		btn.BackgroundColor3 = Color3.fromRGB(70, 130, 200)
		btn.BackgroundTransparency = 0.2
		btn.TextColor3 = Color3.new(1, 1, 1)
		btn.Font = Enum.Font.Gotham
		btn.TextSize = 14
		btn.BorderSizePixel = 0

		local btnCorner = Instance.new("UICorner", btn)
		btnCorner.CornerRadius = UDim.new(0, 6)

		btn.MouseEnter:Connect(function()
			btn.BackgroundTransparency = 0.05
		end)

		btn.MouseLeave:Connect(function()
			btn.BackgroundTransparency = 0.2
		end)

		btn.MouseButton1Click:Connect(function()
			allowedPlayer = plr.Name
			targetLabel.Text = "🎯 COMMANDS TO: " .. allowedPlayer
		end)

		y = y + 40
	end

	scroll.CanvasSize = UDim2.new(0, 0, 0, y)
end

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

toggle.MouseButton1Click:Connect(function()
	frame.Visible = not frame.Visible
end)

-- Create floating balls for main panel
local mainBallPositions = {
	{30, 40, 25, 1},
	{300, 35, 22, 2},
	{25, 430, 28, 3},
	{310, 440, 24, 4},
	{175, 20, 20, 5},
	{175, 450, 20, 6}
}

for _, pos in ipairs(mainBallPositions) do
	local ball = createFloatingBall(frame, pos[1], pos[2], pos[3], ballColors[math.random(1, #ballColors)])
	table.insert(balls, ball)
end

animateBalls()

Features & Information

BEST SCRIPT FOR BROOKHAVEN AND OTHER GAMES. GUY DONT FORGET TO LIKE AND COMMENT
#UNIVERSAL

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts