local Players = game:GetService("Players") local RunService = game:GetService("RunService") local Workspace = game:GetService("Workspace") local VirtualInputManager = game:GetService("VirtualInputManager") local LocalPlayer = Players.LocalPlayer local Camera = Workspace.CurrentCamera local attackCooldown = 0.3 local aimSpeed = 0.3 local aimFOV = 300 local swaySpeed = 0.5 local swayAmount = 0.005 local aimPartOptions = {"Head", "UpperTorso", "LowerTorso", "Torso"} local isAttacking = false local currentAimTarget = nil local lockOnPartName = "Head" print("[SK Universal] AutoPlay Initialized") local function triggerTapAttack() if isAttacking then return end isAttacking = true local x = Camera.ViewportSize.X / 2 local y = Camera.ViewportSize.Y / 2 VirtualInputManager:SendTouchEvent(1, 0, x, y) task.wait(0.05) VirtualInputManager:SendTouchEvent(1, 2, x, y) task.wait(attackCooldown) isAttacking = false end local function isCharacterOnScreen(character) for _, part in ipairs(character:GetChildren()) do if part:IsA("BasePart") then local _, onScreen = Camera:WorldToViewportPoint(part.Position) if onScreen then return true end end end return false end local function getClosestTargetToCrosshair() local closestTarget = nil local shortestDistance = math.huge local viewportCenter = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2) for _, player in ipairs(Players:GetPlayers()) do if player == LocalPlayer then continue end if player.Team ~= nil and LocalPlayer.Team ~= nil and player.Team == LocalPlayer.Team then continue end local character = player.Character if character and character:FindFirstChild("Humanoid") and character.Humanoid.Health > 0 then if not isCharacterOnScreen(character) then continue end local head = character:FindFirstChild("Head") or character:FindFirstChild("Torso") if not head then continue end local screenPoint, _ = Camera:WorldToViewportPoint(head.Position) local distanceToCenter = (Vector2.new(screenPoint.X, screenPoint.Y) - viewportCenter).Magnitude if distanceToCenter <= aimFOV and distanceToCenter < shortestDistance then shortestDistance = distanceToCenter closestTarget = character end if not character:FindFirstChild("ESP_Highlight") then local highlight = Instance.new("Highlight") highlight.Name = "ESP_Highlight" highlight.FillColor = Color3.fromRGB(255, 0, 0) highlight.OutlineColor = Color3.fromRGB(255, 255, 255) highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop highlight.Parent = character end end end return closestTarget end local function isCrosshairOnTarget(targetCharacter) local origin = Camera.CFrame.Position local direction = Camera.CFrame.LookVector * 1000 local raycastParams = RaycastParams.new() raycastParams.FilterDescendantsInstances = {LocalPlayer.Character} raycastParams.FilterType = Enum.RaycastFilterType.Exclude local raycastResult = Workspace:Raycast(origin, direction, raycastParams) if raycastResult and raycastResult.Instance:IsDescendantOf(targetCharacter) then return true end return false end RunService:BindToRenderStep("SK_Aimbot", Enum.RenderPriority.Camera.Value + 1, function(dt) if not LocalPlayer.Character or not LocalPlayer.Character:FindFirstChild("Humanoid") or LocalPlayer.Character.Humanoid.Health <= 0 then currentAimTarget = nil return end local target = getClosestTargetToCrosshair() if target then if target ~= currentAimTarget then currentAimTarget = target lockOnPartName = aimPartOptions[math.random(1, #aimPartOptions)] end local targetPart = target:FindFirstChild(lockOnPartName) or target:FindFirstChild("Head") if targetPart then local currentTime = tick() local swayOffsetX = math.sin(currentTime * swaySpeed) * swayAmount local swayOffsetY = math.cos(currentTime * swaySpeed * 1.2) * swayAmount local swayOffsetZ = math.sin(currentTime * swaySpeed * 0.8) * swayAmount local aimPosition = targetPart.Position + Vector3.new(swayOffsetX, swayOffsetY, swayOffsetZ) local targetCFrame = CFrame.lookAt(Camera.CFrame.Position, aimPosition) local currentAimSpeed = math.clamp(aimSpeed * dt * 60, 0, 1) Camera.CFrame = Camera.CFrame:Lerp(targetCFrame, currentAimSpeed) if isCrosshairOnTarget(target) then triggerTapAttack() end end else currentAimTarget = nil end end)