--[[ 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