--[[
UNIFIED SPAMMER GUI - GIVEPOWER + WINTHERACE
- Two independent spammers in one window
- Each has Start/Stop buttons
- G keybind toggles BOTH (or use separate controls)
- Draggable window with close button
]]
local replicatedStorage = game:GetService("ReplicatedStorage")
local userInputService = game:GetService("UserInputService")
-- ================================
-- GIVEPOWER SETUP
-- ================================
local givePowerRemote = nil
local function findGivePowerRemote()
local success, remote = pcall(function()
return replicatedStorage:WaitForChild("Power"):WaitForChild("GivePower")
end)
if success and remote then
return remote
end
return nil
end
givePowerRemote = findGivePowerRemote()
-- GivePower variables
local givePowerSpamming = false
local givePowerThread = nil
local givePowerCount = 0
local GIVEPOWER_DELAY = 0.05
-- ================================
-- WINTHERACE SETUP
-- ================================
local winTheRaceRemote = nil
local function findWinTheRaceRemote()
local success, remote = pcall(function()
return replicatedStorage:WaitForChild("Events"):WaitForChild("WinTheRace")
end)
if success and remote then
return remote
end
return nil
end
winTheRaceRemote = findWinTheRaceRemote()
-- WinTheRace arguments
local WINTHERACE_ARGS = {
"false",
0,
true
}
-- WinTheRace variables
local winTheRaceSpamming = false
local winTheRaceThread = nil
local winTheRaceCount = 0
local WINTHERACE_DELAY = 0.05
-- ================================
-- CREATE MAIN GUI WINDOW
-- ================================
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "UnifiedSpammerGUI"
screenGui.ResetOnSpawn = false
screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
-- Try CoreGui first, fallback to PlayerGui
local success, err = pcall(function()
screenGui.Parent = game:GetService("CoreGui")
end)
if not success then
pcall(function()
screenGui.Parent = game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui")
end)
end
-- Main window frame (wider to fit two panels)
local mainFrame = Instance.new("Frame")
mainFrame.Name = "MainFrame"
mainFrame.Size = UDim2.new(0, 700, 0, 320)
mainFrame.Position = UDim2.new(0.5, -350, 0.5, -160)
mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 30)
mainFrame.BackgroundTransparency = 0
mainFrame.BorderSizePixel = 0
mainFrame.Parent = screenGui
-- Main corner rounding
local mainCorner = Instance.new("UICorner")
mainCorner.CornerRadius = UDim.new(0, 12)
mainCorner.Parent = mainFrame
-- Title bar
local titleBar = Instance.new("Frame")
titleBar.Name = "TitleBar"
titleBar.Size = UDim2.new(1, 0, 0, 40)
titleBar.BackgroundColor3 = Color3.fromRGB(40, 40, 45)
titleBar.BorderSizePixel = 0
titleBar.Parent = mainFrame
local titleCorner = Instance.new("UICorner")
titleCorner.CornerRadius = UDim.new(0, 12)
titleCorner.Parent = titleBar
-- Title text
local titleText = Instance.new("TextLabel")
titleText.Text = "🔥 UNIFIED SPAMMER - GIVEPOWER & WINTHERACE 🔥"
titleText.TextColor3 = Color3.fromRGB(255, 150, 100)
titleText.TextSize = 15
titleText.Font = Enum.Font.GothamBold
titleText.BackgroundTransparency = 1
titleText.Size = UDim2.new(1, -40, 1, 0)
titleText.Position = UDim2.new(0, 10, 0, 0)
titleText.TextXAlignment = Enum.TextXAlignment.Left
titleText.Parent = titleBar
-- Close button
local closeBtn = Instance.new("TextButton")
closeBtn.Text = "✕"
closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
closeBtn.TextSize = 18
closeBtn.Font = Enum.Font.GothamBold
closeBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 65)
closeBtn.Size = UDim2.new(0, 32, 0, 32)
closeBtn.Position = UDim2.new(1, -38, 0, 4)
closeBtn.Parent = titleBar
local closeCorner = Instance.new("UICorner")
closeCorner.CornerRadius = UDim.new(0, 6)
closeCorner.Parent = closeBtn
closeBtn.MouseButton1Click:Connect(function()
-- Stop both spammers
givePowerSpamming = false
winTheRaceSpamming = false
task.wait(0.1)
screenGui:Destroy()
end)
-- ================================
-- LEFT PANEL: GIVEPOWER
-- ================================
local leftPanel = Instance.new("Frame")
leftPanel.Name = "GivePowerPanel"
leftPanel.Size = UDim2.new(0, 330, 1, -50)
leftPanel.Position = UDim2.new(0, 10, 0, 50)
leftPanel.BackgroundColor3 = Color3.fromRGB(30, 30, 35)
leftPanel.BackgroundTransparency = 0
leftPanel.BorderSizePixel = 0
leftPanel.Parent = mainFrame
local leftCorner = Instance.new("UICorner")
leftCorner.CornerRadius = UDim.new(0, 10)
leftCorner.Parent = leftPanel
-- Panel title
local leftTitle = Instance.new("TextLabel")
leftTitle.Text = "⚡ GIVEPOWER SPAMMER ⚡"
leftTitle.TextColor3 = Color3.fromRGB(100, 200, 255)
leftTitle.TextSize = 14
leftTitle.Font = Enum.Font.GothamBold
leftTitle.BackgroundTransparency = 1
leftTitle.Size = UDim2.new(1, 0, 0, 30)
leftTitle.Position = UDim2.new(0, 0, 0, 5)
leftTitle.Parent = leftPanel
-- GivePower status
local gpStatusLabel = Instance.new("TextLabel")
gpStatusLabel.Text = "STATUS: ● STOPPED"
gpStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100)
gpStatusLabel.TextSize = 13
gpStatusLabel.Font = Enum.Font.GothamBold
gpStatusLabel.BackgroundTransparency = 1
gpStatusLabel.Size = UDim2.new(1, -20, 0, 25)
gpStatusLabel.Position = UDim2.new(0, 10, 0, 40)
gpStatusLabel.Parent = leftPanel
-- GivePower counter
local gpCounterLabel = Instance.new("TextLabel")
gpCounterLabel.Text = "FIRES: 0"
gpCounterLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
gpCounterLabel.TextSize = 12
gpCounterLabel.Font = Enum.Font.Gotham
gpCounterLabel.BackgroundTransparency = 1
gpCounterLabel.Size = UDim2.new(1, -20, 0, 25)
gpCounterLabel.Position = UDim2.new(0, 10, 0, 65)
gpCounterLabel.Parent = leftPanel
-- GivePower remote status
local gpRemoteLabel = Instance.new("TextLabel")
if givePowerRemote then
gpRemoteLabel.Text = "REMOTE: ✓ FOUND"
gpRemoteLabel.TextColor3 = Color3.fromRGB(100, 255, 100)
else
gpRemoteLabel.Text = "REMOTE: ✗ NOT FOUND"
gpRemoteLabel.TextColor3 = Color3.fromRGB(255, 100, 100)
end
gpRemoteLabel.TextSize = 10
gpRemoteLabel.Font = Enum.Font.Gotham
gpRemoteLabel.BackgroundTransparency = 1
gpRemoteLabel.Size = UDim2.new(1, -20, 0, 20)
gpRemoteLabel.Position = UDim2.new(0, 10, 0, 90)
gpRemoteLabel.Parent = leftPanel
-- GivePower delay label
local gpDelayLabel = Instance.new("TextLabel")
gpDelayLabel.Text = "DELAY: 0.05s"
gpDelayLabel.TextColor3 = Color3.fromRGB(180, 180, 180)
gpDelayLabel.TextSize = 10
gpDelayLabel.Font = Enum.Font.Gotham
gpDelayLabel.BackgroundTransparency = 1
gpDelayLabel.Size = UDim2.new(1, -20, 0, 20)
gpDelayLabel.Position = UDim2.new(0, 10, 0, 110)
gpDelayLabel.Parent = leftPanel
-- GivePower Start button
local gpStartBtn = Instance.new("TextButton")
gpStartBtn.Text = "▶ START"
gpStartBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
gpStartBtn.TextSize = 14
gpStartBtn.Font = Enum.Font.GothamBold
gpStartBtn.BackgroundColor3 = Color3.fromRGB(0, 120, 0)
gpStartBtn.Size = UDim2.new(0, 130, 0, 40)
gpStartBtn.Position = UDim2.new(0, 15, 0, 140)
gpStartBtn.Parent = leftPanel
local gpStartCorner = Instance.new("UICorner")
gpStartCorner.CornerRadius = UDim.new(0, 8)
gpStartCorner.Parent = gpStartBtn
-- GivePower Stop button
local gpStopBtn = Instance.new("TextButton")
gpStopBtn.Text = "⏹ STOP"
gpStopBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
gpStopBtn.TextSize = 14
gpStopBtn.Font = Enum.Font.GothamBold
gpStopBtn.BackgroundColor3 = Color3.fromRGB(120, 0, 0)
gpStopBtn.Size = UDim2.new(0, 130, 0, 40)
gpStopBtn.Position = UDim2.new(0, 175, 0, 140)
gpStopBtn.Parent = leftPanel
local gpStopCorner = Instance.new("UICorner")
gpStopCorner.CornerRadius = UDim.new(0, 8)
gpStopCorner.Parent = gpStopBtn
-- ================================
-- RIGHT PANEL: WINTHERACE
-- ================================
local rightPanel = Instance.new("Frame")
rightPanel.Name = "WinTheRacePanel"
rightPanel.Size = UDim2.new(0, 330, 1, -50)
rightPanel.Position = UDim2.new(1, -340, 0, 50)
rightPanel.BackgroundColor3 = Color3.fromRGB(30, 30, 35)
rightPanel.BackgroundTransparency = 0
rightPanel.BorderSizePixel = 0
rightPanel.Parent = mainFrame
local rightCorner = Instance.new("UICorner")
rightCorner.CornerRadius = UDim.new(0, 10)
rightCorner.Parent = rightPanel
-- Panel title
local rightTitle = Instance.new("TextLabel")
rightTitle.Text = "🏁 WINTHERACE SPAMMER 🏁"
rightTitle.TextColor3 = Color3.fromRGB(100, 200, 255)
rightTitle.TextSize = 14
rightTitle.Font = Enum.Font.GothamBold
rightTitle.BackgroundTransparency = 1
rightTitle.Size = UDim2.new(1, 0, 0, 30)
rightTitle.Position = UDim2.new(0, 0, 0, 5)
rightTitle.Parent = rightPanel
-- WinTheRace status
local wrStatusLabel = Instance.new("TextLabel")
wrStatusLabel.Text = "STATUS: ● STOPPED"
wrStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100)
wrStatusLabel.TextSize = 13
wrStatusLabel.Font = Enum.Font.GothamBold
wrStatusLabel.BackgroundTransparency = 1
wrStatusLabel.Size = UDim2.new(1, -20, 0, 25)
wrStatusLabel.Position = UDim2.new(0, 10, 0, 40)
wrStatusLabel.Parent = rightPanel
-- WinTheRace counter
local wrCounterLabel = Instance.new("TextLabel")
wrCounterLabel.Text = "FIRES: 0"
wrCounterLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
wrCounterLabel.TextSize = 12
wrCounterLabel.Font = Enum.Font.Gotham
wrCounterLabel.BackgroundTransparency = 1
wrCounterLabel.Size = UDim2.new(1, -20, 0, 25)
wrCounterLabel.Position = UDim2.new(0, 10, 0, 65)
wrCounterLabel.Parent = rightPanel
-- WinTheRace remote status
local wrRemoteLabel = Instance.new("TextLabel")
if winTheRaceRemote then
wrRemoteLabel.Text = "REMOTE: ✓ FOUND"
wrRemoteLabel.TextColor3 = Color3.fromRGB(100, 255, 100)
else
wrRemoteLabel.Text = "REMOTE: ✗ NOT FOUND"
wrRemoteLabel.TextColor3 = Color3.fromRGB(255, 100, 100)
end
wrRemoteLabel.TextSize = 10
wrRemoteLabel.Font = Enum.Font.Gotham
wrRemoteLabel.BackgroundTransparency = 1
wrRemoteLabel.Size = UDim2.new(1, -20, 0, 20)
wrRemoteLabel.Position = UDim2.new(0, 10, 0, 90)
wrRemoteLabel.Parent = rightPanel
-- WinTheRace args label
local wrArgsLabel = Instance.new("TextLabel")
wrArgsLabel.Text = 'ARGS: {"false", 0, true}'
wrArgsLabel.TextColor3 = Color3.fromRGB(180, 180, 180)
wrArgsLabel.TextSize = 9
wrArgsLabel.Font = Enum.Font.Gotham
wrArgsLabel.BackgroundTransparency = 1
wrArgsLabel.Size = UDim2.new(1, -20, 0, 20)
wrArgsLabel.Position = UDim2.new(0, 10, 0, 110)
wrArgsLabel.Parent = rightPanel
-- WinTheRace Start button
local wrStartBtn = Instance.new("TextButton")
wrStartBtn.Text = "▶ START"
wrStartBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
wrStartBtn.TextSize = 14
wrStartBtn.Font = Enum.Font.GothamBold
wrStartBtn.BackgroundColor3 = Color3.fromRGB(0, 120, 0)
wrStartBtn.Size = UDim2.new(0, 130, 0, 40)
wrStartBtn.Position = UDim2.new(0, 15, 0, 140)
wrStartBtn.Parent = rightPanel
local wrStartCorner = Instance.new("UICorner")
wrStartCorner.CornerRadius = UDim.new(0, 8)
wrStartCorner.Parent = wrStartBtn
-- WinTheRace Stop button
local wrStopBtn = Instance.new("TextButton")
wrStopBtn.Text = "⏹ STOP"
wrStopBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
wrStopBtn.TextSize = 14
wrStopBtn.Font = Enum.Font.GothamBold
wrStopBtn.BackgroundColor3 = Color3.fromRGB(120, 0, 0)
wrStopBtn.Size = UDim2.new(0, 130, 0, 40)
wrStopBtn.Position = UDim2.new(0, 175, 0, 140)
wrStopBtn.Parent = rightPanel
local wrStopCorner = Instance.new("UICorner")
wrStopCorner.CornerRadius = UDim.new(0, 8)
wrStopCorner.Parent = wrStopBtn
-- ================================
-- GIVEPOWER FUNCTIONS
-- ================================
local function updateGivePowerUI(running)
if running then
gpStatusLabel.Text = "STATUS: ● RUNNING"
gpStatusLabel.TextColor3 = Color3.fromRGB(100, 255, 100)
gpStartBtn.BackgroundColor3 = Color3.fromRGB(0, 80, 0)
gpStopBtn.BackgroundColor3 = Color3.fromRGB(150, 0, 0)
else
gpStatusLabel.Text = "STATUS: ● STOPPED"
gpStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100)
gpStartBtn.BackgroundColor3 = Color3.fromRGB(0, 120, 0)
gpStopBtn.BackgroundColor3 = Color3.fromRGB(120, 0, 0)
end
end
local function startGivePower()
if not givePowerRemote then
givePowerRemote = findGivePowerRemote()
if not givePowerRemote then
gpRemoteLabel.Text = "REMOTE: ✗ NOT FOUND"
gpRemoteLabel.TextColor3 = Color3.fromRGB(255, 100, 100)
return
else
gpRemoteLabel.Text = "REMOTE: ✓ FOUND"
gpRemoteLabel.TextColor3 = Color3.fromRGB(100, 255, 100)
end
end
if givePowerSpamming then return end
givePowerSpamming = true
givePowerCount = 0
gpCounterLabel.Text = "FIRES: 0"
updateGivePowerUI(true)
givePowerThread = task.spawn(function()
while givePowerSpamming do
pcall(function()
givePowerRemote:FireServer()
end)
givePowerCount = givePowerCount + 1
if givePowerCount % 10 == 0 then
gpCounterLabel.Text = "FIRES: " .. givePowerCount
end
task.wait(GIVEPOWER_DELAY)
end
givePowerThread = nil
end)
end
local function stopGivePower()
if not givePowerSpamming then return end
givePowerSpamming = false
if givePowerThread then
task.wait(0.1)
givePowerThread = nil
end
updateGivePowerUI(false)
end
local function toggleGivePower()
if givePowerSpamming then
stopGivePower()
else
startGivePower()
end
end
-- ================================
-- WINTHERACE FUNCTIONS
-- ================================
local function updateWinTheRaceUI(running)
if running then
wrStatusLabel.Text = "STATUS: ● RUNNING"
wrStatusLabel.TextColor3 = Color3.fromRGB(100, 255, 100)
wrStartBtn.BackgroundColor3 = Color3.fromRGB(0, 80, 0)
wrStopBtn.BackgroundColor3 = Color3.fromRGB(150, 0, 0)
else
wrStatusLabel.Text = "STATUS: ● STOPPED"
wrStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100)
wrStartBtn.BackgroundColor3 = Color3.fromRGB(0, 120, 0)
wrStopBtn.BackgroundColor3 = Color3.fromRGB(120, 0, 0)
end
end
local function startWinTheRace()
if not winTheRaceRemote then
winTheRaceRemote = findWinTheRaceRemote()
if not winTheRaceRemote then
wrRemoteLabel.Text = "REMOTE: ✗ NOT FOUND"
wrRemoteLabel.TextColor3 = Color3.fromRGB(255, 100, 100)
return
else
wrRemoteLabel.Text = "REMOTE: ✓ FOUND"
wrRemoteLabel.TextColor3 = Color3.fromRGB(100, 255, 100)
end
end
if winTheRaceSpamming then return end
winTheRaceSpamming = true
winTheRaceCount = 0
wrCounterLabel.Text = "FIRES: 0"
updateWinTheRaceUI(true)
winTheRaceThread = task.spawn(function()
while winTheRaceSpamming do
pcall(function()
winTheRaceRemote:FireServer(unpack(WINTHERACE_ARGS))
end)
winTheRaceCount = winTheRaceCount + 1
if winTheRaceCount % 10 == 0 then
wrCounterLabel.Text = "FIRES: " .. winTheRaceCount
end
task.wait(WINTHERACE_DELAY)
end
winTheRaceThread = nil
end)
end
local function stopWinTheRace()
if not winTheRaceSpamming then return end
winTheRaceSpamming = false
if winTheRaceThread then
task.wait(0.1)
winTheRaceThread = nil
end
updateWinTheRaceUI(false)
end
local function toggleWinTheRace()
if winTheRaceSpamming then
stopWinTheRace()
else
startWinTheRace()
end
end
-- ================================
-- BUTTON CONNECTIONS
-- ================================
gpStartBtn.MouseButton1Click:Connect(startGivePower)
gpStopBtn.MouseButton1Click:Connect(stopGivePower)
wrStartBtn.MouseButton1Click:Connect(startWinTheRace)
wrStopBtn.MouseButton1Click:Connect(stopWinTheRace)
-- ================================
-- G KEYBIND (Toggles BOTH)
-- ================================
userInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.KeyCode == Enum.KeyCode.G then
toggleGivePower()
toggleWinTheRace()
end
end)
-- ================================
-- MAKE WINDOW DRAGGABLE
-- ================================
local dragging = false
local dragStart
local startPos
titleBar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
dragStart = input.Position
startPos = mainFrame.Position
end
end)
titleBar.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = false
end
end)
userInputService.InputChanged:Connect(function(input)
if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
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
end)
-- ================================
-- STARTUP MESSAGE
-- ================================
print([[
╔══════════════════════════════════════════════════════════════════╗
║ UNIFIED SPAMMER LOADED ║
╠══════════════════════════════════════════════════════════════════╣
║ GIVEPOWER: ReplicatedStorage > Power > GivePower ║
║ WINTHERACE: ReplicatedStorage > Events > WinTheRace ║
║ Args: {"false", 0, true} ║
║ Controls: Individual Start/Stop buttons for each spammer ║
║ Keybind: Press G toggles BOTH spammers ║
╚══════════════════════════════════════════════════════════════════╝
]])
-- Show warnings if remotes missing
task.wait(0.5)
if not givePowerRemote then
print("[WARNING] GivePower remote not found at: ReplicatedStorage > Power > GivePower")
end
if not winTheRaceRemote then
print("[WARNING] WinTheRace remote not found at: ReplicatedStorage > Events > WinTheRace")
end