
KeylessUniversal

-- 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)No comments yet for this script.



