local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local Camera = workspace.CurrentCamera local LocalPlayer = Players.LocalPlayer repeat task.wait() until LocalPlayer and LocalPlayer.Character -- ===== CONFIG AIMBOT ===== local AimbotEnabled = false local MaxDistance = 250 local AimPart = "Head" local FovRadius = 0 -- ===== CONFIG ESP ===== local EspEnabled = false local EspObjects = {} -- ===== CORES TEMA ===== local C = { bg = Color3.fromRGB(8, 12, 8), bg2 = Color3.fromRGB(12, 20, 12), bg3 = Color3.fromRGB(18, 30, 18), green = Color3.fromRGB(0, 255, 100), greenD = Color3.fromRGB(0, 180, 60), greenD2 = Color3.fromRGB(0, 100, 30), greenG = Color3.fromRGB(0, 255, 120), text = Color3.fromRGB(180, 255, 180), textD = Color3.fromRGB(60, 120, 60), red = Color3.fromRGB(255, 40, 40), } -- ===== TWEEN ===== local function tw(obj, props, dur, ease) local ti = TweenInfo.new(dur or 0.3, ease or Enum.EasingStyle.Quad, Enum.EasingDirection.Out) local t = TweenService:Create(obj, ti, props) t:Play() return t end -- ===== MOBILE DETECT ===== local isMobile = UserInputService.TouchEnabled and not UserInputService.KeyboardEnabled local dw = isMobile and 220 or 190 local dh = isMobile and 270 or 240 -- ================= GUI PRINCIPAL ================= local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "AimbotGUI" ScreenGui.ResetOnSpawn = false ScreenGui.Parent = game.CoreGui ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling local Frame = Instance.new("Frame", ScreenGui) Frame.Size = UDim2.new(0, dw, 0, dh) Frame.Position = UDim2.new(0.5, -dw/2, 0.5, -dh/2) Frame.BackgroundColor3 = C.bg Frame.BorderSizePixel = 0 Frame.ClipsDescendants = true Frame.Active = true Instance.new("UICorner", Frame).CornerRadius = UDim.new(0, 16) local FrameStroke = Instance.new("UIStroke", Frame) FrameStroke.Thickness = 1.5 FrameStroke.Color = C.green FrameStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border -- ===== TOP BAR ===== local TopBar = Instance.new("Frame", Frame) TopBar.Size = UDim2.new(1, 0, 0, 36) TopBar.BackgroundColor3 = C.bg2 TopBar.BorderSizePixel = 0 Instance.new("UICorner", TopBar).CornerRadius = UDim.new(0, 16) local Div = Instance.new("Frame", TopBar) Div.Size = UDim2.new(1, -20, 0, 1) Div.Position = UDim2.new(0, 10, 1, -1) Div.BackgroundColor3 = C.greenD2 Div.BorderSizePixel = 0 local Title = Instance.new("TextLabel", TopBar) Title.Size = UDim2.new(1, -50, 1, 0) Title.Position = UDim2.new(0, 12, 0, 0) Title.BackgroundTransparency = 1 Title.Text = "0101101" Title.Font = Enum.Font.Code Title.TextSize = isMobile and 14 or 13 Title.TextColor3 = C.green Title.TextXAlignment = Enum.TextXAlignment.Left -- ===== EFEITO BINÁRIO NO TÍTULO ===== spawn(function() while true do task.wait(0.15) local str = "" for i = 1, 12 do if math.random() > 0.35 then str = str .. math.random(0, 1) else str = str .. math.random(0, 1) end end Title.Text = "> " .. str end end) -- ===== BOTÃO MINIMIZAR ===== local MinBtn = Instance.new("TextButton", TopBar) MinBtn.Size = UDim2.new(0, 26, 0, 26) MinBtn.Position = UDim2.new(1, -32, 0, 5) MinBtn.Text = "X" MinBtn.Font = Enum.Font.GothamBold MinBtn.TextSize = 18 MinBtn.TextColor3 = C.green MinBtn.BackgroundColor3 = C.bg3 MinBtn.BackgroundTransparency = 0.3 MinBtn.BorderSizePixel = 0 MinBtn.AutoButtonColor = false Instance.new("UICorner", MinBtn).CornerRadius = UDim.new(1, 0) -- ===== BOLA MINIMIZADA ===== local Ball = Instance.new("TextButton", ScreenGui) Ball.Size = UDim2.new(0, 50, 0, 50) Ball.Position = Frame.Position Ball.BackgroundColor3 = C.bg2 Ball.BorderSizePixel = 0 Ball.Visible = false Ball.Text = "" Ball.AutoButtonColor = false Ball.ZIndex = 999 Instance.new("UICorner", Ball).CornerRadius = UDim.new(1, 0) local BallStroke = Instance.new("UIStroke", Ball) BallStroke.Thickness = 2 BallStroke.Color = C.green BallStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border local BallLabel = Instance.new("TextLabel", Ball) BallLabel.Size = UDim2.new(1, 0, 1, 0) BallLabel.BackgroundTransparency = 1 BallLabel.Text = "Z" BallLabel.Font = Enum.Font.GothamBold BallLabel.TextSize = 24 BallLabel.TextColor3 = C.green BallLabel.TextXAlignment = Enum.TextXAlignment.Center -- ================= CONTEÚDO ================= local Content = Instance.new("Frame", Frame) Content.Size = UDim2.new(1, -12, 1, -44) Content.Position = UDim2.new(0, 6, 0, 40) Content.BackgroundTransparency = 1 Content.BorderSizePixel = 0 local Layout = Instance.new("UIListLayout", Content) Layout.Padding = UDim.new(0, 8) Layout.HorizontalAlignment = Enum.HorizontalAlignment.Center Layout.SortOrder = Enum.SortOrder.LayoutOrder -- ===== HELPER BOTÃO ===== local function makeBtn(text, color, order, fn) local b = Instance.new("TextButton") b.Size = UDim2.new(1, -4, 0, isMobile and 38 or 32) b.BackgroundColor3 = color b.BackgroundTransparency = 0.15 b.BorderSizePixel = 0 b.AutoButtonColor = false b.Text = "" b.LayoutOrder = order or 1 b.Parent = Content Instance.new("UICorner", b).CornerRadius = UDim.new(0, 10) local st = Instance.new("UIStroke", b) st.Thickness = 1 st.Color = C.green st.Transparency = 0.5 st.ApplyStrokeMode = Enum.ApplyStrokeMode.Border local l = Instance.new("TextLabel", b) l.Size = UDim2.new(1, 0, 1, 0) l.BackgroundTransparency = 1 l.Text = text l.Font = Enum.Font.Code l.TextSize = isMobile and 13 or 12 l.TextColor3 = C.text l.TextXAlignment = Enum.TextXAlignment.Center b.MouseButton1Click:Connect(function() if fn then fn(b, l) end end) return b, l end -- ===== HELPER SLIDER ===== local function makeSlider(label, init, mn, mx, order, fn) local con = Instance.new("Frame", Content) con.Size = UDim2.new(1, -4, 0, isMobile and 46 or 38) con.BackgroundColor3 = C.bg3 con.BackgroundTransparency = 0.2 con.BorderSizePixel = 0 con.LayoutOrder = order or 1 Instance.new("UICorner", con).CornerRadius = UDim.new(0, 10) local sst = Instance.new("UIStroke", con) sst.Thickness = 1 sst.Color = C.green sst.Transparency = 0.6 sst.ApplyStrokeMode = Enum.ApplyStrokeMode.Border local sl = Instance.new("TextLabel", con) sl.Size = UDim2.new(1, -16, 0, 16) sl.Position = UDim2.new(0, 8, 0, 3) sl.BackgroundTransparency = 1 sl.Text = label .. ": " .. init sl.Font = Enum.Font.Code sl.TextSize = isMobile and 11 or 10 sl.TextColor3 = C.textD sl.TextXAlignment = Enum.TextXAlignment.Left local sbg = Instance.new("Frame", con) sbg.Size = UDim2.new(1, -16, 0, 6) sbg.Position = UDim2.new(0, 8, 0, isMobile and 28 or 22) sbg.BackgroundColor3 = C.bg sbg.BorderSizePixel = 0 Instance.new("UICorner", sbg).CornerRadius = UDim.new(1, 0) local sf = Instance.new("Frame", sbg) local fa = (mx - mn) > 0 and (init - mn) / (mx - mn) or 0 sf.Size = UDim2.new(fa, 0, 1, 0) sf.BackgroundColor3 = C.green sf.BorderSizePixel = 0 Instance.new("UICorner", sf).CornerRadius = UDim.new(1, 0) local knob = Instance.new("Frame", con) knob.Size = UDim2.new(0, 14, 0, 14) knob.Position = UDim2.new(fa, -7, 0, isMobile and 24 or 18) knob.BackgroundColor3 = C.greenG knob.BorderSizePixel = 0 knob.ZIndex = 5 Instance.new("UICorner", knob).CornerRadius = UDim.new(1, 0) local ik = Instance.new("Frame", knob) ik.Size = UDim2.new(0, 6, 0, 6) ik.Position = UDim2.new(0.5, -3, 0.5, -3) ik.BackgroundColor3 = C.bg ik.BorderSizePixel = 0 Instance.new("UICorner", ik).CornerRadius = UDim.new(1, 0) local val = init local sliderDragging = false local function upd(mx) local ap = sbg.AbsolutePosition.X local as = sbg.AbsoluteSize.X if as <= 0 then return end local r = math.clamp((mx - ap) / as, 0, 1) val = math.floor(r * (mx - mn) + mn) val = math.clamp(val, mn, mx) sf.Size = UDim2.new(r, 0, 1, 0) sl.Text = label .. ": " .. val knob.Position = UDim2.new(r, -7, 0, isMobile and 24 or 18) if fn then fn(val) end end con.InputBegan:Connect(function(inp) if inp.UserInputType == Enum.UserInputType.MouseButton1 or inp.UserInputType == Enum.UserInputType.Touch then sliderDragging = true upd(inp.Position.X) end end) knob.InputBegan:Connect(function(inp) if inp.UserInputType == Enum.UserInputType.MouseButton1 or inp.UserInputType == Enum.UserInputType.Touch then sliderDragging = true end end) UserInputService.InputChanged:Connect(function(inp) if sliderDragging and (inp.UserInputType == Enum.UserInputType.MouseMovement or inp.UserInputType == Enum.UserInputType.Touch) then upd(UserInputService:GetMouseLocation().X) end end) UserInputService.InputEnded:Connect(function(inp) if sliderDragging and (inp.UserInputType == Enum.UserInputType.MouseButton1 or inp.UserInputType == Enum.UserInputType.Touch) then sliderDragging = false end end) return con end -- ===== CRIAR BOTÕES ===== makeBtn("[ AIMBOT ] OFF", C.red, 1, function(b, l) AimbotEnabled = not AimbotEnabled l.Text = "[ AIMBOT ] " .. (AimbotEnabled and "ON" or "OFF") local cor = AimbotEnabled and C.greenD or C.red tw(b, {BackgroundColor3 = cor}, 0.3) end) makeBtn("[ TARGET ] Head", C.greenD2, 2, function(b, l) if AimPart == "Head" then AimPart = "HumanoidRootPart" l.Text = "[ TARGET ] Torso" else AimPart = "Head" l.Text = "[ TARGET ] Head" end end) -- Slider FOV: 0 a 100 COM TRAVA ABSOLUTA makeSlider("FOV", 0, 0, 100, 3, function(v) FovRadius = math.min(v, 100) end) makeBtn("[ ESP ] OFF", C.red, 4, function(b, l) EspEnabled = not EspEnabled l.Text = "[ ESP ] " .. (EspEnabled and "ON" or "OFF") local cor = EspEnabled and C.greenD or C.red tw(b, {BackgroundColor3 = cor}, 0.3) for _, obj in pairs(EspObjects) do if obj.box then obj.box.Visible = EspEnabled end if obj.line then obj.line.Visible = EspEnabled end end end) -- ===== CRÉDITO ===== local Credit = Instance.new("TextLabel", Frame) Credit.Size = UDim2.new(1, 0, 0, 26) Credit.Position = UDim2.new(0, 0, 1, -26) Credit.BackgroundColor3 = C.bg2 Credit.BackgroundTransparency = 0.5 Credit.BorderSizePixel = 0 Credit.Text = "Zelan" Credit.Font = Enum.Font.Code Credit.TextSize = 11 Credit.TextColor3 = C.textD Credit.TextXAlignment = Enum.TextXAlignment.Center Instance.new("UICorner", Credit).CornerRadius = UDim.new(0, 16) -- ===== DRAG SYSTEM ===== local dragging = false local dragObj = nil local dragOffset = Vector2.new(0, 0) local dragStartPos = UDim2.new(0, 0, 0, 0) TopBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragObj = Frame dragOffset = input.Position dragStartPos = Frame.Position end end) Ball.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragObj = Ball dragOffset = input.Position dragStartPos = Ball.Position end end) UserInputService.InputChanged:Connect(function(input) if dragging and dragObj and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - dragOffset dragObj.Position = UDim2.new( dragStartPos.X.Scale, dragStartPos.X.Offset + delta.X, dragStartPos.Y.Scale, dragStartPos.Y.Offset + delta.Y ) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false dragObj = nil end end) -- ===== MINIMIZAR ===== local minimized = false local function minimize() minimized = true local fp = Frame.Position Frame.Visible = false Ball.Position = fp Ball.Size = UDim2.new(0, 50, 0, 50) Ball.Visible = true MinBtn.Text = "X" end local function restore() minimized = false local bp = Ball.Position Ball.Visible = false Frame.Position = bp Frame.Visible = true MinBtn.Text = "X" end MinBtn.MouseButton1Click:Connect(function() if not minimized then minimize() else restore() end end) Ball.MouseButton1Click:Connect(function() if minimized then restore() end end) -- ==================================================================== -- ===== FOV CIRCLE - GUI (Funciona em qualquer executor) ===== -- ==================================================================== -- Cria um ScreenGui separado pro círculo local FovGui = Instance.new("ScreenGui") FovGui.Name = "FovCircleGUI" FovGui.ResetOnSpawn = false FovGui.Parent = game.CoreGui FovGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling FovGui.IgnoreGuiInset = true -- Cria o círculo (um frame redondo) local FovFrame = Instance.new("Frame") FovFrame.Size = UDim2.new(0, 0, 0, 0) FovFrame.Position = UDim2.new(0.5, 0, 0.5, 0) FovFrame.AnchorPoint = Vector2.new(0.5, 0.5) FovFrame.BackgroundTransparency = 1 FovFrame.BorderSizePixel = 0 FovFrame.Parent = FovGui FovFrame.Visible = false -- Borda do círculo local FovStroke = Instance.new("UIStroke", FovFrame) FovStroke.Thickness = 2 FovStroke.Color = C.green FovStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border -- Cantos arredondados pra fazer o círculo local FovCorner = Instance.new("UICorner", FovFrame) FovCorner.CornerRadius = UDim.new(1, 0) -- ===== ESP ===== local function createEsp(plr) if plr == LocalPlayer then return end local box = Drawing.new("Square") box.Thickness = 1.5 box.Filled = false box.Visible = false local line = Drawing.new("Line") line.Thickness = 1.5 line.Visible = false EspObjects[plr] = {box = box, line = line} end Players.PlayerAdded:Connect(createEsp) Players.PlayerRemoving:Connect(function(plr) if EspObjects[plr] then if EspObjects[plr].box then EspObjects[plr].box:Remove() end if EspObjects[plr].line then EspObjects[plr].line:Remove() end EspObjects[plr] = nil end end) for _, p in pairs(Players:GetPlayers()) do createEsp(p) end -- ===== FUNÇÃO AUXILIAR: PEGAR A PARTE DO ESP ===== local function getEspPart(char) if not char then return nil end if AimPart == "Head" then return char:FindFirstChild("Head") else return char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("Head") end end -- ===== LOOP PRINCIPAL ===== RunService.RenderStepped:Connect(function() -- ATUALIZA O FOV CIRCLE if EspEnabled and FovRadius > 0 then local size = FovRadius * 2 FovFrame.Size = UDim2.new(0, size, 0, size) FovFrame.Visible = true else FovFrame.Visible = false end -- ESP if EspEnabled then for plr, obj in pairs(EspObjects) do local char = plr.Character local hum = char and char:FindFirstChildOfClass("Humanoid") local espPart = getEspPart(char) if espPart and hum and hum.Health > 0 then local pos, onScreen = Camera:WorldToViewportPoint(espPart.Position) if onScreen then -- Box no centro da parte (Head ou Torso) local boxSize = 10 obj.box.Size = Vector2.new(boxSize, boxSize) obj.box.Position = Vector2.new(pos.X - boxSize/2, pos.Y - boxSize/2) obj.box.Color = C.green obj.box.Visible = true -- Linha do centro da tela até o player obj.line.From = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y) obj.line.To = Vector2.new(pos.X, pos.Y) obj.line.Color = C.green obj.line.Visible = true else obj.box.Visible = false obj.line.Visible = false end else obj.box.Visible = false obj.line.Visible = false end end else for _, obj in pairs(EspObjects) do if obj.box then obj.box.Visible = false end if obj.line then obj.line.Visible = false end end end end) -- ===== AIMBOT ===== local function isAlive(char) local hum = char and char:FindFirstChildOfClass("Humanoid") return hum and hum.Health > 0 end local function visible(pos) local origin = Camera.CFrame.Position local dir = (pos - origin).Unit * (pos - origin).Magnitude local params = RaycastParams.new() params.FilterDescendantsInstances = {LocalPlayer.Character} params.FilterType = Enum.RaycastFilterType.Blacklist local result = workspace:Raycast(origin, dir, params) if not result then return true end return (result.Position - pos).Magnitude < 3 end local function getBestTarget() local best, bestDot = nil, -1 local screenCenter = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y/2) for _, plr in pairs(Players:GetPlayers()) do if plr ~= LocalPlayer and plr.Character then local part = plr.Character:FindFirstChild(AimPart) or plr.Character:FindFirstChild("Head") if part and isAlive(plr.Character) then local dist = (part.Position - Camera.CFrame.Position).Magnitude if dist <= MaxDistance and visible(part.Position) then local screenPos, onScreen = Camera:WorldToViewportPoint(part.Position) if onScreen then local screenVec = Vector2.new(screenPos.X, screenPos.Y) local distFromCenter = (screenVec - screenCenter).Magnitude if distFromCenter <= math.min(FovRadius, 100) then local dir = (part.Position - Camera.CFrame.Position).Unit local dot = Camera.CFrame.LookVector:Dot(dir) if dot > bestDot then bestDot = dot best = part end end end end end end end return best end RunService.RenderStepped:Connect(function() if not AimbotEnabled then return end local target = getBestTarget() if target then Camera.CFrame = CFrame.new(Camera.CFrame.Position, target.Position) end end)