Carkzowk

Op

Mar 9th, 2025
25
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.74 KB | None | 0 0
  1. -- Services
  2. local Players = game:GetService("Players")
  3. local RunService = game:GetService("RunService")
  4. local UserInputService = game:GetService("UserInputService")
  5.  
  6. -- Local Player
  7. local LocalPlayer = Players.LocalPlayer
  8.  
  9. -- Camlock Toggle
  10. local camlockEnabled = false
  11. local targetPlayer = nil
  12.  
  13. -- GUI Setup
  14. local ScreenGui = Instance.new("ScreenGui", LocalPlayer.PlayerGui)
  15. local MainFrame = Instance.new("Frame", ScreenGui)
  16. MainFrame.Size = UDim2.new(0, 200, 0, 100)
  17. MainFrame.Position = UDim2.new(0, 10, 0, 10) -- Top left corner
  18. MainFrame.Visible = true
  19. MainFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
  20. MainFrame.BorderSizePixel = 0
  21.  
  22. -- Make GUI Draggable
  23. local dragging = false
  24. local dragStart, startPos
  25.  
  26. MainFrame.InputBegan:Connect(function(input)
  27. if input.UserInputType == Enum.UserInputType.MouseButton1 then
  28. dragging = true
  29. dragStart = input.Position
  30. startPos = MainFrame.Position
  31. input.Changed:Connect(function()
  32. if input.UserInputState == Enum.UserInputState.End then
  33. dragging = false
  34. end
  35. end)
  36. end
  37. end)
  38.  
  39. UserInputService.InputChanged:Connect(function(input)
  40. if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
  41. local delta = input.Position - dragStart
  42. MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
  43. end
  44. end)
  45.  
  46. -- Toggle Button
  47. local ToggleButton = Instance.new("TextButton", MainFrame)
  48. ToggleButton.Text = "Enable Camlock"
  49. ToggleButton.Size = UDim2.new(1, 0, 0.5, 0)
  50. ToggleButton.Position = UDim2.new(0, 0, 0, 0)
  51. ToggleButton.BackgroundColor3 = Color3.fromRGB(0, 200, 0)
  52.  
  53. -- Open/Close GUI Toggle
  54. local GuiToggleKey = Enum.KeyCode.P -- Change this key if desired
  55. UserInputService.InputBegan:Connect(function(input)
  56. if input.KeyCode == GuiToggleKey then
  57. MainFrame.Visible = not MainFrame.Visible
  58. end
  59. end)
  60.  
  61. -- Functions
  62. local function isTeamMate(player)
  63. return false -- Implement team check logic here
  64. end
  65.  
  66. local function isVisible(player)
  67. return true -- Implement wall check logic here
  68. end
  69.  
  70. local function findNearestTarget()
  71. local nearestDistance = math.huge
  72. local nearestPlayer = nil
  73. for _, player in pairs(Players:GetPlayers()) do
  74. if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild("HumanoidRootPart") and not isTeamMate(player) then
  75. local distance = (LocalPlayer.Character.HumanoidRootPart.Position - player.Character.HumanoidRootPart.Position).magnitude
  76. if distance < nearestDistance and isVisible(player) then
  77. nearestDistance = distance
  78. nearestPlayer = player
  79. end
  80. end
  81. end
  82. return nearestPlayer
  83. end
  84.  
  85. local function onToggle()
  86. camlockEnabled = not camlockEnabled
  87. ToggleButton.Text = camlockEnabled and "Disable Camlock" or "Enable Camlock"
  88. ToggleButton.BackgroundColor3 = camlockEnabled and Color3.fromRGB(200, 0, 0) or Color3.fromRGB(0, 200, 0)
  89. end
  90.  
  91. local function camlock()
  92. if camlockEnabled and targetPlayer and targetPlayer.Character and targetPlayer.Character:FindFirstChild("HumanoidRootPart") then
  93. local camera = workspace.CurrentCamera
  94. local humanoidRootPart = targetPlayer.Character.HumanoidRootPart
  95. camera.CFrame = CFrame.new(camera.CFrame.Position, humanoidRootPart.Position)
  96. end
  97. end
  98.  
  99. -- Event Connections
  100. ToggleButton.MouseButton1Click:Connect(onToggle)
  101. RunService.RenderStepped:Connect(camlock)
  102.  
  103. -- Main Loop
  104. RunService.RenderStepped:Connect(function()
  105. if camlockEnabled then
  106. targetPlayer = findNearestTarget()
  107. else
  108. targetPlayer = nil
  109. end
  110. end)
Advertisement
Add Comment
Please, Sign In to add comment