--[[ Script Hub: Aimbot Automático (Câmera) + ESP - Aimbot sempre ativo quando toggle ligado (sem apertar tecla) - Mira no ângulo da sua visão (círculo FOV) - ESP com caixa, tracers, vida, nomes ]] if not game:IsLoaded() then game.Loaded:Wait() end local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))() local Window = Rayfield:CreateWindow({ Name = "✨ Meu Super Hub ✨", Icon = 0, LoadingTitle = "Carregando Hub...", LoadingSubtitle = "by Criador", Theme = "Default", ConfigurationSaving = { Enabled = true, FolderName = "MeuSuperHub", FileName = "Configuracoes" }, KeySystem = false, }) -- =============================== CONFIGURAÇÕES =============================== local LocalPlayer = game:GetService("Players").LocalPlayer local Camera = game:GetService("Workspace").CurrentCamera local RunService = game:GetService("RunService") -- Controles local aimbotEnabled = false -- Quando true, mira sozinho local espEnabled = true local tracerEnabled = true local boxEspEnabled = true local healthBarEnabled = true local nameEspEnabled = true local fovCircleEnabled = true -- Configurações de mira (ângulo em graus) local aimFOV = 60 -- Ângulo máximo para mirar local aimSmoothness = 0.3 local aimPart = "Head" -- "Head" ou "HumanoidRootPart" -- Objetos de desenho local drawings = {} local tracerLines = {} local fovCircle = nil -- =============================== FUNÇÕES =============================== local function getCharacterHitbox(character) local rootPart = character:FindFirstChild("HumanoidRootPart") if not rootPart then return nil, nil end return rootPart.Position, rootPart.Size end -- Desenha o círculo de FOV local function drawFOVCircle() if not fovCircleEnabled then if fovCircle then fovCircle:Remove() fovCircle = nil end return end if not fovCircle then fovCircle = Drawing.new("Circle") fovCircle.Thickness = 1.5 fovCircle.NumSides = 64 fovCircle.Filled = false fovCircle.Visible = true end local screenWidth = Camera.ViewportSize.X local screenHeight = Camera.ViewportSize.Y local radius = (aimFOV / 120) * math.min(screenWidth, screenHeight) * 0.8 fovCircle.Radius = math.clamp(radius, 30, 400) fovCircle.Position = Vector2.new(screenWidth/2, screenHeight/2) fovCircle.Color = Color3.new(1, 1, 0) -- amarelo end -- Desenho da caixa 3D local function drawBox(position, size, color, onScreen) if not onScreen then return end local points3D = { position + Vector3.new(-size.X/2, size.Y/2, -size.Z/2), position + Vector3.new( size.X/2, size.Y/2, -size.Z/2), position + Vector3.new(-size.X/2, size.Y/2, size.Z/2), position + Vector3.new( size.X/2, size.Y/2, size.Z/2), position + Vector3.new(-size.X/2, -size.Y/2, -size.Z/2), position + Vector3.new( size.X/2, -size.Y/2, -size.Z/2), position + Vector3.new(-size.X/2, -size.Y/2, size.Z/2), position + Vector3.new( size.X/2, -size.Y/2, size.Z/2) } local points2D = {} local allOnScreen = true for _, p in pairs(points3D) do local sp, on = Camera:WorldToScreenPoint(p) if not on then allOnScreen = false break end table.insert(points2D, Vector2.new(sp.X, sp.Y)) end if not allOnScreen then return end local connections = {{1,2},{2,4},{4,3},{3,1},{5,6},{6,8},{8,7},{7,5},{1,5},{2,6},{3,7},{4,8}} for _, conn in pairs(connections) do local line = Drawing.new("Line") line.From = points2D[conn[1]] line.To = points2D[conn[2]] line.Color = color line.Thickness = 1.5 line.Visible = true table.insert(drawings, line) end end local function drawTracer(screenPosition, color) local center = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y) local tracer = Drawing.new("Line") tracer.From = center tracer.To = screenPosition tracer.Color = color tracer.Thickness = 1.5 tracer.Visible = true table.insert(tracerLines, tracer) end local function drawHealthBar(screenPosition, healthPercent, color) local barWidth = 50 local barHeight = 6 local barX = screenPosition.X - barWidth/2 local barY = screenPosition.Y - 35 local bg = Drawing.new("Square") bg.Position = Vector2.new(barX, barY) bg.Size = Vector2.new(barWidth, barHeight) bg.Color = Color3.new(0,0,0) bg.Filled = true bg.Visible = true table.insert(drawings, bg) local fill = Drawing.new("Square") fill.Position = Vector2.new(barX, barY) fill.Size = Vector2.new(barWidth * healthPercent, barHeight) fill.Color = color fill.Filled = true fill.Visible = true table.insert(drawings, fill) end local function drawName(screenPosition, name, color) local text = Drawing.new("Text") text.Text = name text.Position = Vector2.new(screenPosition.X, screenPosition.Y - 45) text.Color = color text.Size = 14 text.Center = true text.Outline = true text.Visible = true table.insert(drawings, text) end local function clearDrawings() for _, d in pairs(drawings) do d:Remove() end drawings = {} for _, t in pairs(tracerLines) do t:Remove() end tracerLines = {} end -- ========== FUNÇÃO QUE ESCOLHE O ALVO PELO ÂNGULO DA CÂMERA ========== local function getClosestTargetByAngle() local closestTarget = nil local smallestAngle = aimFOV -- ângulo máximo permitido (graus) local cameraLook = Camera.CFrame.LookVector local cameraPos = Camera.CFrame.Position for _, player in pairs(game:GetService("Players"):GetPlayers()) do if player ~= LocalPlayer and player.Character then local targetPart = player.Character:FindFirstChild(aimPart) if targetPart then local directionToTarget = (targetPart.Position - cameraPos).unit local angle = math.deg(math.acos(cameraLook:Dot(directionToTarget))) if angle < smallestAngle then smallestAngle = angle closestTarget = player end end end end return closestTarget end -- Aimbot suavizado (mira automática) local function aimAt(target) if not aimbotEnabled or not target or not target.Character then return end local targetPart = target.Character:FindFirstChild(aimPart) if not targetPart then return end local targetPos = targetPart.Position local currentPos = Camera.CFrame.Position local direction = (targetPos - currentPos).unit local newCFrame = CFrame.new(currentPos, currentPos + direction) Camera.CFrame = Camera.CFrame:Lerp(newCFrame, aimSmoothness) end -- =============================== INTERFACE =============================== local EspTab = Window:CreateTab("👁️ Visual ESP", 4483362458) local AimbotTab = Window:CreateTab("🎯 Aimbot", 4483362458) local InfoTab = Window:CreateTab("ℹ️ Informações", 4483362458) -- Aba ESP EspTab:CreateSection("Controle Visual") EspTab:CreateToggle({Name = "Ativar ESP Completo", CurrentValue = espEnabled, Flag = "ToggleESP", Callback = function(v) espEnabled = v if not v then clearDrawings() end end}) EspTab:CreateToggle({Name = "Caixa 3D (Box ESP)", CurrentValue = boxEspEnabled, Flag = "ToggleBoxESP", Callback = function(v) boxEspEnabled = v end}) EspTab:CreateToggle({Name = "Linhas (Tracers)", CurrentValue = tracerEnabled, Flag = "ToggleTracers", Callback = function(v) tracerEnabled = v end}) EspTab:CreateToggle({Name = "Barra de Vida", CurrentValue = healthBarEnabled, Flag = "ToggleHealthBar", Callback = function(v) healthBarEnabled = v end}) EspTab:CreateToggle({Name = "Nome do Jogador", CurrentValue = nameEspEnabled, Flag = "ToggleNameESP", Callback = function(v) nameEspEnabled = v end}) -- Aba Aimbot (agora sem tecla) AimbotTab:CreateSection("Controle de Mira (Automático)") AimbotTab:CreateToggle({Name = "Ativar Aimbot (sempre ativo)", CurrentValue = aimbotEnabled, Flag = "ToggleAimbot", Callback = function(v) aimbotEnabled = v end}) AimbotTab:CreateSlider({Name = "Ângulo de Mira (FOV em graus)", Range = {10, 120}, Increment = 5, Suffix = "°", CurrentValue = aimFOV, Flag = "AimbotFOV", Callback = function(v) aimFOV = v end}) AimbotTab:CreateSlider({Name = "Suavidade (Smoothing)", Range = {0.1, 1}, Increment = 0.05, Suffix = "", CurrentValue = aimSmoothness, Flag = "AimbotSmoothness", Callback = function(v) aimSmoothness = v end}) AimbotTab:CreateDropdown({Name = "Parte do Corpo", Options = {"Cabeça", "Tronco"}, CurrentOption = "Cabeça", Flag = "AimbotPart", Callback = function(opt) aimPart = (opt == "Cabeça" and "Head") or "HumanoidRootPart" end}) AimbotTab:CreateToggle({Name = "Mostrar Círculo de Mira (FOV)", CurrentValue = fovCircleEnabled, Flag = "ToggleFOVCircle", Callback = function(v) fovCircleEnabled = v end}) -- Aba Info InfoTab:CreateSection("Sobre o Hub") InfoTab:CreateParagraph({Title = "✨ Meu Super Hub ✨", Content = "Versão: 2.1 - Aimbot automático\n\n- Mira sempre ativa (sem apertar tecla)\n- Mira baseada no ângulo da câmera\n- Círculo FOV na tela\n- ESP completo"}) InfoTab:CreateButton({Name = "✅ Script Carregado!", Callback = function() Rayfield:Notify({Title = "Hub Carregado", Content = "Aimbot automático ativo! Basta ligar o toggle.", Duration = 3}) end}) -- =============================== LOOP PRINCIPAL =============================== RunService.RenderStepped:Connect(function() -- Desenha o círculo FOV drawFOVCircle() if espEnabled then clearDrawings() for _, player in pairs(game:GetService("Players"):GetPlayers()) do if player ~= LocalPlayer and player.Character then local char = player.Character local hum = char:FindFirstChild("Humanoid") local root = char:FindFirstChild("HumanoidRootPart") local head = char:FindFirstChild("Head") if hum and root and head and hum.Health > 0 then local screenPos, onScreen = Camera:WorldToScreenPoint(head.Position) if onScreen then local screenVec = Vector2.new(screenPos.X, screenPos.Y) local healthPercent = hum.Health / hum.MaxHealth local espColor = (healthPercent > 0.7 and Color3.new(0,1,0)) or (healthPercent > 0.3 and Color3.new(1,1,0)) or Color3.new(1,0,0) if boxEspEnabled then local pos, size = getCharacterHitbox(char) if pos and size then drawBox(pos, size, espColor, onScreen) end end if tracerEnabled then drawTracer(screenVec, espColor) end if healthBarEnabled then drawHealthBar(screenVec, healthPercent, espColor) end if nameEspEnabled then drawName(screenVec, player.Name, espColor) end end end end end end -- AIMBOT AUTOMÁTICO (sem tecla, só verifica se está ligado) if aimbotEnabled then local target = getClosestTargetByAngle() if target then aimAt(target) end end end) Rayfield:Notify({Title = "Hub Iniciado", Content = "Aimbot automático ativo! Pressione Insert para abrir o menu.", Duration = 5})