
Key RequiredUniversal

-- 🎯 AIMBOT ULTRA-PRECIso + ESP SEPARADO (VERSÃO DEFINITIVA)
-- Sistema otimizado para headshots + ESP profissional independente
-- ✅ ZERO "attempt to index nil" - Validações ultra-rigorosas implementadas
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
local UIS = game:GetService("UserInputService")
local LocalPlayer = Players.LocalPlayer
-- ========================================================================
-- 🟦 [ SISTEMA 1: DADOS ] - ESTADO PURO DO JOGO
-- ========================================================================
local GameDataSystem = {}
function GameDataSystem.getPlayers()
if not Players or not Players.GetPlayers then return {} end
local success, players = pcall(function() return Players:GetPlayers() end)
return success and players or {}
end
function GameDataSystem.getLocalPlayer()
return LocalPlayer or nil
end
function GameDataSystem.getCamera()
if not workspace or not workspace.CurrentCamera then return nil end
return workspace.CurrentCamera
end
function GameDataSystem.playerExists(player)
return player and player:IsDescendantOf(Players)
end
function GameDataSystem.getCharacter(player)
if not GameDataSystem.playerExists(player) then return nil end
return player.Character
end
function GameDataSystem.characterExists(character)
return character and character:IsDescendantOf(workspace)
end
function GameDataSystem.getHumanoid(character)
if not GameDataSystem.characterExists(character) then return nil end
return character:FindFirstChild("Humanoid")
end
function GameDataSystem.getHead(character)
if not GameDataSystem.characterExists(character) then return nil end
return character:FindFirstChild("Head")
end
function GameDataSystem.getRootPart(character)
if not GameDataSystem.characterExists(character) then return nil end
return character:FindFirstChild("HumanoidRootPart")
end
function GameDataSystem.getTeam(player)
if not GameDataSystem.playerExists(player) then return nil end
return player.Team
end
function GameDataSystem.getPosition(part)
if not part or not part:IsA("BasePart") or not part:IsDescendantOf(workspace) then
return Vector3.zero
end
local success, pos = pcall(function() return part.Position end)
return success and pos and typeof(pos) == "Vector3" and pos or Vector3.zero
end
function GameDataSystem.getVelocity(part)
if not part or not part:IsA("BasePart") or not part:IsDescendantOf(workspace) then
return Vector3.zero
end
local success, vel = pcall(function() return part.AssemblyLinearVelocity end)
return success and vel and typeof(vel) == "Vector3" and vel or Vector3.zero
end
function GameDataSystem.isAlive(humanoid)
if not humanoid or not humanoid:IsDescendantOf(workspace) then return false end
local success, health = pcall(function() return humanoid.Health end)
return success and type(health) == "number" and health > 0
end
function GameDataSystem.getViewportSize(camera)
if not camera then return Vector2.zero end
local success, size = pcall(function() return camera.ViewportSize end)
return success and size or Vector2.zero
end
function GameDataSystem.getMouseLocation()
if not UIS or not UIS.GetMouseLocation then return Vector2.zero end
local success, pos = pcall(function() return UIS:GetMouseLocation() end)
return success and pos or Vector2.zero
end
-- ========================================================================
-- [ CONFIGURAÇÕES ULTRA-PRECISAS ] - OTIMIZADAS PARA CABEÇA
-- ========================================================================
local Config = {
AIM_ENABLED = true,
FOV_SIZE = 70, -- FOV MAIS RESTRITO PARA CABEÇA (antes: 80)
SMOOTHNESS = 0.04, -- SUAVIZAÇÃO ULTRA-RÁPIDA PARA GRUDAÇÃO FORTE (antes: 0.06)
HEAD_PRIORITY = true, -- SEMPRE PRIORIZAR CABEÇA
PREDICTION_ENABLED = true, -- PREDIÇÃO DE MOVIMENTO
PREDICTION_TIME = 0.08, -- PREDIÇÃO MAIS CURTA PARA CABEÇA (80ms)
UI_VISIBLE = false,
WINDOW_ACTIVE = true,
HEAD_BONUS_STRENGTH = 1.8 -- BONUS EXTRA PARA CABEÇA (80% mais forte)
}
-- ========================================================================
-- [ CONFIGURAÇÕES ESP MELHORADO ]
-- ========================================================================
getgenv().ESP_Settings = {
Enabled = true, -- Estado inicial
ToggleKey = Enum.KeyCode.RightShift,
DistanciaLimite = 300, -- Distância máxima
TeamCheck = true, -- Verificar aliados
TeamColor = Color3.fromRGB(0, 255, 0), -- Verde
EnemyColor = Color3.fromRGB(255, 0, 0), -- Vermelho
TextSize = 13,
BoxThickness = 1,
-- Configuração do Botão
ButtonConfig = {
Size = Vector2.new(120, 30),
TextColor = Color3.new(1, 1, 1),
EnabledColor = Color3.fromRGB(0, 150, 0),
DisabledColor = Color3.fromRGB(150, 0, 0),
TextFont = 2,
TextSize = 15
}
}
-- ========================================================================
-- [ CONTROLE DE FOCO ULTRA-SEGURO ]
-- ========================================================================
local WindowFocus = {
janelaEmFoco = true,
aimAtivo = false,
alvoAtual = nil
}
function WindowFocus.inicializar()
UIS.WindowFocused:Connect(function()
WindowFocus.janelaEmFoco = true
print("🖥️ ROBLOX EM FOCO - AIMLIBERADO")
end)
UIS.WindowFocusReleased:Connect(function()
WindowFocus.janelaEmFoco = false
WindowFocus.aimAtivo = false
WindowFocus.alvoAtual = nil
print("🚨 ROBLOX PERDEU FOCO - AIMDESABILITADO")
end)
WindowFocus.janelaEmFoco = true
end
-- ========================================================================
-- [ DETECÇÃO DE INIMIGOS ULTRA-RÁPIDA ]
-- ========================================================================
local EnemyDetector = {}
function EnemyDetector.ehInimigo(player)
-- ✅ CORREÇÃO: Sistema de teams robusto (evita "No hook for GetTeam")
if not GameDataSystem.playerExists(player) or player == LocalPlayer then return false end
local playerTeam = GameDataSystem.getTeam(player)
local localTeam = GameDataSystem.getTeam(GameDataSystem.getLocalPlayer())
if playerTeam and localTeam then
return playerTeam ~= localTeam
end
-- Método 2: Verificar atributos customizados
local success1, playerAttrs = pcall(function() return player:GetAttributes() end)
local success2, localAttrs = pcall(function() return LocalPlayer:GetAttributes() end)
if success1 and success2 and playerAttrs and localAttrs then
for attrName, attrValue in pairs(playerAttrs) do
if type(attrName) == "string" and (attrName:lower():find("team") or attrName:lower():find("faction")) then
local localAttrValue = localAttrs[attrName]
if localAttrValue and attrValue ~= localAttrValue then
return true -- ✅ Times diferentes
end
end
end
end
return true -- FFA MODE
end
function EnemyDetector.ehValido(player)
-- ✅ CORREÇÃO: Validação ultra-rigorosa
if not GameDataSystem.playerExists(player) then return false end
local character = GameDataSystem.getCharacter(player)
if not character or not GameDataSystem.characterExists(character) then return false end
local humanoid = GameDataSystem.getHumanoid(character)
return GameDataSystem.isAlive(humanoid)
end
-- ========================================================================
-- [ SELEÇÃO DE CABEÇA ULTRA-PRIORITÁRIA ] - MELHORADO PARA HEADSHOTS
-- ========================================================================
local BodyPartSelector = {}
-- 🔥 FUNÇÃO ESPECIAL: SEMPRE PEGA A CABEÇA PRIMEIRO
function BodyPartSelector.getHead(character)
-- ✅ CORREÇÃO: Validação antes de qualquer acesso
if not GameDataSystem.characterExists(character) then return nil end
-- SEMPRE TENTA CABEÇA PRIMEIRO - MÚLTIPLAS VERIFICAÇÕES
local head = character:FindFirstChild("Head")
if head and head:IsA("BasePart") and head:IsDescendantOf(character) then
return head
end
-- FALLBACK PARA DIFERENTES NOMES DE CABEÇA
local headNames = {"Head", "head", "HEAD"}
for _, name in ipairs(headNames) do
if type(name) == "string" then
local found = character:FindFirstChild(name)
if found and found:IsA("BasePart") and found:IsDescendantOf(character) then
return found
end
end
end
return nil
end
-- 🔥 PREDIÇÃO DE MOVIMENTO PARA PRECISÃO MÁXIMA
function BodyPartSelector.predictPosition(bodyPart, predictionTime)
-- ✅ CORREÇÃO: Validação ultra-rigorosa antes de cálculos
if not bodyPart or not bodyPart:IsA("BasePart") or not bodyPart:IsDescendantOf(workspace) then
return GameDataSystem.getPosition(bodyPart)
end
if not Config.PREDICTION_ENABLED or type(predictionTime) ~= "number" or predictionTime <= 0 then
return GameDataSystem.getPosition(bodyPart)
end
-- CALCULAR VELOCIDADE PARA PREDIÇÃO
local position = GameDataSystem.getPosition(bodyPart)
local velocity = GameDataSystem.getVelocity(bodyPart)
-- ✅ CORREÇÃO: Verificação se valores são válidos antes da conta
if position ~= Vector3.zero and velocity ~= Vector3.zero then
return position + (velocity * predictionTime)
end
return position
end
-- 🔥 LÓGICA PRINCIPAL: CABEÇA SEMPRE PRIORITÁRIA
function BodyPartSelector.encontrarMelhorParte(character)
-- ✅ CORREÇÃO: Validação antes de qualquer acesso
if not GameDataSystem.characterExists(character) then return nil end
-- 🔥 CABEÇA SEMPRE É PRIORIDADE MÁXIMA
if Config.HEAD_PRIORITY then
local head = BodyPartSelector.getHead(character)
if head then
return head -- 🔥 SEMPRE RETORNA CABEÇA PARA HEADSHOTS
end
end
-- FALLBACK APENAS SE CABEÇA NÃO EXISTIR
local fallbacks = {
character:FindFirstChild("UpperTorso"),
character:FindFirstChild("HumanoidRootPart"),
character:FindFirstChild("Torso")
}
for _, part in ipairs(fallbacks) do
if part and part:IsA("BasePart") and part:IsDescendantOf(character) then
return part
end
end
return nil
end
-- ========================================================================
-- [ FOV ULTRA-PRECISO ] - RESTRITO PARA CABEÇA
-- ========================================================================
local FOVSystem = {
circulo = nil
}
function FOVSystem.criarCirculo()
if FOVSystem.circulo then FOVSystem.circulo:Remove() end
FOVSystem.circulo = Drawing.new("Circle")
FOVSystem.circulo.Thickness = 2
FOVSystem.circulo.NumSides = 32
FOVSystem.circulo.Radius = Config.FOV_SIZE
FOVSystem.circulo.Filled = false
FOVSystem.circulo.Color = Color3.fromRGB(255, 255, 255)
FOVSystem.circulo.Transparency = 0.7
FOVSystem.circulo.Visible = false
end
function FOVSystem.calcular(posicaoMundo, camera)
-- ✅ CORREÇÃO: Validação ultra-rigorosa
if not posicaoMundo or typeof(posicaoMundo) ~= "Vector3" or not camera then return false end
local centroTela = GameDataSystem.getViewportSize(camera)
if centroTela == Vector2.zero then return false end
centroTela = centroTela / 2
local success, screenPos, visible = pcall(function()
return camera:WorldToViewportPoint(posicaoMundo)
end)
if not success or not visible or not screenPos then return false end
local distancia = (Vector2.new(screenPos.X, screenPos.Y) - centroTela).Magnitude
return distancia <= Config.FOV_SIZE
end
function FOVSystem.atualizar()
if not FOVSystem.circulo then return end
local camera = GameDataSystem.getCamera()
if not camera then return end
local centro = GameDataSystem.getViewportSize(camera)
if centro == Vector2.zero then return end
centro = centro / 2
FOVSystem.circulo.Position = centro
FOVSystem.circulo.Radius = Config.FOV_SIZE
FOVSystem.circulo.Visible = WindowFocus.aimAtivo and WindowFocus.janelaEmFoco
end
-- ========================================================================
-- [ SELETOR DE ALVO ULTRA-RÁPIDO ] - FOCADO EM CABEÇA
-- ========================================================================
local TargetSelector = {}
function TargetSelector.encontrarMelhor(camera)
-- ✅ CORREÇÃO: Validação ultra-rigorosa antes de qualquer loop
if not camera then return nil end
local melhorAlvo = nil
local menorDistancia = Config.FOV_SIZE
local centroTela = GameDataSystem.getViewportSize(camera)
if centroTela == Vector2.zero then return nil end
centroTela = centroTela / 2
for _, player in ipairs(GameDataSystem.getPlayers()) do
-- ✅ VALIDAÇÃO: Player existe e é válido
if not EnemyDetector.ehInimigo(player) or not EnemyDetector.ehValido(player) then
continue
end
-- 🔥 VERIFICAÇÃO ESPECIAL: CABEÇA DEVE EXISTIR
local character = GameDataSystem.getCharacter(player)
if not character then continue end
local head = BodyPartSelector.getHead(character)
if not head then continue end
-- 🔥 PREDIÇÃO PARA CABEÇA
local targetPosition = BodyPartSelector.predictPosition(head, Config.PREDICTION_TIME)
if targetPosition == Vector3.zero then continue end
-- VERIFICAÇÃO FOV COM PREDIÇÃO
if not FOVSystem.calcular(targetPosition, camera) then
continue
end
-- DISTÂNCIA DA CABEÇA PREDITA
local success, screenPos, visible = pcall(function()
return camera:WorldToViewportPoint(targetPosition)
end)
if not success or not visible or not screenPos then continue end
local distancia = (Vector2.new(screenPos.X, screenPos.Y) - centroTela).Magnitude
if distancia < menorDistancia then
menorDistancia = distancia
melhorAlvo = player
end
end
return melhorAlvo
end
-- ========================================================================
-- [ AIMLOCK ULTRA-PRECIso ] - OTIMIZADO PARA CABEÇA
-- ========================================================================
local AimController = {
suavizacao = Config.SMOOTHNESS
}
function AimController.aplicar(alvoAtual, camera)
-- 🔥 VERIFICAÇÕES AVANÇADAS PARA GRUDAÇÃO MÁXIMA
if not WindowFocus.janelaEmFoco or not WindowFocus.aimAtivo then
return
end
-- VERIFICAÇÃO RIGOROSA DO ALVO
if not alvoAtual or not alvoAtual:IsDescendantOf(Players) then
WindowFocus.alvoAtual = nil
return
end
if not EnemyDetector.ehValido(alvoAtual) then
WindowFocus.alvoAtual = nil
return
end
local character = alvoAtual.Character
if not character or not character:IsDescendantOf(workspace) then
WindowFocus.alvoAtual = nil
return
end
-- 🔥 SISTEMA AVANÇADO DE DETECÇÃO DE CABEÇA
local head = BodyPartSelector.getHead(character)
if not head or not head:IsDescendantOf(character) then
-- FALLBACK: tentar encontrar cabeça novamente
head = character:FindFirstChild("Head") or character:FindFirstChild("head")
if not head then
WindowFocus.alvoAtual = nil
return
end
end
-- 🔥 PREDIÇÃO AVANÇADA COM MÚLTIPLAS VERIFICAÇÕES
local targetPosition = BodyPartSelector.predictPosition(head, Config.PREDICTION_TIME)
-- VERIFICAÇÃO FOV ULTRA-ESTRITA COM MÚLTIPLOS CHECKS
if not FOVSystem.calcular(targetPosition, camera) then
-- TENTATIVA SECUNDÁRIA: verificar posição atual da cabeça
local currentPos = GameDataSystem.getPosition(head)
if currentPos == Vector3.zero or not FOVSystem.calcular(currentPos, camera) then
WindowFocus.alvoAtual = nil
return
end
targetPosition = currentPos
end
-- POSIÇÃO DA CABEÇA NA TELA COM VALIDAÇÃO
local success, screenPos, visible = pcall(function()
return camera:WorldToViewportPoint(targetPosition)
end)
if not success or not visible or not screenPos then
WindowFocus.alvoAtual = nil
return
end
-- VERIFICAÇÃO DE DISTÂNCIA DA TELA (não pode estar muito longe)
local screenCenter = GameDataSystem.getViewportSize(camera)
if screenCenter == Vector2.zero then return end
screenCenter = screenCenter / 2
local screenDistance = (Vector2.new(screenPos.X, screenPos.Y) - screenCenter).Magnitude
if screenDistance > Config.FOV_SIZE * 1.5 then -- 50% de tolerância
WindowFocus.alvoAtual = nil
return
end
-- POSIÇÃO ATUAL DO MOUSE COM VALIDAÇÃO
local mousePos = GameDataSystem.getMouseLocation()
if mousePos == Vector2.zero then return end
-- DIFERENÇA ULTRA-PRECISA COM VALIDAÇÃO
local delta = Vector2.new(screenPos.X, screenPos.Y) - mousePos
-- 🔥 SISTEMA ULTRA-FORTE DE GRUDAÇÃO NA CABEÇA
-- THRESHOLD ULTRA-BAIXO PARA CABEÇA: muito mais sensível
local distanceFactor = screenDistance / Config.FOV_SIZE
local adaptiveThreshold = math.max(0.03, 1.2 - (distanceFactor * 0.8)) -- Threshold muito menor para cabeça
if math.abs(delta.X) > adaptiveThreshold or math.abs(delta.Y) > adaptiveThreshold then
-- 🔥 SUAVIZAÇÃO ULTRA-FORTE PARA CABEÇA
local adaptiveSmoothness = Config.SMOOTHNESS * (1 + distanceFactor * 0.8) -- Muito mais rápida quando longe
-- BONUS ULTRA-FORTE PARA CABEÇA: 80% mais forte na cabeça
local headBonus = Config.HEAD_BONUS_STRENGTH -- 1.8 = 80% mais forte
adaptiveSmoothness = adaptiveSmoothness * headBonus
-- LIMITES ULTRA-EXPANDIDOS PARA GRUDAÇÃO MÁXIMA NA CABEÇA
local maxMove = math.clamp(50 + (distanceFactor * 35), 30, 85) -- Limites muito maiores para cabeça
local moveX = math.clamp(delta.X * adaptiveSmoothness, -maxMove, maxMove)
local moveY = math.clamp(delta.Y * adaptiveSmoothness, -maxMove, maxMove)
-- VALIDAÇÃO FINAL ANTES DO MOVIMENTO
if moveX == moveX and moveY == moveY and -- Verificar se não é NaN
math.abs(moveX) > 0.1 and math.abs(moveY) > 0.1 then -- Movimento mínimo
-- MOVIMENTO ULTRA-SEGURO COM LOG DETALHADO
local moveSuccess = pcall(function()
mousemoverel(moveX, moveY)
end)
if moveSuccess then
-- VISUAL FEEDBACK AVANÇADO
if FOVSystem.circulo then
-- COR BASEADA NA DISTÂNCIA: vermelho = longe, verde = perto
local colorIntensity = 1 - math.min(distanceFactor, 1)
FOVSystem.circulo.Color = Color3.new(1, colorIntensity, 0) -- Amarelo para longe, vermelho para perto
end
else
print("❌ Falha ao mover mouse para", alvoAtual.Name)
end
end
else
-- VISUAL FEEDBACK QUANDO PRECISO (VERDE)
if FOVSystem.circulo then
FOVSystem.circulo.Color = Color3.fromRGB(0, 255, 0)
end
end
end
-- ========================================================================
-- [ UI AIMLOCK + CONTROLE ESP ] - INTERFACES SEPARADAS COM DESIGN BONITO
-- ========================================================================
local UIController = {
painel = nil,
gui = nil,
espToggle = nil
}
function UIController.criar()
local playerGui = LocalPlayer:WaitForChild("PlayerGui", 10)
if not playerGui then return end
UIController.gui = Instance.new("ScreenGui")
UIController.gui.Name = "AimbotUI"
UIController.gui.ResetOnSpawn = false
UIController.gui.Enabled = true
UIController.gui.Parent = playerGui
-- PAINEL AIMLOCK ULTRA-BONITO COM GRADIENTE
UIController.painel = Instance.new("Frame")
UIController.painel.Size = UDim2.new(0, 320, 0, 450)
UIController.painel.Position = UDim2.new(0.75, -160, 0.05, 0)
UIController.painel.AnchorPoint = Vector2.new(0.5, 0.5)
UIController.painel.BackgroundColor3 = Color3.fromRGB(15, 15, 25)
UIController.painel.BackgroundTransparency = 0.05
UIController.painel.BorderSizePixel = 0
UIController.painel.Parent = UIController.gui
UIController.painel.Active = true
UIController.painel.Draggable = true -- Arrastar de qualquer lugar
UIController.painel.Visible = false
-- GRADIENTE BONITO
local gradient = Instance.new("UIGradient")
gradient.Color = ColorSequence.new{
ColorSequenceKeypoint.new(0, Color3.fromRGB(25, 25, 45)),
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(20, 20, 35)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(15, 15, 25))
}
gradient.Parent = UIController.painel
-- BORDAS SUPER REDONDAS
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 25)
corner.Parent = UIController.painel
-- STROKE BONITO
local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(100, 100, 200)
stroke.Thickness = 2.5
stroke.Transparency = 0.2
stroke.Parent = UIController.painel
-- SOMBRA INTERNA BONITA
local shadow = Instance.new("Frame")
shadow.Size = UDim2.new(1, 6, 1, 6)
shadow.Position = UDim2.new(0, -3, 0, -3)
shadow.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
shadow.BackgroundTransparency = 0.8
shadow.BorderSizePixel = 0
shadow.ZIndex = -1
local shadowCorner = Instance.new("UICorner")
shadowCorner.CornerRadius = UDim.new(0, 28)
shadowCorner.Parent = shadow
shadow.Parent = UIController.painel
-- TITLE ULTRA-BONITO
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, 0, 0, 45)
title.BackgroundTransparency = 1
title.Text = "🎯 AIMBOT CABEÇA ULTRA-FORTE"
title.Font = Enum.Font.GothamBold
title.TextSize = 16
title.TextColor3 = Color3.fromRGB(255, 100, 100)
title.Parent = UIController.painel
-- AIM TOGGLE ULTRA-BONITO
local aimToggle = Instance.new("TextButton")
aimToggle.Size = UDim2.new(0.8, 0, 0, 35)
aimToggle.Position = UDim2.new(0.1, 0, 0.2, 0)
aimToggle.BackgroundColor3 = WindowFocus.aimAtivo and Color3.fromRGB(0, 180, 0) or Color3.fromRGB(180, 0, 0)
aimToggle.Text = "🎯 AIM: " .. (WindowFocus.aimAtivo and "ON" or "OFF")
aimToggle.Font = Enum.Font.GothamBold
aimToggle.TextSize = 14
aimToggle.TextColor3 = Color3.fromRGB(255, 255, 255)
aimToggle.BorderSizePixel = 0
aimToggle.Parent = UIController.painel
-- CORNER PARA O BOTÃO AIM
local aimCorner = Instance.new("UICorner")
aimCorner.CornerRadius = UDim.new(0, 10)
aimCorner.Parent = aimToggle
-- ESP TOGGLE ULTRA-BONITO (NOVO!)
local espToggle = Instance.new("TextButton")
espToggle.Size = UDim2.new(0.8, 0, 0, 35)
espToggle.Position = UDim2.new(0.1, 0, 0.32, 0)
espToggle.BackgroundColor3 = getgenv().ESP_Settings.Enabled and Color3.fromRGB(0, 150, 0) or Color3.fromRGB(150, 0, 0)
espToggle.Text = "👁️ ESP: " .. (getgenv().ESP_Settings.Enabled and "ON" or "OFF")
espToggle.Font = Enum.Font.GothamBold
espToggle.TextSize = 14
espToggle.TextColor3 = Color3.fromRGB(255, 255, 255)
espToggle.BorderSizePixel = 0
espToggle.Parent = UIController.painel
-- CORNER PARA O BOTÃO ESP
local espCorner = Instance.new("UICorner")
espCorner.CornerRadius = UDim.new(0, 10)
espCorner.Parent = espToggle
-- FOV SLIDER PARA CABEÇA (FOCO EM PRECISÃO)
local fovLabel = Instance.new("TextLabel")
fovLabel.Size = UDim2.new(0.8, 0, 0, 20)
fovLabel.Position = UDim2.new(0.1, 0, 0.48, 0)
fovLabel.BackgroundTransparency = 1
fovLabel.Text = "🎯 FOV CABEÇA: " .. Config.FOV_SIZE
fovLabel.Font = Enum.Font.GothamMedium
fovLabel.TextSize = 12
fovLabel.TextColor3 = Color3.fromRGB(255, 150, 150)
fovLabel.Parent = UIController.painel
-- SLIDER BACKGROUND ULTRA-BONITO
local sliderBg = Instance.new("Frame")
sliderBg.Size = UDim2.new(0.8, 0, 0, 15)
sliderBg.Position = UDim2.new(0.1, 0, 0.55, 0)
sliderBg.BackgroundColor3 = Color3.fromRGB(60, 30, 30)
sliderBg.BorderSizePixel = 2
sliderBg.BorderColor3 = Color3.fromRGB(150, 100, 100)
sliderBg.Parent = UIController.painel
-- CORNER PARA SLIDER
local sliderCorner = Instance.new("UICorner")
sliderCorner.CornerRadius = UDim.new(0, 7)
sliderCorner.Parent = sliderBg
-- SLIDER FILL ULTRA-BONITO
local sliderFill = Instance.new("Frame")
sliderFill.Size = UDim2.fromScale((Config.FOV_SIZE - 30) / 120, 1)
sliderFill.BackgroundColor3 = Color3.fromRGB(255, 100, 100)
sliderFill.BorderSizePixel = 0
sliderFill.Parent = sliderBg
-- CORNER PARA FILL
local fillCorner = Instance.new("UICorner")
fillCorner.CornerRadius = UDim.new(0, 7)
fillCorner.Parent = sliderFill
-- SLIDER HANDLE ULTRA-BONITO
local sliderHandle = Instance.new("Frame")
sliderHandle.Size = UDim2.new(0, 20, 0, 20)
sliderHandle.Position = UDim2.fromScale((Config.FOV_SIZE - 30) / 120 - 0.08, -0.25)
sliderHandle.BackgroundColor3 = Color3.fromRGB(255, 150, 150)
sliderHandle.BorderSizePixel = 3
sliderHandle.BorderColor3 = Color3.fromRGB(255, 255, 255)
sliderHandle.Parent = sliderBg
-- CORNER PARA HANDLE
local handleCorner = Instance.new("UICorner")
handleCorner.CornerRadius = UDim.new(0, 10)
handleCorner.Parent = sliderHandle
-- VARIÁVEIS DO SLIDER
local minFOV = 30
local maxFOV = 150
local draggingSlider = false
-- FUNÇÃO PARA ATUALIZAR SLIDER
local function updateSlider()
local percent = (Config.FOV_SIZE - minFOV) / (maxFOV - minFOV)
sliderFill.Size = UDim2.fromScale(math.clamp(percent, 0, 1), 1)
sliderHandle.Position = UDim2.fromScale(math.clamp(percent - 0.08, -0.08, 0.92), -0.25)
fovLabel.Text = "🎯 FOV CABEÇA: " .. Config.FOV_SIZE
end
-- EVENTOS DO SLIDER
sliderBg.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
draggingSlider = true
local percent = math.clamp((input.Position.X - sliderBg.AbsolutePosition.X) / sliderBg.AbsoluteSize.X, 0, 1)
Config.FOV_SIZE = math.floor(minFOV + (maxFOV - minFOV) * percent)
updateSlider()
end
end)
sliderBg.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
draggingSlider = false
end
end)
sliderHandle.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
draggingSlider = true
end
end)
sliderHandle.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
draggingSlider = false
end
end)
-- ATUALIZAR SLIDER QUANDO MOUSE SE MOVE
UIS.InputChanged:Connect(function(input)
if draggingSlider and input.UserInputType == Enum.UserInputType.MouseMovement then
local percent = math.clamp((input.Position.X - sliderBg.AbsolutePosition.X) / sliderBg.AbsoluteSize.X, 0, 1)
Config.FOV_SIZE = math.floor(minFOV + (maxFOV - minFOV) * percent)
updateSlider()
end
end)
-- STATUS DO AIMBOT ULTRA-BONITO
local statusText = Instance.new("TextLabel")
statusText.Size = UDim2.new(0.9, 0, 0, 80)
statusText.Position = UDim2.new(0.05, 0, 0.75, 0)
statusText.BackgroundTransparency = 1
statusText.Text = "🎯 AIMBOT CABEÇA ULTRA-FORTE\n🔥 PREDIÇÃO: " .. (Config.PREDICTION_ENABLED and "ON" or "OFF") .. "\n💪 FORÇA CABEÇA: " .. (Config.HEAD_BONUS_STRENGTH * 100) .. "%\n👁️ ESP: " .. (getgenv().ESP_Settings.Enabled and "ON" or "OFF")
statusText.Font = Enum.Font.GothamMedium
statusText.TextSize = 8
statusText.TextColor3 = Color3.fromRGB(255, 150, 150)
statusText.TextWrapped = true
statusText.Parent = UIController.painel
-- FUNCIONALIDADES DOS BOTÕES
aimToggle.MouseButton1Click:Connect(function()
if not WindowFocus.janelaEmFoco then
print("🚫 NÃO É POSSÍVEL ATIVAR AIMLOCK FORA DO ROBLOX")
return
end
WindowFocus.aimAtivo = not WindowFocus.aimAtivo
aimToggle.BackgroundColor3 = WindowFocus.aimAtivo and Color3.fromRGB(0, 180, 0) or Color3.fromRGB(180, 0, 0)
aimToggle.Text = "🎯 AIM: " .. (WindowFocus.aimAtivo and "ON" or "OFF")
if not WindowFocus.aimAtivo then
WindowFocus.alvoAtual = nil
end
-- Atualizar status
statusText.Text = "🎯 AIMBOT CABEÇA ULTRA-FORTE\n🔥 PREDIÇÃO: " .. (Config.PREDICTION_ENABLED and "ON" or "OFF") .. "\n💪 FORÇA CABEÇA: " .. (Config.HEAD_BONUS_STRENGTH * 100) .. "%\n👁️ ESP: " .. (getgenv().ESP_Settings.Enabled and "ON" or "OFF")
end)
-- FUNCIONALIDADE ESP TOGGLE (NOVO!)
espToggle.MouseButton1Click:Connect(function()
getgenv().ESP_Settings.Enabled = not getgenv().ESP_Settings.Enabled
espToggle.BackgroundColor3 = getgenv().ESP_Settings.Enabled and Color3.fromRGB(0, 150, 0) or Color3.fromRGB(150, 0, 0)
espToggle.Text = "👁️ ESP: " .. (getgenv().ESP_Settings.Enabled and "ON" or "OFF")
if getgenv().ESP_Settings.Enabled then
print("👁️ ESP ATIVADO - PRESSIONE RIGHT SHIFT PARA TOGGLE")
else
print("👁️ ESP DESATIVADO")
end
-- Atualizar status
statusText.Text = "🎯 AIMBOT CABEÇA ULTRA-FORTE\n🔥 PREDIÇÃO: " .. (Config.PREDICTION_ENABLED and "ON" or "OFF") .. "\n💪 FORÇA CABEÇA: " .. (Config.HEAD_BONUS_STRENGTH * 100) .. "%\n👁️ ESP: " .. (getgenv().ESP_Settings.Enabled and "ON" or "OFF")
end)
-- TOGGLE UI
UIS.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.KeyCode == Enum.KeyCode.Insert then
UIController.painel.Visible = not UIController.painel.Visible
print("🎮 UI:", UIController.painel.Visible and "VISÍVEL" or "OCULTA", "(tecle INSERT)")
end
end)
end
-- ========================================================================
-- [ CARREGAR ESP MELHORADO ]
-- ========================================================================
local function loadESP()
print("🎨 CARREGANDO ESP MELHORADO...")
-- CARREGAR ESP VIA LOADSTRING
local success, error = pcall(function()
loadstring(game:HttpGet("https://raw.githubusercontent.com/ZiriloXXX/EspTLF/refs/heads/main/script.lua"))()
end)
if success then
print("✅ ESP MELHORADO CARREGADO COM SUCESSO!")
print("🔴 VERMELHO = INIMIGOS | 🟢 VERDE = ALIADOS")
print("📦 BOX + NOME + DISTÂNCIA + HEALTH BAR")
print("🎯 RIGHT SHIFT PARA TOGGLE DO ESP")
else
print("❌ ERRO AO CARREGAR ESP:", error)
print("🎯 AIMBOT FUNCIONARÁ NORMALMENTE SEM ESP")
end
end
-- ========================================================================
-- [ INICIALIZAÇÃO ULTRA-RÁPIDA ]
-- ========================================================================
print("🎯 INICIALIZANDO AIMBOT CABEÇA ULTRA-FORTE + ESP SEPARADO...")
-- INICIALIZAR COMPONENTES
WindowFocus.inicializar()
FOVSystem.criarCirculo()
UIController.criar()
-- CARREGAR ESP MELHORADO (SEPARADO)
loadESP()
print("✅ SISTEMA CABEÇA ULTRA-FORTE INICIALIZADO!")
print("🎯 AIMLOCK: GRUDAÇÃO ULTRA-FORTE NA CABEÇA")
print("⚡ FOV CABEÇA RESTRITO: " .. Config.FOV_SIZE)
print("🔥 SUAVIZAÇÃO ULTRA-RÁPIDA: " .. Config.SMOOTHNESS)
print("💪 BONUS CABEÇA: " .. (Config.HEAD_BONUS_STRENGTH * 100) .. "% MAIS FORTE")
print("🎨 ESP: CARREGADO SEPARADAMENTE (RIGHT SHIFT)")
print("🎮 INSERT PARA UI DO AIMBOT")
print("👁️ BOTÃO ESP NA INTERFACE PARA ATIVAR/DESATIVAR")
-- ========================================================================
-- [ LOOP PRINCIPAL ULTRA-OTIMIZADO ]
-- ========================================================================
RunService.RenderStepped:Connect(function()
-- 🔥 VERIFICAÇÃO CRÍTICA DE FOCO - SEMPRE PRIMEIRO
if not WindowFocus.janelaEmFoco then
return
end
-- VALIDAR CÂMERA ULTRA-RÁPIDA
local camera = GameDataSystem.getCamera()
if not camera then return end
local viewportCenter = GameDataSystem.getViewportSize(camera)
if viewportCenter == Vector2.zero then return end
viewportCenter = viewportCenter / 2
-- 🔥 AIMLOCK LÓGICA ULTRA-PRECIOSA - CABEÇA SEMPRE
if WindowFocus.aimAtivo then
-- VALIDAR ALVO ATUAL CONSTANTEMENTE
if WindowFocus.alvoAtual and not EnemyDetector.ehValido(WindowFocus.alvoAtual) then
WindowFocus.alvoAtual = nil
end
-- PROCURAR MELHOR CABEÇA CONSTANTEMENTE
if not WindowFocus.alvoAtual then
WindowFocus.alvoAtual = TargetSelector.encontrarMelhor(camera)
end
-- APLICAR AIMLOCK NA CABEÇA
if WindowFocus.alvoAtual then
AimController.aplicar(WindowFocus.alvoAtual, camera)
end
end
-- FOV VISUAL ULTRA-PRECIso
FOVSystem.atualizar()
end)
print("🎯 AIMBOT CABEÇA ULTRA-FORTE OPERACIONAL!")
print("🔥 SEMPRE TRAVA NA CABEÇA COM FORÇA MÁXIMA")
print("⚡ PREDIÇÃO DE MOVIMENTO ATIVA (80ms)")
print("🎚️ SLIDER FOV CABEÇA FUNCIONAL (30-150)")
print("💪 BONUS CABEÇA: " .. (Config.HEAD_BONUS_STRENGTH * 100) .. "% MAIS FORTE")
print("🎨 ESP CARREGADO SEPARADAMENTE (RIGHT SHIFT)")
print("🚫 CURSOR SEGURO FORA DO ROBLOX")
print("🎮 ARRASTE O PAINEL INTEIRO PARA MOVER")
print("⚡ GRUDAÇÃO ULTRA-FORTE: threshold mínimo + movimento máximo para cabeça")No comments yet for this script.



