-- Services local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") -- Local Player local LocalPlayer = Players.LocalPlayer -- Camlock Toggle local camlockEnabled = false local targetPlayer = nil -- GUI Setup local ScreenGui = Instance.new("ScreenGui", LocalPlayer.PlayerGui) local MainFrame = Instance.new("Frame", ScreenGui) MainFrame.Size = UDim2.new(0, 200, 0, 100) MainFrame.Position = UDim2.new(0.5, -100, 0, 0) MainFrame.Visible = true local ToggleButton = Instance.new("TextButton", MainFrame) ToggleButton.Text = "Enable Camlock" ToggleButton.Size = UDim2.new(1, 0, 0.5, 0) ToggleButton.Position = UDim2.new(0, 0, 0, 0) local CloseButton = Instance.new("TextButton", MainFrame) CloseButton.Text = "Close GUI" CloseButton.Size = UDim2.new(1, 0, 0.5, 0) CloseButton.Position = UDim2.new(0, 0, 0.5, 0) -- Functions local function isTeamMate(player) -- Implement team check logic here, return true if player is teammate return false end local function isVisible(player) -- Implement wall check logic here, return true if player is visible return true end local function findNearestTarget() local nearestDistance = math.huge local nearestPlayer = nil for _, player in pairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild("HumanoidRootPart") and not isTeamMate(player) then local distance = (LocalPlayer.Character.HumanoidRootPart.Position - player.Character.HumanoidRootPart.Position).magnitude if distance < nearestDistance and isVisible(player) then nearestDistance = distance nearestPlayer = player end end end return nearestPlayer end local function onToggle() camlockEnabled = not camlockEnabled ToggleButton.Text = camlockEnabled and "Disable Camlock" or "Enable Camlock" end local function onClose() MainFrame.Visible = not MainFrame.Visible end local function camlock() if camlockEnabled and targetPlayer and targetPlayer.Character and targetPlayer.Character:FindFirstChild("HumanoidRootPart") then -- Adjust the camera CFrame to focus on the target player local camera = workspace.CurrentCamera local character = targetPlayer.Character local humanoidRootPart = character:FindFirstChild("HumanoidRootPart") if humanoidRootPart then camera.CFrame = CFrame.new(camera.CFrame.Position, humanoidRootPart.Position) end end end -- Event Connections ToggleButton.MouseButton1Click:Connect(onToggle) CloseButton.MouseButton1Click:Connect(onClose) RunService.RenderStepped:Connect(camlock) -- Main Loop RunService.RenderStepped:Connect(function() if camlockEnabled then targetPlayer = findNearestTarget() else targetPlayer = nil end end)