-- // Configuration local Settings = { AimbotEnabled = true, TargetPart = "HumanoidRootPart", -- "Head", "LowerTorso", etc. -- Smoothness & FOV Smoothness = 0.15, -- Lower = Faster tracking, Higher = Smoother tracking FieldOfView = 130, -- FOV Circle Visuals ShowFovCircle = true, FovColor = Color3.fromRGB(255, 85, 85), FovThickness = 1.5, FovFilled = false } -- // 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 -- // State Variables local IsLocking = false local GuiVisible = true -- // Drawing API Setup (FOV Circle) local FovCircle = Drawing.new("Circle") FovCircle.Color = Settings.FovColor FovCircle.Thickness = Settings.FovThickness FovCircle.Filled = Settings.FovFilled FovCircle.Radius = Settings.FieldOfView FovCircle.Visible = Settings.ShowFovCircle -- // Screen GUI Setup local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "MobileAimbotGui" ScreenGui.Parent = CoreGui ScreenGui.ResetOnSpawn = false -- // Main Configuration Panel local MainFrame = Instance.new("Frame") local Title = Instance.new("TextLabel") local ToggleButton = Instance.new("TextButton") local InfoLabel = Instance.new("TextLabel") MainFrame.Name = "MainFrame" MainFrame.Parent = ScreenGui MainFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 35) MainFrame.Position = UDim2.new(0.05, 0, 0.25, 0) MainFrame.Size = UDim2.new(0, 200, 0, 140) MainFrame.Active = true MainFrame.Draggable = true -- Draggable config window Title.Name = "Title" Title.Parent = MainFrame Title.BackgroundColor3 = Color3.fromRGB(50, 50, 50) Title.Size = UDim2.new(1, 0, 0, 35) Title.Font = Enum.Font.SourceSansBold Title.Text = "MOBILE AIMBOT" Title.TextColor3 = Color3.fromRGB(255, 255, 255) Title.TextSize = 16 ToggleButton.Name = "ToggleButton" ToggleButton.Parent = MainFrame ToggleButton.BackgroundColor3 = Color3.fromRGB(0, 160, 80) ToggleButton.Position = UDim2.new(0.05, 0, 0.35, 0) ToggleButton.Size = UDim2.new(0.9, 0, 0, 40) ToggleButton.Font = Enum.Font.SourceSansBold ToggleButton.Text = "Aimbot: ON" ToggleButton.TextColor3 = Color3.fromRGB(255, 255, 255) ToggleButton.TextSize = 16 InfoLabel.Name = "InfoLabel" InfoLabel.Parent = MainFrame InfoLabel.BackgroundTransparency = 1 InfoLabel.Position = UDim2.new(0.05, 0, 0.7, 0) InfoLabel.Size = UDim2.new(0.9, 0, 0, 30) InfoLabel.Font = Enum.Font.SourceSans InfoLabel.Text = "Tap Lock Button to Toggle" InfoLabel.TextColor3 = Color3.fromRGB(200, 200, 200) InfoLabel.TextSize = 14 -- // Mobile Action Buttons local MobileControls = Instance.new("Frame") local LockButton = Instance.new("TextButton") local MenuToggle = Instance.new("TextButton") MobileControls.Name = "MobileControls" MobileControls.Parent = ScreenGui MobileControls.BackgroundTransparency = 1 MobileControls.Size = UDim2.new(1, 0, 1, 0) MobileControls.Selectable = false -- Aim Lock Button (Draggable & Toggleable) LockButton.Name = "LockButton" LockButton.Parent = MobileControls LockButton.BackgroundColor3 = Color3.fromRGB(255, 60, 60) LockButton.BackgroundTransparency = 0.3 LockButton.Position = UDim2.new(0.75, 0, 0.5, 0) LockButton.Size = UDim2.new(0, 75, 0, 75) LockButton.Font = Enum.Font.SourceSansBold LockButton.Text = "LOCK: OFF" LockButton.TextColor3 = Color3.fromRGB(255, 255, 255) LockButton.TextSize = 14 LockButton.ZIndex = 10 LockButton.Active = true LockButton.Draggable = true -- Employs Roblox's native UI dragging for mobile mechanics local UICorner = Instance.new("UICorner") UICorner.CornerRadius = UDim.new(0.5, 0) UICorner.Parent = LockButton -- Menu Visibility Button MenuToggle.Name = "MenuToggle" MenuToggle.Parent = MobileControls MenuToggle.BackgroundColor3 = Color3.fromRGB(0, 0, 0) MenuToggle.BackgroundTransparency = 0.4 MenuToggle.Position = UDim2.new(0.85, 0, 0.02, 0) MenuToggle.Size = UDim2.new(0, 60, 0, 30) MenuToggle.Font = Enum.Font.SourceSansBold MenuToggle.Text = "MENU" MenuToggle.TextColor3 = Color3.fromRGB(255, 255, 255) MenuToggle.TextSize = 14 local UICorner2 = Instance.new("UICorner") UICorner2.CornerRadius = UDim.new(0.2, 0) UICorner2.Parent = MenuToggle -- // Button Logic & Functionality -- Main Config Menu Toggle ToggleButton.MouseButton1Click:Connect(function() Settings.AimbotEnabled = not Settings.AimbotEnabled if Settings.AimbotEnabled then ToggleButton.Text = "Aimbot: ON" ToggleButton.BackgroundColor3 = Color3.fromRGB(0, 160, 80) FovCircle.Visible = Settings.ShowFovCircle LockButton.Visible = true else ToggleButton.Text = "Aimbot: OFF" ToggleButton.BackgroundColor3 = Color3.fromRGB(160, 0, 0) FovCircle.Visible = false LockButton.Visible = false IsLocking = false LockButton.Text = "LOCK: OFF" LockButton.BackgroundColor3 = Color3.fromRGB(255, 60, 60) end end) -- Menu Minimize Toggle MenuToggle.MouseButton1Click:Connect(function() GuiVisible = not GuiVisible MainFrame.Visible = GuiVisible end) -- Tap to Toggle Lock State (Instead of hold) LockButton.MouseButton1Click:Connect(function() if not Settings.AimbotEnabled then return end IsLocking = not IsLocking if IsLocking then LockButton.Text = "LOCK: ON" LockButton.BackgroundColor3 = Color3.fromRGB(0, 180, 255) -- Changes blue when active LockButton.BackgroundTransparency = 0.1 else LockButton.Text = "LOCK: OFF" LockButton.BackgroundColor3 = Color3.fromRGB(255, 60, 60) -- Turns back red when disabled LockButton.BackgroundTransparency = 0.3 end end) -- // Core Logic Functions local function GetClosestPlayer() local MaximumDistance = Settings.FieldOfView local TargetPlayer = nil for _, player in pairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild(Settings.TargetPart) and player.Character:FindFirstChildOfClass("Humanoid") then if player.Character:FindFirstChildOfClass("Humanoid").Health > 0 then local ScreenPosition, OnScreen = Camera:WorldToScreenPoint(player.Character[Settings.TargetPart].Position) if OnScreen then local ScreenCenter = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2) local Distance = (Vector2.new(ScreenPosition.X, ScreenPosition.Y) - ScreenCenter).Magnitude if Distance < MaximumDistance then MaximumDistance = Distance TargetPlayer = player end end end end end return TargetPlayer end -- // Main Tracking Loop RunService.RenderStepped:Connect(function() -- Center the FOV circle on the viewport local ScreenCenter = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2) FovCircle.Position = ScreenCenter if Settings.AimbotEnabled and IsLocking then local Target = GetClosestPlayer() if Target and Target.Character and Target.Character:FindFirstChild(Settings.TargetPart) then local TargetPosition = Target.Character[Settings.TargetPart].Position local CurrentCameraCFrame = Camera.CFrame -- Smooth camera tracking via Linear Interpolation (Lerp) local TargetCFrame = CFrame.new(CurrentCameraCFrame.Position, TargetPosition) Camera.CFrame = CurrentCameraCFrame:Lerp(TargetCFrame, Settings.Smoothness) end end end)