local p = game.Players.LocalPlayer local Camera = workspace.CurrentCamera local Mouse = p:GetMouse() local RunService = game:GetService("RunService") -- [[ SETTINGAN KHUSUS BATTLEGROUNDS ]] -- local Settings = { -- Naikkan ke 0.35 - 0.5 agar menempel ketat saat musuh Dash/Teleport Smoothness = 0.38, TargetPart = "HumanoidRootPart", -- "Head" jika ingin lock kepala DefaultWalkSpeed = 16, AntiStunEnabled = true } _G.Camlock = false local LockedTarget = nil local CamlockConnection = nil -- [[ ANTI STUN & ANTI SLOW ]] -- task.spawn(function() while true do task.wait(0.1) if Settings.AntiStunEnabled then local char = p.Character local hum = char and char:FindFirstChild("Humanoid") if hum then -- Menjaga agar tidak terkena efek slow berlebih if hum.WalkSpeed < Settings.DefaultWalkSpeed then hum.WalkSpeed = Settings.DefaultWalkSpeed end if hum.PlatformStand then hum.PlatformStand = false end if hum.Sit then hum.Sit = false end end end end end) -- [[ UI DESIGN ]] -- local ScreenGui = Instance.new("ScreenGui") pcall(function() ScreenGui.Parent = game:GetService("CoreGui") end) ScreenGui.Name = "ExosShadowLock" ScreenGui.ResetOnSpawn = false local MainFrame = Instance.new("Frame", ScreenGui) MainFrame.Size = UDim2.new(0, 160, 0, 42) MainFrame.Position = UDim2.new(0.5, -80, 0.82, 0) -- Pas di atas bar HP/Skill MainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 15) MainFrame.BorderSizePixel = 0 MainFrame.Active = true MainFrame.Draggable = true local UICorner = Instance.new("UICorner", MainFrame) UICorner.CornerRadius = UDim.new(0, 10) local UIStroke = Instance.new("UIStroke", MainFrame) UIStroke.Thickness = 2 UIStroke.Color = Color3.fromRGB(40, 40, 40) local TextLabel = Instance.new("TextLabel", MainFrame) TextLabel.Size = UDim2.new(1, 0, 1, 0) TextLabel.BackgroundTransparency = 1 TextLabel.Text = "CAMLOCK: READY" TextLabel.TextColor3 = Color3.fromRGB(200, 200, 200) TextLabel.Font = Enum.Font.GothamBold TextLabel.TextSize = 13 local TextButton = Instance.new("TextButton", MainFrame) TextButton.Size = UDim2.new(1, 0, 1, 0) TextButton.BackgroundTransparency = 1 TextButton.Text = "" -- [[ TARGETING LOGIC ]] -- local function getClosestPlayer() local Target = nil local Dist = math.huge for _, v in pairs(game.Players:GetPlayers()) do if v ~= p and v.Character and v.Character:FindFirstChild(Settings.TargetPart) then local hum = v.Character:FindFirstChild("Humanoid") if hum and hum.Health > 0 then local Pos, OnScreen = Camera:WorldToScreenPoint(v.Character[Settings.TargetPart].Position) if OnScreen then local Mag = (Vector2.new(Mouse.X, Mouse.Y) - Vector2.new(Pos.X, Pos.Y)).Magnitude if Mag < Dist then Dist = Mag Target = v.Character[Settings.TargetPart] end end end end end return Target end -- [[ TOGGLE CAMLOCK ]] -- TextButton.MouseButton1Click:Connect(function() _G.Camlock = not _G.Camlock if _G.Camlock then LockedTarget = getClosestPlayer() if LockedTarget then TextLabel.Text = "LOCKED: " .. LockedTarget.Parent.Name:upper() TextLabel.TextColor3 = Color3.fromRGB(255, 50, 50) -- Merah saat lock UIStroke.Color = Color3.fromRGB(255, 50, 50) -- Gunakan RenderStepped untuk sinkronisasi kamera terbaik CamlockConnection = RunService.RenderStepped:Connect(function() if LockedTarget and LockedTarget.Parent and LockedTarget.Parent:FindFirstChild("Humanoid") and LockedTarget.Parent.Humanoid.Health > 0 then -- Prediksi posisi sedikit ke depan agar tidak ketinggalan (Offset) local TargetPos = LockedTarget.Position local LookAt = CFrame.new(Camera.CFrame.Position, TargetPos) -- Lerp lebih agresif Camera.CFrame = Camera.CFrame:Lerp(LookAt, Settings.Smoothness) else _G.Camlock = false TextLabel.Text = "TARGET LOST" TextLabel.TextColor3 = Color3.fromRGB(255, 255, 255) UIStroke.Color = Color3.fromRGB(40, 40, 40) if CamlockConnection then CamlockConnection:Disconnect() end end end) else _G.Camlock = false end else TextLabel.Text = "CAMLOCK: READY" TextLabel.TextColor3 = Color3.fromRGB(200, 200, 200) UIStroke.Color = Color3.fromRGB(40, 40, 40) if CamlockConnection then CamlockConnection:Disconnect() end LockedTarget = nil end end)