Chat Spammer
Key Required

Chat Spammer

Unrated
00
Lua Script•188 lines (5556 chars)
-- Services
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local UserInputService = game:GetService("UserInputService")

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

-- Configuration
local REMOTE_NAME = "HDAdminCommandCheck"
local remoteEvent = ReplicatedStorage:WaitForChild(REMOTE_NAME)

-- Style Variables
local RED_COLOR = Color3.fromRGB(255, 0, 0)
local BLACKCOLOR = Color3.fromRGB(0, 0, 0)
local TEXT_COLOR = Color3.fromRGB(255, 255, 255)
local LEGACY_FONT = Enum.Font.Legacy

-- State Variables
local loopEnabled = false
local loopThread = nil

-- ==========================================
-- 1. UI CREATION & LAYOUT
-- ==========================================
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "ExploitDemoGui"
screenGui.ResetOnSpawn = false
screenGui.Parent = playerGui

-- Main Container Frame
local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 250, 0, 220)
mainFrame.Position = UDim2.new(0.5, -125, 0.5, -110)
mainFrame.BackgroundColor3 = BLACKCOLOR
mainFrame.BorderColor3 = RED_COLOR
mainFrame.BorderSizePixel = 3
mainFrame.Active = true
mainFrame.Parent = screenGui

-- Title TextLabel
local titleLabel = Instance.new("TextLabel")
titleLabel.Size = UDim2.new(1, 0, 0, 30)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "Chat Spammer GUI"
titleLabel.TextColor3 = TEXT_COLOR
titleLabel.TextSize = 14
titleLabel.Font = LEGACY_FONT
titleLabel.Parent = mainFrame

-- Textbox 1: Command Payload
local textBox1 = Instance.new("TextBox")
textBox1.Size = UDim2.new(0, 210, 0, 30)
textBox1.Position = UDim2.new(0.5, -105, 0, 40)
textBox1.BackgroundColor3 = BLACKCOLOR
textBox1.BorderColor3 = RED_COLOR
textBox1.BorderSizePixel = 3
textBox1.PlaceholderText = "Enter text..."
textBox1.Text = ""
textBox1.TextColor3 = TEXT_COLOR
textBox1.Font = LEGACY_FONT
textBox1.Parent = mainFrame

-- Textbox 2: Loop Delay
local textBox2 = Instance.new("TextBox")
textBox2.Size = UDim2.new(0, 210, 0, 30)
textBox2.Position = UDim2.new(0.5, -105, 0, 80)
textBox2.BackgroundColor3 = BLACKCOLOR
textBox2.BorderColor3 = RED_COLOR
textBox2.BorderSizePixel = 3
textBox2.PlaceholderText = "Loop Delay (Seconds)"
textBox2.Text = ""
textBox2.TextColor3 = TEXT_COLOR
textBox2.Font = LEGACY_FONT
textBox2.Parent = mainFrame

-- TextButton 2: Toggle Loop Status
local toggleButton = Instance.new("TextButton")
toggleButton.Size = UDim2.new(0, 210, 0, 30)
toggleButton.Position = UDim2.new(0.5, -105, 0, 120)
toggleButton.BackgroundColor3 = BLACKCOLOR
toggleButton.BorderColor3 = RED_COLOR
toggleButton.BorderSizePixel = 3
toggleButton.Text = "Loop: DISABLED"
toggleButton.TextColor3 = TEXT_COLOR
toggleButton.Font = LEGACY_FONT
toggleButton.Parent = mainFrame

-- TextButton 1: Submit/Fire
local submitButton = Instance.new("TextButton")
submitButton.Size = UDim2.new(0, 210, 0, 35)
submitButton.Position = UDim2.new(0.5, -105, 0, 165)
submitButton.BackgroundColor3 = BLACKCOLOR
submitButton.BorderColor3 = RED_COLOR
submitButton.BorderSizePixel = 3
submitButton.Text = "Execute"
submitButton.TextColor3 = TEXT_COLOR
submitButton.Font = LEGACY_FONT
submitButton.Parent = mainFrame

-- ==========================================
-- 2. DRAGGABLE FUNCTIONALITY
-- ==========================================
local dragging, dragInput, dragStart, startPos

local function update(input)
	local delta = input.Position - dragStart
	mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end

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

mainFrame.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
		update(input)
	end
end)

-- ==========================================
-- 3. CORE LOGIC & EVENT HANDLING
-- ==========================================

-- Toggle Loop State Button
toggleButton.MouseButton1Click:Connect(function()
	loopEnabled = not loopEnabled
	if loopEnabled then
		toggleButton.Text = "Loop: ENABLED"
	else
		toggleButton.Text = "Loop: DISABLED"
		-- Clean up loop thread if it's currently running
		if loopThread then
			task.cancel(loopThread)
			loopThread = nil
		end
	end
end)

-- Execution Function
local function fireRemote()
	local commandText = textBox1.Text
	local args = { commandText }
	remoteEvent:FireServer(unpack(args))
end

-- Submit Button Click
submitButton.MouseButton1Click:Connect(function()
	-- Cancel any existing loop thread before starting/firing
	if loopThread then
		task.cancel(loopThread)
		loopThread = nil
	end

	if loopEnabled then
		-- Spawn loop logic on a separate thread
		loopThread = task.spawn(function()
			while loopEnabled do
				fireRemote()
				
				-- Parse delay input securely
				local delayTime = tonumber(textBox2.Text) or 1
				if delayTime < 0.1 then delayTime = 0.1 end -- Prevent crashing from 0 second loops
				
				task.wait(delayTime)
			end
		end)
	else
		-- Single fire execution
		fireRemote()
	end
end)

Features & Information

So this game has no custom chat cooldown (yes it has custom chat for everyone) for the chat and if you want custom text color, here's the text that turns the texts to red <font color="#FF0000">Replace this with something else</font> and if you want a bigger font text heres that text <font size="48">Big text</font> you can replace the 48 number to any numbers anyways that's it.
#Chatbox script

Community Comments (2)

AlexanderXAlexanderXOct 5, 2026

Keep it up, you're good at it.

Replying to @AlexanderX
ImAScatManImAScatManOct 5, 2026

@AlexanderX Thank you!