-- Touch Football Aimbot Script (Server Script) -- Place this in ServerScriptService local Players = game:GetService("Players") local RunService = game:GetService("RunService") -- Configuration local THROW_SPEED = 100 local AIMBOT_ASSIST_STRENGTH = 0.3 local THROW_COOLDOWN = 0.3 -- Player data storage local playerStats = {} -- Create UI for player local function createUI(player) local playerGui = player:WaitForChild("PlayerGui") -- Main Screen GUI local screenGui = Instance.new("ScreenGui") screenGui.Name = "AimbotUI" screenGui.ResetOnSpawn = false screenGui.Parent = playerGui -- Main Panel local mainPanel = Instance.new("Frame") mainPanel.Name = "MainPanel" mainPanel.Size = UDim2.new(0, 250, 0, 200) mainPanel.Position = UDim2.new(0, 20, 0, 20) mainPanel.BackgroundColor3 = Color3.fromRGB(20, 20, 30) mainPanel.BorderSizePixel = 0 mainPanel.Parent = screenGui -- Add corner radius local mainCorner = Instance.new("UICorner") mainCorner.CornerRadius = UDim.new(0, 10) mainCorner.Parent = mainPanel -- Title local titleLabel = Instance.new("TextLabel") titleLabel.Name = "Title" titleLabel.Size = UDim2.new(1, 0, 0, 40) titleLabel.Position = UDim2.new(0, 0, 0, 0) titleLabel.BackgroundColor3 = Color3.fromRGB(0, 150, 200) titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255) titleLabel.TextSize = 18 titleLabel.Font = Enum.Font.GothamBold titleLabel.Text = "⚽ AIMBOT PANEL" titleLabel.BorderSizePixel = 0 titleLabel.Parent = mainPanel local titleCorner = Instance.new("UICorner") titleCorner.CornerRadius = UDim.new(0, 10) titleCorner.Parent = titleLabel -- Aimbot Toggle local toggleFrame = Instance.new("Frame") toggleFrame.Name = "ToggleFrame" toggleFrame.Size = UDim2.new(1, -20, 0, 50) toggleFrame.Position = UDim2.new(0, 10, 0, 50) toggleFrame.BackgroundTransparency = 1 toggleFrame.Parent = mainPanel local toggleLabel = Instance.new("TextLabel") toggleLabel.Name = "ToggleLabel" toggleLabel.Size = UDim2.new(0, 130, 0, 50) toggleLabel.BackgroundTransparency = 1 toggleLabel.TextColor3 = Color3.fromRGB(255, 255, 255) toggleLabel.TextSize = 14 toggleLabel.Font = Enum.Font.Gotham toggleLabel.Text = "Aimbot Status:" toggleLabel.TextXAlignment = Enum.TextXAlignment.Left toggleLabel.Parent = toggleFrame local toggleButton = Instance.new("TextButton") toggleButton.Name = "ToggleButton" toggleButton.Size = UDim2.new(0, 90, 0, 40) toggleButton.Position = UDim2.new(0, 140, 0, 5) toggleButton.BackgroundColor3 = Color3.fromRGB(200, 30, 30) toggleButton.TextColor3 = Color3.fromRGB(255, 255, 255) toggleButton.TextSize = 14 toggleButton.Font = Enum.Font.GothamBold toggleButton.Text = "OFF" toggleButton.BorderSizePixel = 0 toggleButton.Parent = toggleFrame local toggleCorner = Instance.new("UICorner") toggleCorner.CornerRadius = UDim.new(0, 6) toggleCorner.Parent = toggleButton -- Score Display local scoreFrame = Instance.new("Frame") scoreFrame.Name = "ScoreFrame" scoreFrame.Size = UDim2.new(1, -20, 0, 40) scoreFrame.Position = UDim2.new(0, 10, 0, 110) scoreFrame.BackgroundColor3 = Color3.fromRGB(30, 80, 30) scoreFrame.BorderSizePixel = 0 scoreFrame.Parent = mainPanel local scoreCorner = Instance.new("UICorner") scoreCorner.CornerRadius = UDim.new(0, 6) scoreCorner.Parent = scoreFrame local scoreLabel = Instance.new("TextLabel") scoreLabel.Name = "ScoreLabel" scoreLabel.Size = UDim2.new(1, 0, 1, 0) scoreLabel.BackgroundTransparency = 1 scoreLabel.TextColor3 = Color3.fromRGB(255, 255, 255) scoreLabel.TextSize = 14 scoreLabel.Font = Enum.Font.GothamBold scoreLabel.Text = "Score: 0" scoreLabel.Parent = scoreFrame -- Instructions local instructionsFrame = Instance.new("Frame") instructionsFrame.Name = "Instructions" instructionsFrame.Size = UDim2.new(0, 250, 0, 120) instructionsFrame.Position = UDim2.new(0, 20, 0, 230) instructionsFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 30) instructionsFrame.BorderSizePixel = 0 instructionsFrame.Parent = screenGui local instCorner = Instance.new("UICorner") instCorner.CornerRadius = UDim.new(0, 10) instCorner.Parent = instructionsFrame local instLabel = Instance.new("TextLabel") instLabel.Name = "InstructionsLabel" instLabel.Size = UDim2.new(1, -10, 1, -10) instLabel.Position = UDim2.new(0, 5, 0, 5) instLabel.BackgroundTransparency = 1 instLabel.TextColor3 = Color3.fromRGB(100, 200, 255) instLabel.TextSize = 12 instLabel.Font = Enum.Font.Gotham instLabel.TextWrapped = true instLabel.TextXAlignment = Enum.TextXAlignment.Left instLabel.TextYAlignment = Enum.TextYAlignment.Top instLabel.Text = "šŸ“– CONTROLS:\n\nšŸ”˜ Q - Toggle Aimbot\nšŸŽ® Click - Throw\nšŸ”„ R - Reload\n\nAimbot guides your throws to the end zone!" instLabel.Parent = instructionsFrame return { screenGui = screenGui, toggleButton = toggleButton, scoreLabel = scoreLabel } end -- Function to create football ball local function createBall(player, startPos, direction, hasAimbot) local ball = Instance.new("Part") ball.Name = "Football" ball.Shape = Enum.PartType.Ball ball.Size = Vector3.new(0.6, 0.6, 0.6) ball.Color = Color3.fromRGB(184, 115, 51) ball.Material = Enum.Material.SmoothPlastic ball.TopSurface = Enum.SurfaceType.Smooth ball.BottomSurface = Enum.SurfaceType.Smooth ball.CanCollide = true ball.CFrame = CFrame.new(startPos + direction * 10) -- Add velocity local bodyVelocity = Instance.new("BodyVelocity") bodyVelocity.Velocity = direction * THROW_SPEED bodyVelocity.MaxForce = Vector3.new(math.huge, math.huge, math.huge) bodyVelocity.Parent = ball ball:SetAttribute("HasAimbot", hasAimbot) ball:SetAttribute("ThrownBy", player) ball.Parent = workspace -- Remove after 30 seconds game:GetService("Debris"):AddItem(ball, 30) return ball end -- Function to update aimbot trajectory local function updateAimbotBall(ball, endZone) if not ball:GetAttribute("HasAimbot") then return end if not ball.Parent then return end local direction = (endZone.Position - ball.Position).Unit local bodyVelocity = ball:FindFirstChildOfClass("BodyVelocity") if bodyVelocity then bodyVelocity.Velocity = direction * THROW_SPEED end end -- Function to check if scored local function checkScore(ball, player) local endZones = workspace:FindPartsByClass("Part") for _, zone in pairs(endZones) do if zone.Name:lower():find("endzone") or zone.Name:lower():find("touchdown") then local distance = (ball.Position - zone.Position).Magnitude if distance < 20 then if playerStats[player] then playerStats[player].score = playerStats[player].score + 1 playerStats[player].ui.scoreLabel.Text = "Score: " .. playerStats[player].score end ball:Destroy() return true end end end return false end -- Setup player input local function setupPlayer(player) playerStats[player] = { aimbotEnabled = false, score = 0, lastThrow = 0, activeBalls = {} } playerStats[player].ui = createUI(player) local mouse = player:GetMouse() local userInputService = game:GetService("UserInputService") -- Toggle Aimbot (Q key) userInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == Enum.KeyCode.Q then playerStats[player].aimbotEnabled = not playerStats[player].aimbotEnabled local button = playerStats[player].ui.toggleButton if playerStats[player].aimbotEnabled then button.BackgroundColor3 = Color3.fromRGB(30, 200, 30) button.Text = "ON" else button.BackgroundColor3 = Color3.fromRGB(200, 30, 30) button.Text = "OFF" end end end) -- Throw Ball (Click) mouse.Button1Down:Connect(function() if not player.Character then return end local now = tick() if now - playerStats[player].lastThrow < THROW_COOLDOWN then return end playerStats[player].lastThrow = now local character = player.Character local humanoidRootPart = character:FindFirstChild("HumanoidRootPart") if not humanoidRootPart then return end -- Calculate throw direction local throwPos = humanoidRootPart.Position + Vector3.new(0, 3, 0) local direction = (mouse.Hit.Position - throwPos).Unit -- Create ball with aimbot if enabled local ball = createBall(player, throwPos, direction, playerStats[player].aimbotEnabled) table.insert(playerStats[player].activeBalls, ball) end) end -- Aimbot update loop RunService.Heartbeat:Connect(function() for player, stats in pairs(playerStats) do if stats.aimbotEnabled then -- Find end zone local endZone = workspace:FindFirstChild("EndZone") if not endZone then endZone = workspace:FindFirstChildWhichIsA("Part", true) if endZone and not endZone.Name:lower():find("endzone") then endZone = nil end end -- Update active balls for i = #stats.activeBalls, 1, -1 do local ball = stats.activeBalls[i] if ball and ball.Parent then if endZone then updateAimbotBall(ball, endZone) end -- Check if scored if checkScore(ball, player) then table.remove(stats.activeBalls, i) end else table.remove(stats.activeBalls, i) end end else -- Still check for scores without aimbot assist for i = #stats.activeBalls, 1, -1 do local ball = stats.activeBalls[i] if ball and ball.Parent then if checkScore(ball, player) then table.remove(stats.activeBalls, i) end else table.remove(stats.activeBalls, i) end end end end end) -- Connect to players Players.PlayerAdded:Connect(function(player) player.CharacterAdded:Connect(function(character) if playerStats[player] then playerStats[player].activeBalls = {} else setupPlayer(player) end end) setupPlayer(player) end) Players.PlayerRemoving:Connect(function(player) playerStats[player] = nil end) print("āœ… Touch Football Aimbot Script Loaded!")