-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] -- Services local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local CoreGui = game:GetService("CoreGui") local LocalPlayer = Players.LocalPlayer local Camera = workspace.CurrentCamera -- Configuration Variables (All default to OFF/false safely upon execution) local Config = { Enabled = false, WallCheck = false, TeamCheck = false, FOV = 150, -- Range: 50 to 400 Smoothness = 50, -- 0 to 100 TargetLock = false, CurrentTarget = nil } -- Create ScreenGui local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "SimpleAimUI_Mobile" ScreenGui.ResetOnSpawn = false ScreenGui.Parent = CoreGui -- FOV Circle (Visual Representation) local FOVCircle = Instance.new("Frame") FOVCircle.Name = "FOVCircle" FOVCircle.AnchorPoint = Vector2.new(0.5, 0.5) FOVCircle.Position = UDim2.new(0.5, 0, 0.5, 0) FOVCircle.Size = UDim2.new(0, Config.FOV * 2, 0, Config.FOV * 2) FOVCircle.BackgroundTransparency = 1 FOVCircle.Visible = false FOVCircle.Parent = ScreenGui local UICorner = Instance.new("UICorner") UICorner.CornerRadius = UDim.new(1, 0) UICorner.Parent = FOVCircle local UIStroke = Instance.new("UIStroke") UIStroke.Color = Color3.fromRGB(33, 136, 255) UIStroke.Thickness = 1.5 UIStroke.Parent = FOVCircle -- Open/Close Floating Button (Mobile Friendly) local OpenButton = Instance.new("TextButton") OpenButton.Size = UDim2.new(0, 50, 0, 50) OpenButton.Position = UDim2.new(0.05, 0, 0.2, 0) OpenButton.BackgroundColor3 = Color3.fromRGB(24, 24, 28) OpenButton.TextColor3 = Color3.fromRGB(255, 255, 255) OpenButton.Text = "UI" OpenButton.TextSize = 14 OpenButton.Font = Enum.Font.GothamBold OpenButton.Active = true OpenButton.Draggable = true OpenButton.Parent = ScreenGui local OpenBtnCorner = Instance.new("UICorner") OpenBtnCorner.CornerRadius = UDim.new(1, 0) OpenBtnCorner.Parent = OpenButton local OpenBtnStroke = Instance.new("UIStroke") OpenBtnStroke.Color = Color3.fromRGB(0, 140, 255) OpenBtnStroke.Thickness = 2 OpenBtnStroke.Parent = OpenButton -- Main Frame (Clean, Modern Dark Aesthetic) local MainFrame = Instance.new("Frame") MainFrame.Size = UDim2.new(0, 240, 0, 455) MainFrame.Position = UDim2.new(0.15, 0, 0.1, 0) MainFrame.BackgroundColor3 = Color3.fromRGB(24, 24, 28) MainFrame.BorderSizePixel = 0 MainFrame.Active = true MainFrame.Draggable = true MainFrame.Parent = ScreenGui local MainCorner = Instance.new("UICorner") MainCorner.CornerRadius = UDim.new(0, 12) MainCorner.Parent = MainFrame local MainStroke = Instance.new("UIStroke") MainStroke.Color = Color3.fromRGB(45, 45, 55) MainStroke.Thickness = 1.5 MainStroke.Parent = MainFrame -- Title Bar Container local TitleContainer = Instance.new("Frame") TitleContainer.Size = UDim2.new(1, 0, 0, 45) TitleContainer.BackgroundTransparency = 1 TitleContainer.Parent = MainFrame local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, -20, 1, 0) Title.Position = UDim2.new(0, 15, 0, 0) Title.BackgroundTransparency = 1 Title.Text = "Aim Assistant" Title.TextColor3 = Color3.fromRGB(240, 240, 245) Title.TextSize = 15 Title.Font = Enum.Font.GothamBold Title.TextXAlignment = Enum.TextXAlignment.Left Title.Parent = TitleContainer local Subtitle = Instance.new("TextLabel") Subtitle.Size = UDim2.new(1, -20, 0, 15) Subtitle.Position = UDim2.new(0, 15, 0, 28) Subtitle.BackgroundTransparency = 1 Subtitle.Text = "Mobile & Touch Optimized" Subtitle.TextColor3 = Color3.fromRGB(110, 110, 125) Subtitle.TextSize = 11 Subtitle.Font = Enum.Font.GothamMedium Subtitle.TextXAlignment = Enum.TextXAlignment.Left Subtitle.Parent = TitleContainer -- Divider Line local Divider = Instance.new("Frame") Divider.Size = UDim2.new(1, -30, 0, 1) Divider.Position = UDim2.new(0, 15, 0, 50) Divider.BackgroundColor3 = Color3.fromRGB(40, 40, 50) Divider.BorderSizePixel = 0 Divider.Parent = MainFrame -- Helper function for sleek buttons local function createButton(posY, defaultText, initialOnState) local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, -30, 0, 34) btn.Position = UDim2.new(0, 15, 0, posY) btn.BackgroundColor3 = initialOnState and Color3.fromRGB(24, 45, 32) or Color3.fromRGB(32, 32, 38) btn.TextColor3 = Color3.fromRGB(210, 210, 220) btn.Text = defaultText btn.TextSize = 13 btn.Font = Enum.Font.GothamMedium btn.Parent = MainFrame local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 8) corner.Parent = btn local stroke = Instance.new("UIStroke") stroke.Color = Color3.fromRGB(50, 50, 62) stroke.Thickness = 1 stroke.Parent = btn return btn end local ToggleBtn = createButton(60, "Aimbot: OFF", Config.Enabled) local AimStateBtn = createButton(100, "Aim: OFF", false) local WallCheckBtn = createButton(140, "WallCheck: OFF", Config.WallCheck) local TeamCheckBtn = createButton(180, "TeamCheck: OFF", Config.TeamCheck) local TargetLockBtn = createButton(220, "Target Lock: OFF", Config.TargetLock) -- Helper function for Sliders local function createSlider(posY, titleText, minVal, maxVal, defaultVal) local container = Instance.new("Frame") container.Size = UDim2.new(1, -30, 0, 55) container.Position = UDim2.new(0, 15, 0, posY) container.BackgroundTransparency = 1 container.Parent = MainFrame local label = Instance.new("TextLabel") label.Size = UDim2.new(1, 0, 0, 16) label.BackgroundTransparency = 1 label.Text = titleText label.TextColor3 = Color3.fromRGB(170, 170, 185) label.TextSize = 12 label.Font = Enum.Font.GothamMedium label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = container local back = Instance.new("Frame") back.Size = UDim2.new(1, 0, 0, 8) back.Position = UDim2.new(0, 0, 0, 28) back.BackgroundColor3 = Color3.fromRGB(38, 38, 48) back.BorderSizePixel = 0 back.Parent = container local backCorner = Instance.new("UICorner") backCorner.CornerRadius = UDim.new(1, 0) backCorner.Parent = back local initialPct = (defaultVal - minVal) / (maxVal - minVal) local fill = Instance.new("Frame") fill.Size = UDim2.new(initialPct, 0, 1, 0) fill.BackgroundColor3 = Color3.fromRGB(33, 136, 255) fill.BorderSizePixel = 0 fill.Parent = back local fillCorner = Instance.new("UICorner") fillCorner.CornerRadius = UDim.new(1, 0) fillCorner.Parent = fill local handle = Instance.new("Frame") handle.Size = UDim2.new(0, 18, 0, 18) handle.AnchorPoint = Vector2.new(0.5, 0.5) handle.Position = UDim2.new(initialPct, 0, 0.5, 0) handle.BackgroundColor3 = Color3.fromRGB(33, 136, 255) handle.BorderSizePixel = 0 handle.Parent = back local handleCorner = Instance.new("UICorner") handleCorner.CornerRadius = UDim.new(1, 0) handleCorner.Parent = handle local bubble = Instance.new("Frame") bubble.Size = UDim2.new(0, 36, 0, 22) bubble.AnchorPoint = Vector2.new(0.5, 1) bubble.Position = UDim2.new(0.5, 0, -0.4, 0) bubble.BackgroundColor3 = Color3.fromRGB(24, 24, 28) bubble.BorderSizePixel = 0 bubble.Parent = handle local bubbleCorner = Instance.new("UICorner") bubbleCorner.CornerRadius = UDim.new(0, 5) bubbleCorner.Parent = bubble local bubbleText = Instance.new("TextLabel") bubbleText.Size = UDim2.new(1, 0, 1, 0) bubbleText.BackgroundTransparency = 1 bubbleText.Text = tostring(defaultVal) bubbleText.TextColor3 = Color3.fromRGB(255, 255, 255) bubbleText.TextSize = 11 bubbleText.Font = Enum.Font.GothamBold bubbleText.Parent = bubble return container, back, fill, handle, bubbleText end local SmoothContainer, SmoothBack, SmoothFill, SmoothHandle, SmoothBubble = createSlider(265, "Smoothness", 0, 100, Config.Smoothness) local FOVContainer, FOVBack, FOVFill, FOVHandle, FOVBubble = createSlider(335, "FOV Size", 50, 400, Config.FOV) -- Universal Drag Logic Setup Function local function setupSliderDrag(back, fill, handle, bubbleText, minVal, maxVal, callback) local dragging = false local function update(input) local touchPos = input.Position.X local absPos = back.AbsolutePosition.X local absSize = back.AbsoluteSize.X local percentage = math.clamp((touchPos - absPos) / absSize, 0, 1) local currentVal = math.floor(minVal + (percentage * (maxVal - minVal))) fill.Size = UDim2.new(percentage, 0, 1, 0) handle.Position = UDim2.new(percentage, 0, 0.5, 0) bubbleText.Text = tostring(currentVal) callback(currentVal) end back.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true MainFrame.Draggable = false update(input) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then if dragging then dragging = false MainFrame.Draggable = true end end end) UserInputService.InputChanged:Connect(function(input) if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then update(input) end end) end setupSliderDrag(SmoothBack, SmoothFill, SmoothHandle, SmoothBubble, 0, 100, function(val) Config.Smoothness = val end) setupSliderDrag(FOVBack, FOVFill, FOVHandle, FOVBubble, 50, 400, function(val) Config.FOV = val FOVCircle.Size = UDim2.new(0, Config.FOV * 2, 0, Config.FOV * 2) end) -- UI Interactivity & Toggles ToggleBtn.MouseButton1Click:Connect(function() Config.Enabled = not Config.Enabled ToggleBtn.Text = "Aimbot: " .. (Config.Enabled and "ON" or "OFF") ToggleBtn.BackgroundColor3 = Config.Enabled and Color3.fromRGB(24, 45, 32) or Color3.fromRGB(32, 32, 38) end) local isAiming = false AimStateBtn.MouseButton1Click:Connect(function() isAiming = not isAiming AimStateBtn.Text = "Aim: " .. (isAiming and "ON" or "OFF") AimStateBtn.BackgroundColor3 = isAiming and Color3.fromRGB(24, 45, 32) or Color3.fromRGB(32, 32, 38) end) WallCheckBtn.MouseButton1Click:Connect(function() Config.WallCheck = not Config.WallCheck WallCheckBtn.Text = "WallCheck: " .. (Config.WallCheck and "ON" or "OFF") WallCheckBtn.BackgroundColor3 = Config.WallCheck and Color3.fromRGB(24, 45, 32) or Color3.fromRGB(32, 32, 38) end) TeamCheckBtn.MouseButton1Click:Connect(function() Config.TeamCheck = not Config.TeamCheck TeamCheckBtn.Text = "TeamCheck: " .. (Config.TeamCheck and "ON" or "OFF") TeamCheckBtn.BackgroundColor3 = Config.TeamCheck and Color3.fromRGB(24, 45, 32) or Color3.fromRGB(32, 32, 38) end) TargetLockBtn.MouseButton1Click:Connect(function() Config.TargetLock = not Config.TargetLock TargetLockBtn.Text = "Target Lock: " .. (Config.TargetLock and "ON" or "OFF") TargetLockBtn.BackgroundColor3 = Config.TargetLock and Color3.fromRGB(24, 45, 32) or Color3.fromRGB(32, 32, 38) end) OpenButton.MouseButton1Click:Connect(function() MainFrame.Visible = not MainFrame.Visible end) UserInputService.InputBegan:Connect(function(input, gameProcessed) if input.KeyCode == Enum.KeyCode.Insert then MainFrame.Visible = not MainFrame.Visible end end) local function isTeamValid(targetPlayer) if not Config.TeamCheck then return true end if LocalPlayer.Team and targetPlayer.Team then return LocalPlayer.Team ~= targetPlayer.Team end return true end local function isVisible(targetPart) if not Config.WallCheck then return true end local origin = Camera.CFrame.Position local direction = (targetPart.Position - origin) local raycastParams = RaycastParams.new() raycastParams.FilterType = RaycastParams.FilterType.Exclude raycastParams.FilterDescendantsInstances = {LocalPlayer.Character, Camera} local result = workspace:Raycast(origin, direction, raycastParams) if result then local hitCharacter = result.Instance:FindFirstAncestorOfClass("Model") if hitCharacter and hitCharacter == targetPart.Parent then return true end return false end return true end local function getClosestTarget() local closestTarget = nil local shortestDistance = Config.FOV for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer and isTeamValid(player) and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then local humanoid = player.Character:FindFirstChildOfClass("Humanoid") if humanoid and humanoid.Health > 0 then local targetPart = player.Character:FindFirstChild("Head") if targetPart then local screenPoint, onScreen = Camera:WorldToScreenPoint(targetPart.Position) if onScreen then local touchLocation = UserInputService:GetMouseLocation() local distance = (Vector2.new(screenPoint.X, screenPoint.Y) - touchLocation).Magnitude if distance < shortestDistance then if isVisible(targetPart) then shortestDistance = distance closestTarget = targetPart end end end end end end end return closestTarget end -- Main Loop with Ultra-Smooth Exponential Slerp & Damping Matrix RunService.RenderStepped:Connect(function(dt) FOVCircle.Visible = Config.Enabled if not Config.Enabled or not isAiming then return end if Config.TargetLock and Config.CurrentTarget then local targetPlayer = Players:GetPlayerFromCharacter(Config.CurrentTarget.Parent) local humanoid = Config.CurrentTarget.Parent:FindFirstChildOfClass("Humanoid") if not humanoid or humanoid.Health <= 0 or not isVisible(Config.CurrentTarget) or (targetPlayer and not isTeamValid(targetPlayer)) then Config.CurrentTarget = nil end else Config.CurrentTarget = nil end if not Config.CurrentTarget then Config.CurrentTarget = getClosestTarget() end if Config.CurrentTarget then local targetCFrame = CFrame.new(Camera.CFrame.Position, Config.CurrentTarget.Position) if Config.Smoothness == 0 then Camera.CFrame = targetCFrame else -- Advanced mathematical smoothing factor optimized to eliminate all stutters local factor = math.clamp(Config.Smoothness, 1, 100) local speed = (101 - factor) * 0.35 local alpha = 1 - math.exp(-speed * dt * 20) -- Smooth spherical interpolation for fluid rotation Camera.CFrame = Camera.CFrame:Lerp(targetCFrame, math.clamp(alpha, 0, 1)) end end end)