-- gerasHUB v1.2 - Arrumado 2026 | ESP + Sticky Aimbot (mais compatível) -- Right Shift para abrir | Clique esquerdo para travar (ou auto closest) local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local player = Players.LocalPlayer local mouse = player:GetMouse() local camera = workspace.CurrentCamera -- Configs (edite aqui se quiser) local ESP_ENABLED_BY_DEFAULT = false local AIM_ENABLED_BY_DEFAULT = false local AIM_SMOOTH = 0.08 -- Menor = mais suave / menos detectável local MAX_AIM_DIST = 350 -- studs local TEAM_CHECK = true -- Não mira em teammates local AIM_PART = "Head" -- ou "UpperTorso" / "HumanoidRootPart" -- GUI local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "gerasHUB_Clean" ScreenGui.ResetOnSpawn = false if game:GetService("CoreGui"):FindFirstChild(ScreenGui.Name) then game:GetService("CoreGui")[ScreenGui.Name]:Destroy() end ScreenGui.Parent = game:GetService("CoreGui") local MainFrame = Instance.new("Frame") MainFrame.Size = UDim2.new(0, 280, 0, 160) MainFrame.Position = UDim2.new(0.5, -140, 0.5, -80) MainFrame.BackgroundColor3 = Color3.fromRGB(28, 28, 32) MainFrame.BorderSizePixel = 0 MainFrame.Visible = false MainFrame.Parent = ScreenGui local UICorner = Instance.new("UICorner") UICorner.CornerRadius = UDim2.new(0, 10, 0, 10) UICorner.Parent = MainFrame local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, 0, 0, 35) Title.BackgroundTransparency = 1 Title.Text = "gerasHUB v1.2 - Clean" Title.TextColor3 = Color3.fromRGB(200, 220, 255) Title.TextScaled = true Title.Font = Enum.Font.GothamBold Title.Parent = MainFrame local ESPBtn = Instance.new("TextButton") ESPBtn.Size = UDim2.new(0.9, 0, 0, 40) ESPBtn.Position = UDim2.new(0.05, 0, 0.3, 0) ESPBtn.BackgroundColor3 = Color3.fromRGB(180, 60, 60) ESPBtn.Text = "ESP: OFF" ESPBtn.TextColor3 = Color3.fromRGB(255,255,255) ESPBtn.TextScaled = true ESPBtn.Font = Enum.Font.GothamSemibold ESPBtn.Parent = MainFrame local espCorner = Instance.new("UICorner", ESPBtn); espCorner.CornerRadius = UDim2.new(0,8,0,8) local AimBtn = Instance.new("TextButton") AimBtn.Size = UDim2.new(0.9, 0, 0, 40) AimBtn.Position = UDim2.new(0.05, 0, 0.62, 0) AimBtn.BackgroundColor3 = Color3.fromRGB(180, 60, 60) AimBtn.Text = "Aimbot: OFF" AimBtn.TextColor3 = Color3.fromRGB(255,255,255) AimBtn.TextScaled = true AimBtn.Font = Enum.Font.GothamSemibold AimBtn.Parent = MainFrame local aimCorner = Instance.new("UICorner", AimBtn); aimCorner.CornerRadius = UDim2.new(0,8,0,8) -- Variáveis local ESPToggle = ESP_ENABLED_BY_DEFAULT local AimBotActive = AIM_ENABLED_BY_DEFAULT local LockedTarget = nil local ESPHighlights = {} -- Drag (arrastar janela) local dragging, dragInput, dragStart, startPos Title.InputBegan:Connect(function(inp) if inp.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = inp.Position startPos = MainFrame.Position inp.Changed:Connect(function() if inp.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) Title.InputChanged:Connect(function(inp) if inp.UserInputType == Enum.UserInputType.MouseMovement then dragInput = inp end end) UserInputService.InputChanged:Connect(function(inp) if inp == dragInput and dragging then local delta = inp.Position - dragStart MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) -- Toggle GUI UserInputService.InputBegan:Connect(function(inp, gpe) if gpe then return end if inp.KeyCode == Enum.KeyCode.RightShift then MainFrame.Visible = not MainFrame.Visible end end) -- Toggle ESP ESPBtn.MouseButton1Click:Connect(function() ESPToggle = not ESPToggle ESPBtn.Text = "ESP: " .. (ESPToggle and "ON" or "OFF") ESPBtn.BackgroundColor3 = ESPToggle and Color3.fromRGB(60,180,60) or Color3.fromRGB(180,60,60) end) -- Toggle Aimbot AimBtn.MouseButton1Click:Connect(function() AimBotActive = not AimBotActive AimBtn.Text = "Aimbot: " .. (AimBotActive and "ON" or "OFF") AimBtn.BackgroundColor3 = AimBotActive and Color3.fromRGB(60,180,60) or Color3.fromRGB(180,60,60) if not AimBotActive then LockedTarget = nil end end) -- ESP Loop RunService.Heartbeat:Connect(function() if not ESPToggle then for _, h in pairs(ESPHighlights) do pcall(h.Destroy, h) end ESPHighlights = {} return end local myChar = player.Character if not myChar or not myChar:FindFirstChild("HumanoidRootPart") then return end local myPos = myChar.HumanoidRootPart.Position -- Limpa distantes/inválidos for i = #ESPHighlights, 1, -1 do local h = ESPHighlights[i] if h and h.Parent then local plr = Players:GetPlayerFromCharacter(h.Parent) if plr and plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then if (myPos - plr.Character.HumanoidRootPart.Position).Magnitude > 200 then pcall(h.Destroy, h) table.remove(ESPHighlights, i) end else pcall(h.Destroy, h) table.remove(ESPHighlights, i) end else table.remove(ESPHighlights, i) end end -- Adiciona novos for _, p in pairs(Players:GetPlayers()) do if p == player then continue end local char = p.Character if not char or not char:FindFirstChild("HumanoidRootPart") then continue end if (myPos - char.HumanoidRootPart.Position).Magnitude > 200 then continue end local has = false for _, h in pairs(ESPHighlights) do if h.Parent == char then has = true; break end end if not has then local hl = Instance.new("Highlight") hl.Name = "ESP" hl.Adornee = char hl.FillColor = Color3.fromRGB(255, 80, 80) hl.OutlineColor = Color3.fromRGB(255,255,255) hl.FillTransparency = 0.5 hl.OutlineTransparency = 0 hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop hl.Parent = char table.insert(ESPHighlights, hl) end end end) -- Função closest target (fallback se não lock manual) local function GetClosestTarget() local myChar = player.Character if not myChar or not myChar:FindFirstChild("HumanoidRootPart") then return nil end local myPos = myChar.HumanoidRootPart.Position local closest, minDist = nil, MAX_AIM_DIST for _, p in pairs(Players:GetPlayers()) do if p == player then continue end if TEAM_CHECK and p.Team == player.Team then continue end local char = p.Character if not char or not char:FindFirstChild(AIM_PART) or not char:FindFirstChild("Humanoid") or char.Humanoid.Health <= 0 then continue end local dist = (myPos - char.HumanoidRootPart.Position).Magnitude if dist < minDist then minDist = dist closest = char end end return closest end -- Clique para lock (prioridade) ou usa closest UserInputService.InputBegan:Connect(function(inp, gpe) if gpe or not AimBotActive then return end if inp.UserInputType == Enum.UserInputType.MouseButton1 then local tgt = mouse.Target if tgt then local mdl = tgt:FindFirstAncestorWhichIsA("Model") if mdl and mdl:FindFirstChild("Humanoid") and mdl:FindFirstChild(AIM_PART) and Players:GetPlayerFromCharacter(mdl) and mdl ~= player.Character then LockedTarget = mdl print("Locked on: " .. (mdl.Name or "unknown")) return end end -- Fallback: lock no mais próximo se clique sem alvo válido LockedTarget = GetClosestTarget() if LockedTarget then print("Auto-locked closest") end end end) -- Aimbot loop RunService.RenderStepped:Connect(function() if not AimBotActive then LockedTarget = nil return end -- Tenta Scriptable (muitos jogos permitem, outros revertem) pcall(function() if camera.CameraType ~= Enum.CameraType.Scriptable then camera.CameraType = Enum.CameraType.Scriptable end end) local target = LockedTarget or GetClosestTarget() if not target or not target:FindFirstChild(AIM_PART) or not target:FindFirstChild("Humanoid") or target.Humanoid.Health <= 0 then LockedTarget = nil return end local targetPos = target[AIM_PART].Position local camPos = camera.CFrame.Position local dir = (targetPos - camPos).Unit if camera.CFrame.LookVector:Dot(dir) < -0.05 then -- soltura se >90° approx LockedTarget = nil return end local goal = CFrame.lookAt(camPos, targetPos) camera.CFrame = camera.CFrame:Lerp(goal, AIM_SMOOTH) end) -- Limpeza respawn player.CharacterAdded:Connect(function() task.wait(1) LockedTarget = nil for _, h in pairs(ESPHighlights) do pcall(h.Destroy, h) end ESPHighlights = {} end) print("gerasHUB v1.2 arrumado! • Right Shift para abrir • Use com cuidado")