-- [[ 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 ]] local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local player = Players.LocalPlayer local camera = workspace.CurrentCamera local locked = false local infiniteJump = false local target = nil local lockRange = 250 -- GUI local gui = Instance.new("ScreenGui") gui.Name = "LockOnControls" gui.ResetOnSpawn = false gui.Parent = player:WaitForChild("PlayerGui") -- Main box local box = Instance.new("Frame") box.Size = UDim2.fromOffset(230, 145) box.Position = UDim2.new(0, 25, 0.5, -70) box.BackgroundTransparency = 0.05 box.Parent = gui local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 12) corner.Parent = box local title = Instance.new("TextLabel") title.Size = UDim2.new(1, -40, 0, 35) title.Text = "🎯 Lock-On" title.TextScaled = true title.BackgroundTransparency = 1 title.Parent = box -- Close button local close = Instance.new("TextButton") close.Size = UDim2.fromOffset(30, 30) close.Position = UDim2.new(1, -35, 0, 5) close.Text = "X" close.TextScaled = true close.Parent = box local function makeButton(text, y) local b = Instance.new("TextButton") b.Size = UDim2.new(1, -20, 0, 40) b.Position = UDim2.new(0, 10, 0, y) b.Text = text b.TextScaled = true b.Parent = box local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, 8) c.Parent = b return b end local lockButton = makeButton("🎯 Lock-On: OFF", 45) local jumpButton = makeButton("♾️ Infinite Jump: OFF", 90) -- Small gun circle local openButton = Instance.new("TextButton") openButton.Size = UDim2.fromOffset(60, 60) openButton.Position = UDim2.new(0, 25, 1, -90) openButton.Text = "🔫" openButton.TextScaled = true openButton.Visible = false openButton.Parent = gui local circle = Instance.new("UICorner") circle.CornerRadius = UDim.new(1, 0) circle.Parent = openButton -- Close/reopen close.MouseButton1Click:Connect(function() box.Visible = false openButton.Visible = true end) openButton.MouseButton1Click:Connect(function() box.Visible = true openButton.Visible = false end) -- Find closest target local function getClosestTarget() local folder = workspace:FindFirstChild("Targets") if not folder then return nil end local closest = nil local closestDistance = lockRange for _, object in ipairs(folder:GetDescendants()) do if object:IsA("BasePart") then local screenPos, visible = camera:WorldToViewportPoint(object.Position) if visible then local center = Vector2.new( camera.ViewportSize.X / 2, camera.ViewportSize.Y / 2 ) local distance = ( Vector2.new(screenPos.X, screenPos.Y) - center ).Magnitude if distance < closestDistance then closestDistance = distance closest = object end end end end return closest end -- Lock-on lockButton.MouseButton1Click:Connect(function() locked = not locked if locked then target = getClosestTarget() end lockButton.Text = "🎯 Lock-On: " .. (locked and "ON" or "OFF") end) RunService.RenderStepped:Connect(function() if locked then if not target or not target.Parent then target = getClosestTarget() end if target then camera.CFrame = CFrame.lookAt( camera.CFrame.Position, target.Position ) end end end) -- Infinite jump jumpButton.MouseButton1Click:Connect(function() infiniteJump = not infiniteJump jumpButton.Text = "♾️ Infinite Jump: " .. (infiniteJump and "ON" or "OFF") end) UserInputService.JumpRequest:Connect(function() if infiniteJump then local character = player.Character local humanoid = character and character:FindFirstChildOfClass("Humanoid") if humanoid and humanoid.Health > 0 then humanoid:ChangeState(Enum.HumanoidStateType.Jumping) end end end)