-- EstiHUB v5 | Age of Heroes | local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local VirtualUser = game:GetService("VirtualUser") local Camera = workspace.CurrentCamera local LocalPlayer = Players.LocalPlayer -- ===== НАСТРОЙКИ (можно менять в меню) ===== local KILLAURA_RANGE = 30 local hitboxScale = 1.8 -- текущий множитель хитбоксов local minHitbox = 1.0 local maxHitbox = 5.0 -- Цвета для ESP (по умолчанию) local heroColor = Color3.fromRGB(0, 255, 0) -- зелёный local villainColor = Color3.fromRGB(255, 0, 0) -- красный -- Настройки отображения local showName = true local showDistance = true local showSkeleton = false local useTeamColor = false -- если true, используем цвет команды (если есть) -- ===== СОСТОЯНИЯ ===== local killAuraEnabled = false local espEnabled = false local autoFarmEnabled = false local teamCheck = false local hitboxEnabled = false local menuOpen = true -- ===== ХРАНИЛИЩА ===== local originalSizes = {} local espObjects = {} local skeletonLines = {} -- для линий скелета -- ===== ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ ===== local function getValidPlayers() local list = {} for _, player in pairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then if teamCheck and player.Team == LocalPlayer.Team then -- пропускаем союзников else local hum = player.Character:FindFirstChild("Humanoid") if hum and hum.Health > 0 then table.insert(list, player) end end end end return list end local function getClosestPlayer() local closest = nil local shortestDist = math.huge local origin = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") if not origin then return nil end for _, player in pairs(getValidPlayers()) do local target = player.Character and player.Character:FindFirstChild("HumanoidRootPart") if target then local dist = (origin.Position - target.Position).Magnitude if dist < shortestDist then shortestDist = dist closest = player end end end return closest, shortestDist end -- ===== ХИТБОКСЫ (регулируемые) ===== local function expandHitboxes(player) if not player or not player.Character then return end local character = player.Character if not originalSizes[player] then originalSizes[player] = {} end for _, part in pairs(character:GetDescendants()) do if part:IsA("BasePart") and part.CanCollide then if not originalSizes[player][part] then originalSizes[player][part] = part.Size end if hitboxEnabled then part.Size = originalSizes[player][part] * hitboxScale else part.Size = originalSizes[player][part] end end end end local function applyHitboxToAll() for _, player in pairs(Players:GetPlayers()) do if player ~= LocalPlayer then expandHitboxes(player) end end end -- следим за новыми игроками и перерождениями local function onPlayerAdded(player) player.CharacterAdded:Connect(function(character) task.wait(0.2) expandHitboxes(player) end) if player.Character then task.wait(0.2) expandHitboxes(player) end end -- ===== KILL AURA (реальный клик) ===== local function killAuraLoop() if not killAuraEnabled then return end local target, dist = getClosestPlayer() if target and dist <= KILLAURA_RANGE then pcall(function() VirtualUser:Click() end) end end -- ===== ESP (с цветами команд и скелетом) ===== local function getPlayerColor(player) if useTeamColor and player.Team then local teamColor = player.Team.TeamColor if teamColor then return teamColor.Color end end -- если команда Hero или Villain (по названию) if player.Team and player.Team.Name == "Hero" then return heroColor elseif player.Team and player.Team.Name == "Villain" then return villainColor else return Color3.fromRGB(255, 255, 255) -- белый для нейтральных end end -- Создание BillboardGui для ESP local function createESP(player) if espObjects[player] then return end local billboard = Instance.new("BillboardGui") billboard.Name = "EstiESP" billboard.Size = UDim2.new(0, 250, 0, 60) billboard.StudsOffset = Vector3.new(0, 3, 0) billboard.AlwaysOnTop = true billboard.Enabled = false local nameLabel = Instance.new("TextLabel", billboard) nameLabel.Size = UDim2.new(1, 0, 0.4, 0) nameLabel.BackgroundTransparency = 1 nameLabel.TextColor3 = getPlayerColor(player) nameLabel.TextStrokeTransparency = 0.3 nameLabel.Font = Enum.Font.GothamBold nameLabel.TextSize = 14 nameLabel.Text = player.Name local distLabel = Instance.new("TextLabel", billboard) distLabel.Size = UDim2.new(1, 0, 0.3, 0) distLabel.Position = UDim2.new(0, 0, 0.4, 0) distLabel.BackgroundTransparency = 1 distLabel.TextColor3 = Color3.fromRGB(255, 255, 255) distLabel.Font = Enum.Font.Gotham distLabel.TextSize = 12 distLabel.Text = "0 studs" local healthLabel = Instance.new("TextLabel", billboard) healthLabel.Size = UDim2.new(1, 0, 0.3, 0) healthLabel.Position = UDim2.new(0, 0, 0.7, 0) healthLabel.BackgroundTransparency = 1 healthLabel.TextColor3 = Color3.fromRGB(0, 255, 0) healthLabel.Font = Enum.Font.Gotham healthLabel.TextSize = 12 healthLabel.Text = "100%" espObjects[player] = { billboard = billboard, nameLabel = nameLabel, distLabel = distLabel, healthLabel = healthLabel } end -- Обновление ESP local function updateESP() if not espEnabled then for _, data in pairs(espObjects) do data.billboard.Enabled = false end -- скрыть скелет for _, lines in pairs(skeletonLines) do for _, line in pairs(lines) do line.Visible = false end end return end for player, data in pairs(espObjects) do local billboard = data.billboard local nameLabel = data.nameLabel local distLabel = data.distLabel local healthLabel = data.healthLabel if player.Character and player.Character:FindFirstChild("HumanoidRootPart") and player ~= LocalPlayer then if teamCheck and player.Team == LocalPlayer.Team then billboard.Enabled = false else billboard.Enabled = true local dist = (LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") and (LocalPlayer.Character.HumanoidRootPart.Position - player.Character.HumanoidRootPart.Position).Magnitude) or 0 distLabel.Text = math.floor(dist) .. " studs" local hum = player.Character:FindFirstChild("Humanoid") if hum then local hpPercent = (hum.Health / hum.MaxHealth) * 100 healthLabel.Text = math.floor(hpPercent) .. "%" healthLabel.TextColor3 = Color3.fromRGB(255 * (1 - hpPercent/100), 255 * (hpPercent/100), 0) end -- обновляем цвет имени в зависимости от команды nameLabel.TextColor3 = getPlayerColor(player) nameLabel.Text = showName and player.Name or "" distLabel.Visible = showDistance healthLabel.Visible = true local head = player.Character:FindFirstChild("Head") or player.Character:FindFirstChild("HumanoidRootPart") if head then billboard.Parent = head end end else billboard.Enabled = false end end -- Скелет (кости) if showSkeleton and espEnabled then for player, data in pairs(espObjects) do if player.Character and player ~= LocalPlayer then -- рисуем линии между суставами local parts = { "Head", "UpperTorso", "LowerTorso", "LeftUpperArm", "LeftLowerArm", "RightUpperArm", "RightLowerArm", "LeftUpperLeg", "LeftLowerLeg", "RightUpperLeg", "RightLowerLeg" } local connections = { {"Head", "UpperTorso"}, {"UpperTorso", "LowerTorso"}, {"UpperTorso", "LeftUpperArm"}, {"LeftUpperArm", "LeftLowerArm"}, {"UpperTorso", "RightUpperArm"}, {"RightUpperArm", "RightLowerArm"}, {"LowerTorso", "LeftUpperLeg"}, {"LeftUpperLeg", "LeftLowerLeg"}, {"LowerTorso", "RightUpperLeg"}, {"RightUpperLeg", "RightLowerLeg"}, } if not skeletonLines[player] then skeletonLines[player] = {} for i = 1, #connections do local line = Drawing.new("Line") line.Thickness = 2 line.Color = getPlayerColor(player) line.Transparency = 0.5 line.Visible = false skeletonLines[player][i] = line end end local lines = skeletonLines[player] local char = player.Character for i, conn in pairs(connections) do local p1 = char:FindFirstChild(conn[1]) local p2 = char:FindFirstChild(conn[2]) if p1 and p2 then local pos1, onScreen1 = Camera:WorldToViewportPoint(p1.Position) local pos2, onScreen2 = Camera:WorldToViewportPoint(p2.Position) if onScreen1 and onScreen2 then lines[i].From = Vector2.new(pos1.X, pos1.Y) lines[i].To = Vector2.new(pos2.X, pos2.Y) lines[i].Visible = true lines[i].Color = getPlayerColor(player) else lines[i].Visible = false end else lines[i].Visible = false end end else if skeletonLines[player] then for _, line in pairs(skeletonLines[player]) do line.Visible = false end end end end else for _, lines in pairs(skeletonLines) do for _, line in pairs(lines) do line.Visible = false end end end end -- Прикрепление ESP к игроку local function attachESP(player) createESP(player) player.CharacterAdded:Connect(function(character) task.wait(0.2) local data = espObjects[player] if data and data.billboard then local head = character:FindFirstChild("Head") or character:FindFirstChild("HumanoidRootPart") if head then data.billboard.Parent = head end end end) if player.Character then local data = espObjects[player] if data and data.billboard then local head = player.Character:FindFirstChild("Head") or player.Character:FindFirstChild("HumanoidRootPart") if head then data.billboard.Parent = head end end end end -- ===== AUTO FARM (NPC) ===== local function findNPCs() local npcs = {} for _, obj in pairs(workspace:GetDescendants()) do if obj:IsA("Model") and obj:FindFirstChild("Humanoid") then local isPlayer = false for _, player in pairs(Players:GetPlayers()) do if player.Character == obj then isPlayer = true break end end if not isPlayer then table.insert(npcs, obj) end end end return npcs end local function autoFarmLoop() if not autoFarmEnabled then return end local npcs = findNPCs() local origin = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") if not origin then return end local closestNPC = nil local shortestDist = math.huge for _, npc in pairs(npcs) do local hrp = npc:FindFirstChild("HumanoidRootPart") if hrp then local dist = (origin.Position - hrp.Position).Magnitude if dist < shortestDist then shortestDist = dist closestNPC = npc end end end if closestNPC and shortestDist <= KILLAURA_RANGE then pcall(function() VirtualUser:Click() end) elseif closestNPC then local hrp = closestNPC:FindFirstChild("HumanoidRootPart") if hrp and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then LocalPlayer.Character.HumanoidRootPart.CFrame = hrp.CFrame + Vector3.new(0, 5, 0) end end end -- ===== РАДУЖНАЯ НАДПИСЬ (уменьшена, в рамке) ===== local function createRainbowText() local gui = Instance.new("ScreenGui") gui.Name = "EstikBloody" gui.Parent = LocalPlayer:WaitForChild("PlayerGui") gui.ResetOnSpawn = false local frame = Instance.new("Frame") frame.Parent = gui frame.BackgroundColor3 = Color3.fromRGB(0, 0, 0, 0.5) frame.BorderSizePixel = 2 frame.BorderColor3 = Color3.fromRGB(255, 0, 255) frame.Size = UDim2.new(0, 120, 0, 30) frame.Position = UDim2.new(0.02, 0, 0.02, 0) local label = Instance.new("TextLabel") label.Parent = frame label.Text = "EstikBloody" label.TextColor3 = Color3.fromRGB(255, 0, 0) label.BackgroundTransparency = 1 label.Size = UDim2.new(1, 0, 1, 0) label.Font = Enum.Font.GothamBold label.TextSize = 14 label.TextScaled = true label.TextStrokeTransparency = 0.2 local hue = 0 RunService.RenderStepped:Connect(function() hue = (hue + 0.005) % 1 label.TextColor3 = Color3.fromHSV(hue, 1, 1) end) return frame end -- ===== КРАСИВОЕ МЕНЮ (квадратное, с вкладками, закругления) ===== local function createMainMenu() local playerGui = LocalPlayer:WaitForChild("PlayerGui") local screenGui = Instance.new("ScreenGui") screenGui.Name = "EstiHUB_Menu" screenGui.Parent = playerGui screenGui.ResetOnSpawn = false local mainFrame = Instance.new("Frame") mainFrame.Parent = screenGui mainFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 30) mainFrame.BackgroundTransparency = 0.15 mainFrame.BorderSizePixel = 0 mainFrame.Position = UDim2.new(0.35, 0, 0.15, 0) mainFrame.Size = UDim2.new(0, 320, 0, 340) mainFrame.Active = true mainFrame.Draggable = true mainFrame.ClipsDescendants = true -- закругления (с помощью Corner) local corner = Instance.new("UICorner") corner.Parent = mainFrame corner.CornerRadius = UDim.new(0, 10) -- тень local shadow = Instance.new("Frame") shadow.Parent = mainFrame shadow.BackgroundColor3 = Color3.fromRGB(0,0,0) shadow.BackgroundTransparency = 0.5 shadow.Size = UDim2.new(1, 0, 1, 0) shadow.Position = UDim2.new(0, 5, 0, 5) shadow.ZIndex = -1 shadow.BorderSizePixel = 0 local shadowCorner = Instance.new("UICorner") shadowCorner.Parent = shadow shadowCorner.CornerRadius = UDim.new(0, 10) local title = Instance.new("TextLabel") title.Parent = mainFrame title.Text = "EstiHUB" title.TextColor3 = Color3.fromRGB(255, 70, 70) title.BackgroundTransparency = 1 title.Size = UDim2.new(1, 0, 0, 40) title.Position = UDim2.new(0, 0, 0, 0) title.Font = Enum.Font.GothamBold title.TextSize = 24 title.TextXAlignment = Enum.TextXAlignment.Center -- Панель вкладок local tabPanel = Instance.new("Frame") tabPanel.Parent = mainFrame tabPanel.BackgroundColor3 = Color3.fromRGB(45, 45, 55) tabPanel.BackgroundTransparency = 0.2 tabPanel.BorderSizePixel = 0 tabPanel.Size = UDim2.new(1, 0, 0, 35) tabPanel.Position = UDim2.new(0, 0, 0, 40) local contentPanel = Instance.new("Frame") contentPanel.Parent = mainFrame contentPanel.BackgroundColor3 = Color3.fromRGB(30, 30, 40) contentPanel.BackgroundTransparency = 0.3 contentPanel.BorderSizePixel = 0 contentPanel.Size = UDim2.new(1, 0, 1, -75) contentPanel.Position = UDim2.new(0, 0, 0, 75) local tabs = { {name = "Combat", id = "combat"}, {name = "ESP", id = "esp"}, {name = "Farm", id = "farm"}, {name = "Hitbox", id = "hitbox"}, {name = "Settings", id = "settings"} } local tabButtons = {} local contentFrames = {} local function createTabButton(tabName, tabId, xPos) local btn = Instance.new("TextButton") btn.Parent = tabPanel btn.Text = tabName btn.BackgroundColor3 = Color3.fromRGB(55, 55, 65) btn.Size = UDim2.new(0, 64, 1, -2) btn.Position = UDim2.new(0, xPos, 0, 1) btn.BorderSizePixel = 0 btn.Font = Enum.Font.Gotham btn.TextSize = 12 btn.TextColor3 = Color3.fromRGB(220, 220, 220) btn.Name = tabId tabButtons[tabId] = btn return btn end local function createContentFrame(tabId) local frame = Instance.new("Frame") frame.Parent = contentPanel frame.BackgroundTransparency = 1 frame.Size = UDim2.new(1, 0, 1, 0) frame.Position = UDim2.new(0, 0, 0, 0) frame.Visible = false frame.Name = tabId contentFrames[tabId] = frame return frame end -- ===== ВКЛАДКА COMBAT ===== local combatFrame = createContentFrame("combat") local killBtn = Instance.new("TextButton") killBtn.Parent = combatFrame killBtn.Text = "Kill Aura: OFF" killBtn.BackgroundColor3 = Color3.fromRGB(70, 70, 80) killBtn.Size = UDim2.new(0.8, 0, 0, 35) killBtn.Position = UDim2.new(0.1, 0, 0.1, 0) killBtn.Font = Enum.Font.Gotham killBtn.TextSize = 14 killBtn.TextColor3 = Color3.fromRGB(255, 255, 255) killBtn.BorderSizePixel = 0 killBtn.MouseButton1Click:Connect(function() killAuraEnabled = not killAuraEnabled killBtn.Text = killAuraEnabled and "Kill Aura: ON" or "Kill Aura: OFF" end) -- ===== ВКЛАДКА ESP ===== local espFrame = createContentFrame("esp") local espBtn = Instance.new("TextButton") espBtn.Parent = espFrame espBtn.Text = "ESP: OFF" espBtn.BackgroundColor3 = Color3.fromRGB(70, 70, 80) espBtn.Size = UDim2.new(0.8, 0, 0, 30) espBtn.Position = UDim2.new(0.1, 0, 0.05, 0) espBtn.Font = Enum.Font.Gotham espBtn.TextSize = 14 espBtn.TextColor3 = Color3.fromRGB(255, 255, 255) espBtn.BorderSizePixel = 0 espBtn.MouseButton1Click:Connect(function() espEnabled = not espEnabled espBtn.Text = espEnabled and "ESP: ON" or "ESP: OFF" if espEnabled then for _, player in pairs(Players:GetPlayers()) do attachESP(player) end end end) -- Настройки отображения local nameCheck = Instance.new("TextButton") nameCheck.Parent = espFrame nameCheck.Text = "Show Name: ON" nameCheck.BackgroundColor3 = Color3.fromRGB(55, 55, 65) nameCheck.Size = UDim2.new(0.35, 0, 0, 25) nameCheck.Position = UDim2.new(0.1, 0, 0.2, 0) nameCheck.Font = Enum.Font.Gotham nameCheck.TextSize = 12 nameCheck.TextColor3 = Color3.fromRGB(220, 220, 220) nameCheck.BorderSizePixel = 0 nameCheck.MouseButton1Click:Connect(function() showName = not showName nameCheck.Text = showName and "Show Name: ON" or "Show Name: OFF" end) local distCheck = Instance.new("TextButton") distCheck.Parent = espFrame distCheck.Text = "Show Dist: ON" distCheck.BackgroundColor3 = Color3.fromRGB(55, 55, 65) distCheck.Size = UDim2.new(0.35, 0, 0, 25) distCheck.Position = UDim2.new(0.55, 0, 0.2, 0) distCheck.Font = Enum.Font.Gotham distCheck.TextSize = 12 distCheck.TextColor3 = Color3.fromRGB(220, 220, 220) distCheck.BorderSizePixel = 0 distCheck.MouseButton1Click:Connect(function() showDistance = not showDistance distCheck.Text = showDistance and "Show Dist: ON" or "Show Dist: OFF" end) local skeletonCheck = Instance.new("TextButton") skeletonCheck.Parent = espFrame skeletonCheck.Text = "Skeleton: OFF" skeletonCheck.BackgroundColor3 = Color3.fromRGB(55, 55, 65) skeletonCheck.Size = UDim2.new(0.35, 0, 0, 25) skeletonCheck.Position = UDim2.new(0.1, 0, 0.35, 0) skeletonCheck.Font = Enum.Font.Gotham skeletonCheck.TextSize = 12 skeletonCheck.TextColor3 = Color3.fromRGB(220, 220, 220) skeletonCheck.BorderSizePixel = 0 skeletonCheck.MouseButton1Click:Connect(function() showSkeleton = not showSkeleton skeletonCheck.Text = showSkeleton and "Skeleton: ON" or "Skeleton: OFF" if not showSkeleton then for _, lines in pairs(skeletonLines) do for _, line in pairs(lines) do line.Visible = false end end end end) -- Выбор цвета для Hero local heroColorLabel = Instance.new("TextLabel") heroColorLabel.Parent = espFrame heroColorLabel.Text = "Hero Color:" heroColorLabel.BackgroundTransparency = 1 heroColorLabel.Size = UDim2.new(0.3, 0, 0, 25) heroColorLabel.Position = UDim2.new(0.05, 0, 0.5, 0) heroColorLabel.Font = Enum.Font.Gotham heroColorLabel.TextSize = 12 heroColorLabel.TextColor3 = Color3.fromRGB(200,200,200) heroColorLabel.TextXAlignment = Enum.TextXAlignment.Right local heroColorBtn = Instance.new("TextButton") heroColorBtn.Parent = espFrame heroColorBtn.Text = "Green" heroColorBtn.BackgroundColor3 = Color3.fromRGB(0, 255, 0) heroColorBtn.Size = UDim2.new(0.2, 0, 0, 25) heroColorBtn.Position = UDim2.new(0.4, 0, 0.5, 0) heroColorBtn.Font = Enum.Font.Gotham heroColorBtn.TextSize = 12 heroColorBtn.TextColor3 = Color3.fromRGB(0,0,0) heroColorBtn.BorderSizePixel = 0 local heroColors = {Color3.fromRGB(0,255,0), Color3.fromRGB(0,0,255), Color3.fromRGB(255,255,0), Color3.fromRGB(255,0,255), Color3.fromRGB(255,165,0), Color3.fromRGB(255,255,255), Color3.fromRGB(255,0,0)} local heroColorNames = {"Green","Blue","Yellow","Purple","Orange","White","Red"} local heroIdx = 1 heroColorBtn.MouseButton1Click:Connect(function() heroIdx = heroIdx % #heroColors + 1 heroColor = heroColors[heroIdx] heroColorBtn.BackgroundColor3 = heroColor heroColorBtn.Text = heroColorNames[heroIdx] -- обновить цвет у существующих ESP for player, data in pairs(espObjects) do if data.nameLabel then data.nameLabel.TextColor3 = getPlayerColor(player) end end end) -- Выбор цвета для Villain local villainColorLabel = Instance.new("TextLabel") villainColorLabel.Parent = espFrame villainColorLabel.Text = "Villain Color:" villainColorLabel.BackgroundTransparency = 1 villainColorLabel.Size = UDim2.new(0.3, 0, 0, 25) villainColorLabel.Position = UDim2.new(0.05, 0, 0.7, 0) villainColorLabel.Font = Enum.Font.Gotham villainColorLabel.TextSize = 12 villainColorLabel.TextColor3 = Color3.fromRGB(200,200,200) villainColorLabel.TextXAlignment = Enum.TextXAlignment.Right local villainColorBtn = Instance.new("TextButton") villainColorBtn.Parent = espFrame villainColorBtn.Text = "Red" villainColorBtn.BackgroundColor3 = Color3.fromRGB(255, 0, 0) villainColorBtn.Size = UDim2.new(0.2, 0, 0, 25) villainColorBtn.Position = UDim2.new(0.4, 0, 0.7, 0) villainColorBtn.Font = Enum.Font.Gotham villainColorBtn.TextSize = 12 villainColorBtn.TextColor3 = Color3.fromRGB(255,255,255) villainColorBtn.BorderSizePixel = 0 local villainColors = {Color3.fromRGB(255,0,0), Color3.fromRGB(0,0,255), Color3.fromRGB(255,255,0), Color3.fromRGB(255,0,255), Color3.fromRGB(255,165,0), Color3.fromRGB(255,255,255), Color3.fromRGB(0,255,0)} local villainColorNames = {"Red","Blue","Yellow","Purple","Orange","White","Green"} local villainIdx = 1 villainColorBtn.MouseButton1Click:Connect(function() villainIdx = villainIdx % #villainColors + 1 villainColor = villainColors[villainIdx] villainColorBtn.BackgroundColor3 = villainColor villainColorBtn.Text = villainColorNames[villainIdx] for player, data in pairs(espObjects) do if data.nameLabel then data.nameLabel.TextColor3 = getPlayerColor(player) end end end) -- ===== ВКЛАДКА FARM ===== local farmFrame = createContentFrame("farm") local farmBtn = Instance.new("TextButton") farmBtn.Parent = farmFrame farmBtn.Text = "Auto Farm: OFF" farmBtn.BackgroundColor3 = Color3.fromRGB(70, 70, 80) farmBtn.Size = UDim2.new(0.8, 0, 0, 35) farmBtn.Position = UDim2.new(0.1, 0, 0.1, 0) farmBtn.Font = Enum.Font.Gotham farmBtn.TextSize = 14 farmBtn.TextColor3 = Color3.fromRGB(255, 255, 255) farmBtn.BorderSizePixel = 0 farmBtn.MouseButton1Click:Connect(function() autoFarmEnabled = not autoFarmEnabled farmBtn.Text = autoFarmEnabled and "Auto Farm: ON" or "Auto Farm: OFF" end) -- ===== ВКЛАДКА HITBOX ===== local hitboxFrame = createContentFrame("hitbox") local hitboxBtn = Instance.new("TextButton") hitboxBtn.Parent = hitboxFrame hitboxBtn.Text = "Hitbox: OFF" hitboxBtn.BackgroundColor3 = Color3.fromRGB(70, 70, 80) hitboxBtn.Size = UDim2.new(0.8, 0, 0, 30) hitboxBtn.Position = UDim2.new(0.1, 0, 0.05, 0) hitboxBtn.Font = Enum.Font.Gotham hitboxBtn.TextSize = 14 hitboxBtn.TextColor3 = Color3.fromRGB(255, 255, 255) hitboxBtn.BorderSizePixel = 0 hitboxBtn.MouseButton1Click:Connect(function() hitboxEnabled = not hitboxEnabled hitboxBtn.Text = hitboxEnabled and "Hitbox: ON" or "Hitbox: OFF" applyHitboxToAll() end) -- Регулировка множителя local scaleLabel = Instance.new("TextLabel") scaleLabel.Parent = hitboxFrame scaleLabel.Text = "Scale: " .. string.format("%.1f", hitboxScale) scaleLabel.BackgroundTransparency = 1 scaleLabel.TextColor3 = Color3.fromRGB(255,255,255) scaleLabel.Size = UDim2.new(0.4, 0, 0, 25) scaleLabel.Position = UDim2.new(0.3, 0, 0.35, 0) scaleLabel.Font = Enum.Font.Gotham scaleLabel.TextSize = 14 local minusBtn = Instance.new("TextButton") minusBtn.Parent = hitboxFrame minusBtn.Text = "-" minusBtn.BackgroundColor3 = Color3.fromRGB(55, 55, 65) minusBtn.Size = UDim2.new(0.15, 0, 0, 25) minusBtn.Position = UDim2.new(0.1, 0, 0.35, 0) minusBtn.Font = Enum.Font.Gotham minusBtn.TextSize = 16 minusBtn.TextColor3 = Color3.fromRGB(255,255,255) minusBtn.BorderSizePixel = 0 minusBtn.MouseButton1Click:Connect(function() hitboxScale = math.max(minHitbox, hitboxScale - 0.2) scaleLabel.Text = "Scale: " .. string.format("%.1f", hitboxScale) if hitboxEnabled then applyHitboxToAll() end end) local plusBtn = Instance.new("TextButton") plusBtn.Parent = hitboxFrame plusBtn.Text = "+" plusBtn.BackgroundColor3 = Color3.fromRGB(55, 55, 65) plusBtn.Size = UDim2.new(0.15, 0, 0, 25) plusBtn.Position = UDim2.new(0.75, 0, 0.35, 0) plusBtn.Font = Enum.Font.Gotham plusBtn.TextSize = 16 plusBtn.TextColor3 = Color3.fromRGB(255,255,255) plusBtn.BorderSizePixel = 0 plusBtn.MouseButton1Click:Connect(function() hitboxScale = math.min(maxHitbox, hitboxScale + 0.2) scaleLabel.Text = "Scale: " .. string.format("%.1f", hitboxScale) if hitboxEnabled then applyHitboxToAll() end end) -- ===== ВКЛАДКА SETTINGS ===== local settingsFrame = createContentFrame("settings") local teamBtn = Instance.new("TextButton") teamBtn.Parent = settingsFrame teamBtn.Text = "Team Check: OFF" teamBtn.BackgroundColor3 = Color3.fromRGB(70, 70, 80) teamBtn.Size = UDim2.new(0.8, 0, 0, 35) teamBtn.Position = UDim2.new(0.1, 0, 0.1, 0) teamBtn.Font = Enum.Font.Gotham teamBtn.TextSize = 14 teamBtn.TextColor3 = Color3.fromRGB(255, 255, 255) teamBtn.BorderSizePixel = 0 teamBtn.MouseButton1Click:Connect(function() teamCheck = not teamCheck teamBtn.Text = teamCheck and "Team Check: ON" or "Team Check: OFF" end) -- Использовать цвет команды local teamColorCheck = Instance.new("TextButton") teamColorCheck.Parent = settingsFrame teamColorCheck.Text = "Use Team Color: OFF" teamColorCheck.BackgroundColor3 = Color3.fromRGB(55, 55, 65) teamColorCheck.Size = UDim2.new(0.8, 0, 0, 30) teamColorCheck.Position = UDim2.new(0.1, 0, 0.5, 0) teamColorCheck.Font = Enum.Font.Gotham teamColorCheck.TextSize = 12 teamColorCheck.TextColor3 = Color3.fromRGB(220, 220, 220) teamColorCheck.BorderSizePixel = 0 teamColorCheck.MouseButton1Click:Connect(function() useTeamColor = not useTeamColor teamColorCheck.Text = useTeamColor and "Use Team Color: ON" or "Use Team Color: OFF" for player, data in pairs(espObjects) do if data.nameLabel then data.nameLabel.TextColor3 = getPlayerColor(player) end end end) -- ===== РАЗМЕЩЕНИЕ КНОПОК ВКЛАДОК ===== local xPos = 0 for _, tab in pairs(tabs) do local btn = createTabButton(tab.name, tab.id, xPos) xPos = xPos + 64 btn.MouseButton1Click:Connect(function() for _, frame in pairs(contentFrames) do frame.Visible = false end if contentFrames[tab.id] then contentFrames[tab.id].Visible = true end for _, b in pairs(tabButtons) do b.BackgroundColor3 = Color3.fromRGB(55, 55, 65) end btn.BackgroundColor3 = Color3.fromRGB(90, 90, 110) end) end -- По умолчанию показываем Combat if contentFrames["combat"] then contentFrames["combat"].Visible = true tabButtons["combat"].BackgroundColor3 = Color3.fromRGB(90, 90, 110) end -- Открытие/закрытие по Left Shift UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == Enum.KeyCode.LeftShift then menuOpen = not menuOpen mainFrame.Visible = menuOpen end end) return mainFrame end -- ===== ИНИЦИАЛИЗАЦИЯ ===== createRainbowText() createMainMenu() for _, player in pairs(Players:GetPlayers()) do attachESP(player) end Players.PlayerAdded:Connect(function(player) attachESP(player) onPlayerAdded(player) end) for _, player in pairs(Players:GetPlayers()) do if player ~= LocalPlayer then onPlayerAdded(player) end end Players.PlayerAdded:Connect(onPlayerAdded) for _, player in pairs(Players:GetPlayers()) do if player ~= LocalPlayer then player.CharacterAdded:Connect(function() task.wait(0.2) if hitboxEnabled then expandHitboxes(player) end end) end end -- Запуск лупов RunService.RenderStepped:Connect(function() killAuraLoop() updateESP() autoFarmLoop() end) print("✅ EstiHUB v5 загружен! Left Shift — меню. Наслаждайся!")