local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local Camera = workspace.CurrentCamera local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local Settings = { Aimbot = false, ESP = true, Tracers = true, TeamCheck = true, FOV = 150, AimPart = "Head", Smoothness = 5, ShowFOV = true } local ScreenGui = Instance.new("ScreenGui", LocalPlayer:WaitForChild("PlayerGui")) ScreenGui.Name = "BC9_V2" ScreenGui.ResetOnSpawn = false local Main = Instance.new("Frame", ScreenGui) Main.Size = UDim2.new(0, 240, 0, 390) Main.Position = UDim2.new(0.5, -120, 0.5, -195) Main.BackgroundColor3 = Color3.fromRGB(12, 12, 12) Main.BorderSizePixel = 0 Main.Active = true Main.Draggable = true Instance.new("UICorner", Main).CornerRadius = UDim.new(0, 8) local Stroke = Instance.new("UIStroke", Main) Stroke.Color = Color3.fromRGB(75, 0, 190) Stroke.Thickness = 1.8 local Title = Instance.new("TextLabel", Main) Title.Size = UDim2.new(1, 0, 0, 40) Title.BackgroundTransparency = 1 Title.Text = " BC9 V2" Title.TextColor3 = Color3.fromRGB(255, 255, 255) Title.TextSize = 14 Title.Font = Enum.Font.RobotoMono Title.TextXAlignment = "Left" local StatusBtn = Instance.new("TextButton", Main) StatusBtn.Size = UDim2.new(0, 18, 0, 18) StatusBtn.Position = UDim2.new(1, -25, 0, 11) StatusBtn.BackgroundColor3 = Color3.fromRGB(220, 40, 40) StatusBtn.Text = "" Instance.new("UICorner", StatusBtn).CornerRadius = UDim.new(1, 0) local Container = Instance.new("ScrollingFrame", Main) Container.Size = UDim2.new(1, -20, 1, -55) Container.Position = UDim2.new(0, 10, 0, 45) Container.BackgroundTransparency = 1 Container.ScrollBarThickness = 0 Container.CanvasSize = UDim2.new(0, 0, 0, 0) Instance.new("UIListLayout", Container).Padding = UDim.new(0, 6) local Minimized = false StatusBtn.MouseButton1Click:Connect(function() Minimized = not Minimized Container.Visible = not Minimized Main.Size = Minimized and UDim2.new(0, 240, 0, 40) or UDim2.new(0, 240, 0, 390) StatusBtn.BackgroundColor3 = Minimized and Color3.fromRGB(40, 220, 40) or Color3.fromRGB(220, 40, 40) end) local function NewToggle(name, key) local Btn = Instance.new("TextButton", Container) Btn.Size = UDim2.new(1, -5, 0, 30) Btn.BackgroundColor3 = Settings[key] and Color3.fromRGB(75, 0, 190) or Color3.fromRGB(25, 25, 25) Btn.Text = name .. ": " .. (Settings[key] and "ON" or "OFF") Btn.TextColor3 = Color3.fromRGB(255, 255, 255) Btn.Font = Enum.Font.SourceSans Btn.TextSize = 14 Instance.new("UICorner", Btn) Btn.MouseButton1Click:Connect(function() Settings[key] = not Settings[key] Btn.Text = name .. ": " .. (Settings[key] and "ON" or "OFF") Btn.BackgroundColor3 = Settings[key] and Color3.fromRGB(75, 0, 190) or Color3.fromRGB(25, 25, 25) end) end local function NewSlider(name, min, max, key) local SFrame = Instance.new("Frame", Container) SFrame.Size = UDim2.new(1, -5, 0, 45) SFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 20) Instance.new("UICorner", SFrame) local Label = Instance.new("TextLabel", SFrame) Label.Size = UDim2.new(1, 0, 0, 20) Label.Position = UDim2.new(0, 8, 0, 2) Label.BackgroundTransparency = 1 Label.Text = name .. ": " .. Settings[key] Label.TextColor3 = Color3.fromRGB(200, 200, 200) Label.TextSize = 12 Label.Font = Enum.Font.SourceSans Label.TextXAlignment = "Left" local SliderBar = Instance.new("Frame", SFrame) SliderBar.Size = UDim2.new(1, -20, 0, 4) SliderBar.Position = UDim2.new(0, 10, 0, 32) SliderBar.BackgroundColor3 = Color3.fromRGB(40, 40, 40) SliderBar.BorderSizePixel = 0 local Fill = Instance.new("Frame", SliderBar) Fill.Size = UDim2.new((Settings[key] - min) / (max - min), 0, 1, 0) Fill.BackgroundColor3 = Color3.fromRGB(75, 0, 190) Fill.BorderSizePixel = 0 local IsDragging = false local function Update() local mPos = UserInputService:GetMouseLocation().X local rPos = SliderBar.AbsolutePosition.X local size = SliderBar.AbsoluteSize.X local raw = math.clamp((mPos - rPos) / size, 0, 1) local val = math.floor(min + (max - min) * raw) Settings[key] = val Label.Text = name .. ": " .. val Fill.Size = UDim2.new(raw, 0, 1, 0) end SliderBar.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then IsDragging = true end end) UserInputService.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then IsDragging = false end end) UserInputService.InputChanged:Connect(function(i) if IsDragging and i.UserInputType == Enum.UserInputType.MouseMovement then Update() end end) end local Tracers = {} local function Visuals() for _, p in pairs(Players:GetPlayers()) do if p == LocalPlayer then continue end local char = p.Character local root = char and char:FindFirstChild("HumanoidRootPart") local tracer = Tracers[p] or Drawing.new("Line") Tracers[p] = tracer if char and root then local pos, vis = Camera:WorldToViewportPoint(root.Position) local isF = LocalPlayer:IsFriendsWith(p.UserId) local isT = Settings.TeamCheck and p.Team == LocalPlayer.Team local col = isF and Color3.fromRGB(0, 255, 0) or Color3.fromRGB(255, 0, 0) local esp = char:FindFirstChild("BC9_ESP") or Instance.new("Highlight", char) esp.Name = "BC9_ESP" if (isT and not isF) then esp.Enabled = false tracer.Visible = false else esp.Enabled = Settings.ESP esp.OutlineColor, esp.FillColor = col, col esp.FillTransparency = 0.6 tracer.Visible = Settings.Tracers and vis tracer.From, tracer.To, tracer.Color = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y), Vector2.new(pos.X, pos.Y), col end else if char and char:FindFirstChild("BC9_ESP") then char.BC9_ESP.Enabled = false end tracer.Visible = false end end end local FOV = Drawing.new("Circle") FOV.Thickness = 1 FOV.Color = Color3.fromRGB(75, 0, 190) FOV.Filled = false -- Fix: This ensures it is a ring, not a solid circle FOV.Transparency = 1 local function Target() local t, d = nil, Settings.FOV for _, v in pairs(Players:GetPlayers()) do if v ~= LocalPlayer and v.Character and v.Character:FindFirstChild(Settings.AimPart) then if Settings.TeamCheck and v.Team == LocalPlayer.Team then continue end local p, vis = Camera:WorldToScreenPoint(v.Character[Settings.AimPart].Position) if vis then local mag = (Vector2.new(p.X, p.Y) - Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y/2)).Magnitude if mag < d then d = mag t = v end end end end return t end NewToggle("Aimbot", "Aimbot") NewToggle("ESP", "ESP") NewToggle("Tracers", "Tracers") NewToggle("Team Check", "TeamCheck") NewToggle("Show FOV", "ShowFOV") NewSlider("FOV Range", 30, 800, "FOV") NewSlider("Smoothness", 1, 20, "Smoothness") RunService.RenderStepped:Connect(function() Visuals() FOV.Visible, FOV.Radius = Settings.ShowFOV, Settings.FOV FOV.Position = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y/2) if Settings.Aimbot then local t = Target() if t and t.Character and t.Character:FindFirstChild(Settings.AimPart) then Camera.CFrame = Camera.CFrame:Lerp(CFrame.lookAt(Camera.CFrame.Position, t.Character[Settings.AimPart].Position), 1/Settings.Smoothness) end end end)