local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local UserInputService = game:GetService("UserInputService") local player = Players.LocalPlayer local backpack = player:WaitForChild("Backpack") local playerGui = player:WaitForChild("PlayerGui") local rewardEvent = ReplicatedStorage:WaitForChild("Events"):WaitForChild("Reward") local squatEvent = backpack:WaitForChild("Train"):WaitForChild("Squat") local screenGui = Instance.new("ScreenGui") screenGui.Name = "EventSpamGui" screenGui.Parent = playerGui -- Mobile detection local isMobile = UserInputService.TouchEnabled local function createButton(name, position) local frame = Instance.new("Frame") frame.Name = name .. "Frame" -- Adjust size for mobile if isMobile then frame.Size = UDim2.new(0, 180, 0, 70) else frame.Size = UDim2.new(0, 150, 0, 50) end frame.Position = position frame.BackgroundColor3 = Color3.fromRGB(0, 0, 0) frame.BorderSizePixel = 0 frame.Parent = screenGui local stroke = Instance.new("UIStroke") stroke.Thickness = 2 stroke.Color = Color3.fromRGB(60, 60, 60) stroke.Parent = frame local button = Instance.new("TextButton") button.Name = name button.Size = UDim2.new(1, 0, 1, 0) button.BackgroundTransparency = 1 button.TextColor3 = Color3.new(1, 1, 1) button.Font = Enum.Font.SourceSansBold -- Adjust text size for mobile if isMobile then button.TextSize = 24 else button.TextSize = 20 end button.Text = name button.Parent = frame -- Only add hover effects for non-mobile devices if not isMobile then button.MouseEnter:Connect(function() TweenService:Create( stroke, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Color = Color3.fromRGB(100, 100, 100)} ):Play() end) button.MouseLeave:Connect(function() TweenService:Create( stroke, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Color = Color3.fromRGB(60, 60, 60)} ):Play() end) end return button end -- Adjust positions for mobile local buttonPositions if isMobile then -- Stack buttons vertically for mobile buttonPositions = { reward = UDim2.new(0.5, -90, 0.6, 0), squat = UDim2.new(0.5, -90, 0.7, 0), delete = UDim2.new(0.5, -90, 0.8, 0) } else -- Horizontal layout for desktop buttonPositions = { reward = UDim2.new(0.5, -240, 0.8, 0), squat = UDim2.new(0.5, -75, 0.8, 0), delete = UDim2.new(0.5, 90, 0.8, 0) } end local rewardButton = createButton("Reward", buttonPositions.reward) local squatButton = createButton("Squat", buttonPositions.squat) local deleteButton = createButton("Delete Menu", buttonPositions.delete) -- Make buttons more responsive on mobile if isMobile then local function improveMobileTouch(button) button.AutoButtonColor = false local function touchStart() TweenService:Create( button.Parent, TweenInfo.new(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {BackgroundTransparency = 0.7} ):Play() end local function touchEnd() TweenService:Create( button.Parent, TweenInfo.new(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {BackgroundTransparency = 1} ):Play() end button.TouchTapIn:Connect(touchStart) button.TouchTapOut:Connect(touchEnd) button.TouchEnded:Connect(touchEnd) end improveMobileTouch(rewardButton) improveMobileTouch(squatButton) improveMobileTouch(deleteButton) end local rewardSpamming = false local rewardThread rewardButton.MouseButton1Click:Connect(function() rewardSpamming = not rewardSpamming rewardButton.Text = rewardSpamming and "Stop Reward" or "Start Reward" if rewardSpamming then rewardThread = task.spawn(function() while rewardSpamming do rewardEvent:FireServer() task.wait() end end) else if rewardThread then task.cancel(rewardThread) end end end) local squatSpamming = false local squatThread squatButton.MouseButton1Click:Connect(function() squatSpamming = not squatSpamming squatButton.Text = squatSpamming and "Stop Squat" or "Start Squat" if squatSpamming then squatThread = task.spawn(function() while squatSpamming do squatEvent:FireServer() task.wait() end end) else if squatThread then task.cancel(squatThread) end end end) deleteButton.MouseButton1Click:Connect(function() rewardSpamming = false squatSpamming = false if rewardThread then task.cancel(rewardThread) end if squatThread then task.cancel(squatThread) end screenGui:Destroy() end) -- Add mobile-specific instructions if needed if isMobile then local instructions = Instance.new("TextLabel") instructions.Name = "MobileInstructions" instructions.Size = UDim2.new(0.8, 0, 0, 40) instructions.Position = UDim2.new(0.1, 0, 0.5, 0) instructions.BackgroundTransparency = 1 instructions.TextColor3 = Color3.new(1, 1, 1) instructions.Text = "Tap buttons to start/stop spamming events" instructions.TextSize = 18 instructions.Font = Enum.Font.SourceSans instructions.Parent = screenGui end