-- Serviços local Players = game:GetService("Players") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") -- Dados básicos local LocalPlayer = Players.LocalPlayer local Camera = workspace.CurrentCamera -- ================================== -- CONFIGURAÇÕES -- ================================== local Config = { AtivarAimbot = false, AtivarESP = true, MirarNaCabeca = true, Suavidade = 0.3, AlcanceMax = 350, FOV = 150, EscalaMenu = 1, MenuVisivel = true -- Controla se o menu está aberto ou fechado } -- ================================== -- CRIA O MENU -- ================================== local Tela = Instance.new("ScreenGui") Tela.Name = "MenuSistemaFPS" Tela.ResetOnSpawn = false Tela.ZIndexBehavior = Enum.ZIndexBehavior.Sibling Tela.Parent = LocalPlayer:WaitForChild("PlayerGui") -- Botão pequeno para ABRIR o menu quando estiver fechado local BotaoAbrir = Instance.new("TextButton") BotaoAbrir.Size = UDim2.new(0, 40, 0, 40) BotaoAbrir.Position = UDim2.new(0.02, 0, 0.02, 0) BotaoAbrir.BackgroundColor3 = Color3.fromRGB(30, 120, 220) BotaoAbrir.Text = "☰" BotaoAbrir.Font = Enum.Font.GothamBold BotaoAbrir.TextColor3 = Color3.new(1,1,1) BotaoAbrir.TextSize = 20 BotaoAbrir.Visible = false BotaoAbrir.ZIndex = 100 BotaoAbrir.Parent = Tela -- Quadro principal do menu local Menu = Instance.new("Frame") Menu.Size = UDim2.new(0, 230, 0, 320) Menu.Position = UDim2.new(0.05, 0, 0.05, 0) Menu.BackgroundColor3 = Color3.fromRGB(25, 25, 35) Menu.BorderColor3 = Color3.fromRGB(80, 120, 255) Menu.BorderSizePixel = 2 Menu.Active = true Menu.Draggable = true Menu.ZIndex = 10 Menu.Parent = Tela -- Barra de título local BarraTitulo = Instance.new("Frame") BarraTitulo.Size = UDim2.new(1, 0, 0, 40) BarraTitulo.BackgroundColor3 = Color3.fromRGB(60, 90, 220) BarraTitulo.Parent = Menu local Titulo = Instance.new("TextLabel") Titulo.Size = UDim2.new(1, -110, 1, 0) Titulo.BackgroundTransparency = 1 Titulo.Text = "SISTEMA FPS" Titulo.Font = Enum.Font.GothamBold Titulo.TextColor3 = Color3.new(1,1,1) Titulo.TextSize = 16 Titulo.Parent = BarraTitulo -- Botões da barra superior local btnFechar = Instance.new("TextButton") btnFechar.Size = UDim2.new(0, 35, 0, 30) btnFechar.Position = UDim2.new(1, -35, 0, 5) btnFechar.BackgroundColor3 = Color3.fromRGB(200, 40, 40) btnFechar.Text = "✖" btnFechar.Font = Enum.Font.GothamBold btnFechar.TextColor3 = Color3.new(1,1,1) btnFechar.TextSize = 16 btnFechar.Parent = BarraTitulo local btnDiminuirMenu = Instance.new("TextButton") btnDiminuirMenu.Size = UDim2.new(0, 30, 0, 30) btnDiminuirMenu.Position = UDim2.new(1, -75, 0, 5) btnDiminuirMenu.BackgroundColor3 = Color3.fromRGB(40, 40, 60) btnDiminuirMenu.Text = "➖" btnDiminuirMenu.Font = Enum.Font.GothamBold btnDiminuirMenu.TextColor3 = Color3.new(1,1,1) btnDiminuirMenu.TextSize = 18 btnDiminuirMenu.Parent = BarraTitulo local btnAumentarMenu = Instance.new("TextButton") btnAumentarMenu.Size = UDim2.new(0, 30, 0, 30) btnAumentarMenu.Position = UDim2.new(1, -110, 0, 5) btnAumentarMenu.BackgroundColor3 = Color3.fromRGB(40, 40, 60) btnAumentarMenu.Text = "➕" btnAumentarMenu.Font = Enum.Font.GothamBold btnAumentarMenu.TextColor3 = Color3.new(1,1,1) btnAumentarMenu.TextSize = 18 btnAumentarMenu.Parent = BarraTitulo -- Função para redimensionar local function AplicarEscala() local largura = 230 * Config.EscalaMenu local altura = 320 * Config.EscalaMenu TweenService:Create(Menu, TweenInfo.new(0.2), {Size = UDim2.new(0, largura, 0, altura)}):Play() end -- Ações dos botões btnFechar.MouseButton1Click:Connect(function() Config.MenuVisivel = false Menu.Visible = false BotaoAbrir.Visible = true end) BotaoAbrir.MouseButton1Click:Connect(function() Config.MenuVisivel = true Menu.Visible = true BotaoAbrir.Visible = false end) btnDiminuirMenu.MouseButton1Click:Connect(function() Config.EscalaMenu = math.clamp(Config.EscalaMenu - 0.1, 0.6, 1.5) AplicarEscala() end) btnAumentarMenu.MouseButton1Click:Connect(function() Config.EscalaMenu = math.clamp(Config.EscalaMenu + 0.1, 0.6, 1.5) AplicarEscala() end) -- Função para criar botões local function NovoBotao(texto, posY) local btn = Instance.new("TextButton") btn.Size = UDim2.new(0.9, 0, 0, 35) btn.Position = UDim2.new(0.05, 0, 0, posY) btn.BackgroundColor3 = Color3.fromRGB(40, 40, 50) btn.Text = texto btn.Font = Enum.Font.GothamSemibold btn.TextColor3 = Color3.new(1,1,1) btn.TextSize = 14 btn.Parent = Menu return btn end -- Botões das funções local btnAimbot = NovoBotao("Aimbot: DESLIGADO", 50) btnAimbot.MouseButton1Click:Connect(function() Config.AtivarAimbot = not Config.AtivarAimbot btnAimbot.Text = Config.AtivarAimbot and "Aimbot: LIGADO" or "Aimbot: DESLIGADO" btnAimbot.BackgroundColor3 = Config.AtivarAimbot and Color3.fromRGB(30, 120, 30) or Color3.fromRGB(40,40,50) end) local btnESP = NovoBotao("ESP: LIGADO", 95) btnESP.MouseButton1Click:Connect(function() Config.AtivarESP = not Config.AtivarESP btnESP.Text = Config.AtivarESP and "ESP: LIGADO" or "ESP: DESLIGADO" btnESP.BackgroundColor3 = Config.AtivarESP and Color3.fromRGB(30, 120, 30) or Color3.fromRGB(40,40,50) end) local btnMirar = NovoBotao("Mirar: CABEÇA", 140) btnMirar.MouseButton1Click:Connect(function() Config.MirarNaCabeca = not Config.MirarNaCabeca btnMirar.Text = Config.MirarNaCabeca and "Mirar: CABEÇA" or "Mirar: CORPO" end) local txtFOV = Instance.new("TextLabel") txtFOV.Size = UDim2.new(0.9, 0, 0, 30) txtFOV.Position = UDim2.new(0.05, 0, 0, 185) txtFOV.BackgroundTransparency = 1 txtFOV.Text = "Tamanho do FOV: " .. Config.FOV txtFOV.TextColor3 = Color3.new(1,1,1) txtFOV.Font = Enum.Font.Gotham txtFOV.TextSize = 14 txtFOV.Parent = Menu local btnAumentarFOV = NovoBotao("⬆️ Aumentar FOV", 220) btnAumentarFOV.MouseButton1Click:Connect(function() Config.FOV = math.clamp(Config.FOV + 10, 50, 400) txtFOV.Text = "Tamanho do FOV: " .. Config.FOV end) local btnDiminuirFOV = NovoBotao("⬇️ Diminuir FOV", 260) btnDiminuirFOV.MouseButton1Click:Connect(function() Config.FOV = math.clamp(Config.FOV - 10, 50, 400) txtFOV.Text = "Tamanho do FOV: " .. Config.FOV end) -- ================================== -- DESENHAR CÍRCULO DO FOV -- ================================== local function DesenharCirculo(raio, cor) local centro = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2) local linhas = {} for i = 1, 36 do local angulo = math.rad(i * 10) local ponto = centro + Vector2.new(math.cos(angulo) * raio, math.sin(angulo) * raio) local linha = Instance.new("Frame") linha.AnchorPoint = Vector2.new(0.5, 0.5) linha.Position = UDim2.new(0, ponto.X, 0, ponto.Y) linha.Size = UDim2.new(0, 2, 0, 2) linha.BackgroundColor3 = cor linha.BorderSizePixel = 0 linha.ZIndex = 9 linha.Parent = Tela table.insert(linhas, linha) end return linhas end -- ================================== -- LOOP PRINCIPAL (ESP CORRIGIDO + AIMBOT) -- ================================== RunService.RenderStepped:Connect(function() -- Atualizar FOV for _, l in pairs(linhasFOV or {}) do l:Destroy() end linhasFOV = DesenharCirculo(Config.FOV, Color3.new(1,0,0)) local melhorAlvo = nil local menorAngulo = math.huge -- Procurar todos os jogadores for _, jogador in pairs(Players:GetPlayers()) do if jogador ~= LocalPlayer and jogador.Character then local char = jogador.Character local Humanoide = char:FindFirstChildOfClass("Humanoid") local Parte = char:FindFirstChild(Config.MirarNaCabeca and "Head" or "HumanoidRootPart") -- ✅ Verificações corretas para o ESP funcionar if Humanoide and Humanoide.Health > 0 and Parte then local posTela, visivel = Camera:WorldToViewportPoint(Parte.Position) local distancia = (Camera.CFrame.Position - Parte.Position).Magnitude -- Só desenha se estiver visível e dentro do alcance if visivel and distancia < Config.AlcanceMax and posTela.Z > 0 then -- ✅ ESP CORRIGIDO: Agora aparece e fica visível if Config.AtivarESP then local textoESP = Instance.new("TextLabel") textoESP.Size = UDim2.new(0, 150, 0, 22) textoESP.Position = UDim2.new(0, posTela.X - 75, 0, posTela.Y - 25) textoESP.BackgroundTransparency = 1 textoESP.Text = string.format("%s | %.0fm", jogador.Name, distancia) textoESP.TextColor3 = Color3.new(0, 1, 0) -- Verde bem visível textoESP.Font = Enum.Font.GothamBold textoESP.TextSize = 14 textoESP.ZIndex = 10 textoESP.Parent = Tela -- Remove o texto antigo para não acumular task.delay(0.01, function() textoESP:Destroy() end) end -- Verifica se está dentro do FOV para o aimbot local centro = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y/2) local distTela = (Vector2.new(posTela.X, posTela.Y) - centro).Magnitude if distTela < Config.FOV and distTela < menorAngulo then menorAngulo = distTela melhorAlvo = Parte end end end end end -- Aplicar mira automática if Config.AtivarAimbot and melhorAlvo then local alvoCF = CFrame.lookAt(Camera.CFrame.Position, melhorAlvo.Position) Camera.CFrame = Camera.CFrame:Lerp(alvoCF, Config.Suavidade) end end)