
KeylessUniversal

local ScreenGui = Instance.new("ScreenGui")
local MainFrame = Instance.new("Frame")
local Title = Instance.new("TextLabel")
local TextBox = Instance.new("TextBox")
local StartBtn = Instance.new("TextButton")
local StopBtn = Instance.new("TextButton")
-- Parent to CoreGui
ScreenGui.Parent = game:GetService("CoreGui")
ScreenGui.Name = "FriendBot_Punctuation"
-- UI Styling
MainFrame.Name = "MainFrame"
MainFrame.Parent = ScreenGui
MainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
MainFrame.Position = UDim2.new(0.5, -110, 0.5, -80)
MainFrame.Size = UDim2.new(0, 220, 0, 160)
MainFrame.Active = true
MainFrame.Draggable = true
Title.Parent = MainFrame
Title.Size = UDim2.new(1, 0, 0, 35)
Title.Text = " Chat spammer by robloxplayer37864"
Title.TextColor3 = Color3.new(1, 1, 1)
Title.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
TextBox.Parent = MainFrame
TextBox.Text = "add me! i need max friends cap"
TextBox.Position = UDim2.new(0.05, 0, 0.3, 0)
TextBox.Size = UDim2.new(0.9, 0, 0.25, 0)
TextBox.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
TextBox.TextColor3 = Color3.new(1, 1, 1)
StartBtn.Parent = MainFrame
StartBtn.Text = "START"
StartBtn.BackgroundColor3 = Color3.fromRGB(0, 140, 0)
StartBtn.Position = UDim2.new(0.05, 0, 0.65, 0)
StartBtn.Size = UDim2.new(0.42, 0, 0.25, 0)
StopBtn.Parent = MainFrame
StopBtn.Text = "STOP"
StopBtn.BackgroundColor3 = Color3.fromRGB(140, 0, 0)
StopBtn.Position = UDim2.new(0.53, 0, 0.65, 0)
StopBtn.Size = UDim2.new(0.42, 0, 0.25, 0)
-- Logic
local running = false
local TextChatService = game:GetService("TextChatService")
local GeneralChannel = TextChatService.TextChannels.RBXGeneral
-- The list of characters to cycle through
local variations = {".", "..", "'", '"', "!", " ", "-"}
StartBtn.MouseButton1Click:Connect(function()
if running then return end
running = true
StartBtn.Text = "RUNNING"
while running do
local userMessage = TextBox.Text
-- Pick a random character from the list above
local randomChar = variations[math.random(1, #variations)]
local finalMessage = userMessage .. randomChar
GeneralChannel:SendAsync(finalMessage)
task.wait(20) -- Your 20 second delay
end
end)
StopBtn.MouseButton1Click:Connect(function()
running = false
StartBtn.Text = "START"
end)



Enjoy the script
There's a 20 sec delay before the message is sent i think
.
@vigiakenny you can bypass the delay
yes.. < bypass
Happy new year btw
Mine is better