-- ProGame Hub Xeno Edition v5.4 — Speed Lock + Speed Bind local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local Lighting = game:GetService("Lighting") local Workspace = game:GetService("Workspace") local Camera = Workspace.CurrentCamera local LocalPlayer = Players.LocalPlayer pcall(function() if LocalPlayer.PlayerGui:FindFirstChild("ProGameHub") then LocalPlayer.PlayerGui.ProGameHub:Destroy() end end) print("ProGame Hub v5.4 loaded!") -- ================== СОХРАНЕНИЕ НАСТРОЕК ================== local settingsFile = "ProGameHub_v5_Settings.json" local function saveSettings() local s = { aimbotOn, aimbotFOV, aimbotSmooth, aimbotTeamCheck, aimbotVisCheck, fovCircleOn, triggerOn, triggerBind, triggerMinDelay, triggerMaxDelay, flyOn, flySpeed, noclipOn, tpBind, saveBind, speedBind, speedOn, speedVal, speedLock, jumpOn, jumpVal, jumpLock, spinOn, spinSpeed, espOn, espBoxes, espNames, espHealth, espLines, fbOn, menuKey, panicKey, afkOn } pcall(function() if writefile then writefile(settingsFile, game:GetService("HttpService"):JSONEncode(s)) end end) end local function loadSettings() pcall(function() if readfile and isfile and isfile(settingsFile) then local raw = readfile(settingsFile) local s = game:GetService("HttpService"):JSONDecode(raw) if s and type(s) == "table" and #s >= 33 then aimbotOn = s[1]; aimbotFOV = s[2]; aimbotSmooth = s[3]; aimbotTeamCheck = s[4]; aimbotVisCheck = s[5]; fovCircleOn = s[6] triggerOn = s[7]; triggerBind = s[8]; triggerMinDelay = s[9]; triggerMaxDelay = s[10] flyOn = s[11]; flySpeed = s[12]; noclipOn = s[13]; tpBind = s[14]; saveBind = s[15]; speedBind = s[16] speedOn = s[17]; speedVal = s[18]; speedLock = s[19]; jumpOn = s[20]; jumpVal = s[21]; jumpLock = s[22] spinOn = s[23]; spinSpeed = s[24] espOn = s[25]; espBoxes = s[26]; espNames = s[27]; espHealth = s[28]; espLines = s[29] fbOn = s[30]; menuKey = s[31]; panicKey = s[32]; afkOn = s[33] end end end) end -- ================== ПЕРЕМЕННЫЕ ================== local aimbotOn, aimbotFOV, aimbotSmooth, aimbotTeamCheck, aimbotVisCheck, fovCircleOn = false, 90, 0.3, true, true, false local triggerOn, triggerBind, triggerMinDelay, triggerMaxDelay = false, Enum.KeyCode.E, 0.12, 0.3 local flyOn, flySpeed, flyBody, flyConn = false, 50, nil, nil local noclipOn = false local savedPos, tpBind, saveBind, speedBind = nil, Enum.KeyCode.X, Enum.KeyCode.V, Enum.KeyCode.G local speedOn, speedVal, speedLock = false, 50, true -- speedLock по умолчанию ВКЛЮЧЕН, чтобы скорость не сбрасывалась local jumpOn, jumpVal, jumpLock = false, 50, true -- jumpLock по умолчанию ВКЛЮЧЕН local spinOn, spinSpeed = false, 10 local espOn, espBoxes, espNames, espHealth, espLines = false, true, true, true, false local fbOn = false local menuKey, panicKey, afkOn = Enum.KeyCode.LeftControl, Enum.KeyCode.P, true loadSettings() -- ================== BLUR ================== local blur = Instance.new("BlurEffect") blur.Name = "MenuBlur" blur.Size = 0 blur.Parent = Lighting local function setBlur(value) pcall(function() TweenService:Create(blur, TweenInfo.new(0.3), {Size = value}):Play() end) end -- ================== GUI ================== local gui = Instance.new("ScreenGui") gui.Name = "ProGameHub" gui.ResetOnSpawn = false gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling gui.IgnoreGuiInset = true gui.Parent = LocalPlayer:WaitForChild("PlayerGui") local background = Instance.new("Frame") background.Size = UDim2.new(1, 0, 1, 0) background.BackgroundColor3 = Color3.new(0, 0, 0) background.BackgroundTransparency = 1 background.BorderSizePixel = 0 background.ZIndex = 15 background.Visible = false background.Active = true background.Parent = gui local openBtn = Instance.new("TextButton") openBtn.Size = UDim2.new(0, 56, 0, 56) openBtn.Position = UDim2.new(0.5, -28, 0.5, -28) openBtn.BackgroundColor3 = Color3.fromRGB(15, 15, 20) openBtn.BorderSizePixel = 0 openBtn.Text = "😎" openBtn.TextColor3 = Color3.fromRGB(0, 255, 255) openBtn.Font = Enum.Font.GothamBold openBtn.TextSize = 26 openBtn.ZIndex = 10 openBtn.Active = true openBtn.Draggable = true openBtn.Parent = gui Instance.new("UICorner", openBtn).CornerRadius = UDim.new(0, 12) Instance.new("UIStroke", openBtn).Color = Color3.fromRGB(0, 255, 255) Instance.new("UIStroke", openBtn).Thickness = 2 local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 480, 0, 620) mainFrame.Position = UDim2.new(0.5, -240, 0.5, -310) mainFrame.BackgroundColor3 = Color3.fromRGB(12, 12, 18) mainFrame.BorderSizePixel = 0 mainFrame.Visible = false mainFrame.ZIndex = 20 mainFrame.Parent = gui Instance.new("UICorner", mainFrame).CornerRadius = UDim.new(0, 16) Instance.new("UIStroke", mainFrame).Color = Color3.fromRGB(0, 200, 255) Instance.new("UIStroke", mainFrame).Thickness = 2 local titleBar = Instance.new("Frame") titleBar.Size = UDim2.new(1, 0, 0, 45) titleBar.BackgroundColor3 = Color3.fromRGB(8, 8, 14) titleBar.BorderSizePixel = 0 titleBar.ZIndex = 21 titleBar.Parent = mainFrame Instance.new("UICorner", titleBar).CornerRadius = UDim.new(0, 16) local titleText = Instance.new("TextLabel") titleText.Size = UDim2.new(1, -50, 1, 0) titleText.Position = UDim2.new(0, 20, 0, 0) titleText.Text = "⚡ PROGAME HUB" titleText.TextColor3 = Color3.fromRGB(0, 255, 255) titleText.Font = Enum.Font.GothamBlack titleText.TextSize = 20 titleText.BackgroundTransparency = 1 titleText.ZIndex = 22 titleText.Parent = titleBar local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(0, 32, 0, 32) closeBtn.Position = UDim2.new(1, -40, 0, 6) closeBtn.BackgroundColor3 = Color3.fromRGB(255, 40, 60) closeBtn.BorderSizePixel = 0 closeBtn.Text = "✕" closeBtn.TextColor3 = Color3.new(1,1,1) closeBtn.Font = Enum.Font.GothamBold closeBtn.TextSize = 18 closeBtn.ZIndex = 22 closeBtn.Parent = titleBar Instance.new("UICorner", closeBtn).CornerRadius = UDim.new(0, 8) local tabContainer = Instance.new("Frame") tabContainer.Size = UDim2.new(1, 0, 0, 36) tabContainer.Position = UDim2.new(0, 0, 0, 50) tabContainer.BackgroundTransparency = 1 tabContainer.ZIndex = 21 tabContainer.Parent = mainFrame local tabs, tabFrames = {}, {} local tabNames = {"Shooter", "Parkour", "Visual", "Settings"} local function switchTab(i) for _, b in ipairs(tabs) do b.BackgroundColor3 = Color3.fromRGB(18, 18, 26) b.TextColor3 = Color3.fromRGB(150, 150, 150) end if tabs[i] then tabs[i].BackgroundColor3 = Color3.fromRGB(0, 180, 220) tabs[i].TextColor3 = Color3.new(1,1,1) end for _, f in ipairs(tabFrames) do f.Visible = false end if tabFrames[i] then tabFrames[i].Visible = true end end for i, name in ipairs(tabNames) do local btn = Instance.new("TextButton") btn.Size = UDim2.new(0.25, -4, 1, 0) btn.Position = UDim2.new((i-1)*0.25, 2, 0, 0) btn.BackgroundColor3 = i == 1 and Color3.fromRGB(0, 180, 220) or Color3.fromRGB(18, 18, 26) btn.BorderSizePixel = 0 btn.Text = name btn.TextColor3 = i == 1 and Color3.new(1,1,1) or Color3.fromRGB(150, 150, 150) btn.Font = Enum.Font.GothamBold btn.TextSize = 13 btn.ZIndex = 21 btn.Parent = tabContainer Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 8) btn.MouseButton1Click:Connect(function() switchTab(i) end) table.insert(tabs, btn) end local contentArea = Instance.new("Frame") contentArea.Size = UDim2.new(1, 0, 1, -90) contentArea.Position = UDim2.new(0, 0, 0, 90) contentArea.BackgroundTransparency = 1 contentArea.BorderSizePixel = 0 contentArea.ZIndex = 21 contentArea.Parent = mainFrame local function createTabContent() local sf = Instance.new("ScrollingFrame") sf.Size = UDim2.new(1, 0, 1, 0) sf.CanvasSize = UDim2.new(0, 0, 0, 1500) sf.BackgroundTransparency = 1 sf.BorderSizePixel = 0 sf.Visible = false sf.ScrollBarThickness = 4 sf.ScrollingDirection = Enum.ScrollingDirection.Y sf.ZIndex = 21 sf.Parent = contentArea local layout = Instance.new("UIListLayout", sf) layout.Padding = UDim.new(0, 10) layout.SortOrder = Enum.SortOrder.LayoutOrder layout.HorizontalAlignment = Enum.HorizontalAlignment.Center layout.VerticalAlignment = Enum.VerticalAlignment.Top sf:GetPropertyChangedSignal("CanvasPosition"):Connect(function() sf.CanvasSize = UDim2.new(0, 0, 0, layout.AbsoluteContentSize.Y + 20) end) return sf end for i = 1, 4 do tabFrames[i] = createTabContent() end tabFrames[1].Visible = true -- ================== UI ЭЛЕМЕНТЫ ================== local function sectionLabel(parent, text) local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, -20, 0, 26) lbl.BackgroundTransparency = 1 lbl.Text = "— " .. text lbl.TextColor3 = Color3.fromRGB(0, 220, 255) lbl.Font = Enum.Font.GothamBold lbl.TextSize = 14 lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Parent = parent end local function createToggle(parent, text, default, callback) local frame = Instance.new("Frame") frame.Size = UDim2.new(1, -20, 0, 44) frame.BackgroundColor3 = Color3.fromRGB(20, 20, 30) frame.BorderSizePixel = 0 frame.Parent = parent Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 10) Instance.new("UIStroke", frame).Color = Color3.fromRGB(0, 180, 220) local label = Instance.new("TextLabel") label.Size = UDim2.new(0.7, 0, 1, 0) label.Position = UDim2.new(0, 12, 0, 0) label.BackgroundTransparency = 1 label.Text = text label.TextColor3 = Color3.new(1,1,1) label.Font = Enum.Font.Gotham label.TextSize = 13 label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = frame local btn = Instance.new("TextButton") btn.Size = UDim2.new(0, 42, 0, 24) btn.Position = UDim2.new(1, -54, 0, 10) btn.BackgroundColor3 = default and Color3.fromRGB(0, 200, 180) or Color3.fromRGB(200, 50, 70) btn.BorderSizePixel = 0 btn.Text = default and "ON" or "OFF" btn.TextColor3 = Color3.new(1,1,1) btn.Font = Enum.Font.GothamBold btn.TextSize = 11 btn.Parent = frame Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 12) local isOn = default btn.MouseButton1Click:Connect(function() isOn = not isOn btn.BackgroundColor3 = isOn and Color3.fromRGB(0, 200, 180) or Color3.fromRGB(200, 50, 70) btn.Text = isOn and "ON" or "OFF" if callback then callback(isOn) end saveSettings() end) return frame end local function createSlider(parent, text, min, max, default, callback) local frame = Instance.new("Frame") frame.Size = UDim2.new(1, -20, 0, 66) frame.BackgroundColor3 = Color3.fromRGB(20, 20, 30) frame.BorderSizePixel = 0 frame.Parent = parent Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 10) Instance.new("UIStroke", frame).Color = Color3.fromRGB(0, 180, 220) local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(0.6, 0, 0, 22) lbl.Position = UDim2.new(0, 12, 0, 6) lbl.BackgroundTransparency = 1 lbl.Text = text lbl.TextColor3 = Color3.new(1,1,1) lbl.Font = Enum.Font.Gotham lbl.TextSize = 12 lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Parent = frame local valLbl = Instance.new("TextLabel") valLbl.Size = UDim2.new(0.4, -12, 0, 22) valLbl.Position = UDim2.new(0.6, 0, 0, 6) valLbl.BackgroundTransparency = 1 valLbl.Text = tostring(default) valLbl.TextColor3 = Color3.fromRGB(0, 255, 255) valLbl.Font = Enum.Font.GothamBold valLbl.TextSize = 12 valLbl.TextXAlignment = Enum.TextXAlignment.Right valLbl.Parent = frame local bar = Instance.new("TextButton") bar.Size = UDim2.new(1, -24, 0, 14) bar.Position = UDim2.new(0, 12, 0, 36) bar.BackgroundColor3 = Color3.fromRGB(30, 30, 44) bar.BorderSizePixel = 0 bar.Text = "" bar.Parent = frame Instance.new("UICorner", bar).CornerRadius = UDim.new(0, 7) local fill = Instance.new("Frame") fill.Size = UDim2.new((default-min)/(max-min), 0, 1, 0) fill.BackgroundColor3 = Color3.fromRGB(0, 200, 255) fill.BorderSizePixel = 0 fill.Parent = bar Instance.new("UICorner", fill).CornerRadius = UDim.new(0, 7) local drag = false local function upd() local mp = UserInputService:GetMouseLocation() local frac = math.clamp((mp.X - bar.AbsolutePosition.X) / bar.AbsoluteSize.X, 0, 1) local val = math.floor(min + (max - min) * frac) fill.Size = UDim2.new(frac, 0, 1, 0) valLbl.Text = tostring(val) if callback then callback(val) end saveSettings() end bar.MouseButton1Down:Connect(function() drag = true upd() end) UserInputService.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then drag = false end end) UserInputService.InputChanged:Connect(function(i) if drag and i.UserInputType == Enum.UserInputType.MouseMovement then upd() end end) return frame end local function createButton(parent, text, callback) local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, -20, 0, 40) btn.BackgroundColor3 = Color3.fromRGB(25, 25, 38) btn.BorderSizePixel = 0 btn.Text = text btn.TextColor3 = Color3.fromRGB(0, 255, 220) btn.Font = Enum.Font.GothamBold btn.TextSize = 14 btn.Parent = parent Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 10) Instance.new("UIStroke", btn).Color = Color3.fromRGB(0, 180, 220) btn.MouseButton1Click:Connect(callback) return btn end local function createBind(parent, text, defaultKey, callback) local frame = Instance.new("Frame") frame.Size = UDim2.new(1, -20, 0, 44) frame.BackgroundColor3 = Color3.fromRGB(20, 20, 30) frame.BorderSizePixel = 0 frame.Parent = parent Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 10) Instance.new("UIStroke", frame).Color = Color3.fromRGB(0, 180, 220) local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(0.6, 0, 1, 0) lbl.Position = UDim2.new(0, 12, 0, 0) lbl.BackgroundTransparency = 1 lbl.Text = text lbl.TextColor3 = Color3.new(1,1,1) lbl.Font = Enum.Font.Gotham lbl.TextSize = 12 lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Parent = frame local bindBtn = Instance.new("TextButton") bindBtn.Size = UDim2.new(0, 70, 0, 26) bindBtn.Position = UDim2.new(1, -82, 0, 9) bindBtn.BackgroundColor3 = Color3.fromRGB(30, 30, 44) bindBtn.BorderSizePixel = 0 bindBtn.Text = string.sub(tostring(defaultKey), 14) bindBtn.TextColor3 = Color3.new(1,1,1) bindBtn.Font = Enum.Font.GothamBold bindBtn.TextSize = 12 bindBtn.Parent = frame Instance.new("UICorner", bindBtn).CornerRadius = UDim.new(0, 8) Instance.new("UIStroke", bindBtn).Color = Color3.fromRGB(0, 180, 220) local waiting = false bindBtn.MouseButton1Click:Connect(function() waiting = true bindBtn.Text = "..." end) UserInputService.InputBegan:Connect(function(i, gp) if waiting and not gp and i.UserInputType == Enum.UserInputType.Keyboard then bindBtn.Text = string.sub(tostring(i.KeyCode), 14) waiting = false if callback then callback(i.KeyCode) end saveSettings() end end) return frame end -- ================== ФУНКЦИИ ================== local function getChar() return LocalPlayer.Character end local function getRoot() local c = getChar() return c and c:FindFirstChild("HumanoidRootPart") end local function getHum() local c = getChar() return c and c:FindFirstChild("Humanoid") end -- ESP local espDrawings = {} local function enableESP(on) espOn = on if not on then for _, d in ipairs(espDrawings) do pcall(function() d:Remove() end) end espDrawings = {} end end local function updateESP() if not espOn then return end for _, d in ipairs(espDrawings) do pcall(function() d:Remove() end) end espDrawings = {} for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer and p.Character then local char = p.Character local head = char:FindFirstChild("Head") local hum = char:FindFirstChild("Humanoid") local root = char:FindFirstChild("HumanoidRootPart") if not head or not hum or hum.Health <= 0 or not root or not Camera then continue end local headPos, headOnScreen = Camera:WorldToViewportPoint(head.Position) local rootPos, rootOnScreen = Camera:WorldToViewportPoint(root.Position - Vector3.new(0, 3, 0)) if not headOnScreen and not rootOnScreen then continue end if headPos.Z < 0 then continue end local screenX = headPos.X local screenTop = headPos.Y local screenBottom = rootPos.Y if not rootOnScreen or rootPos.Z < 0 then screenBottom = screenTop + 100 end local boxHeight = math.abs(screenBottom - screenTop) if boxHeight < 15 then boxHeight = 15 end if boxHeight > 300 then boxHeight = 300 end local boxWidth = boxHeight * 0.5 local boxX = screenX - boxWidth / 2 local boxY = screenTop - boxHeight * 0.05 if espBoxes then local box = Drawing.new("Square") box.Visible = true; box.Color = Color3.new(0,1,1); box.Thickness = 2; box.Filled = false box.Position = Vector2.new(boxX, boxY); box.Size = Vector2.new(boxWidth, boxHeight) table.insert(espDrawings, box) end if espNames then local nm = Drawing.new("Text") nm.Visible = true; nm.Color = Color3.new(0,1,1); nm.Size = 14; nm.Center = true; nm.Outline = true nm.Text = p.Name; nm.Position = Vector2.new(screenX, boxY - 18) table.insert(espDrawings, nm) end if espHealth then local pct = math.clamp(hum.Health / hum.MaxHealth, 0, 1) local barX = boxX - 8; local barTop = boxY; local barBottom = boxY + boxHeight local bg = Drawing.new("Line") bg.Visible = true; bg.Color = Color3.new(0.2,0.2,0.2); bg.Thickness = 3 bg.From = Vector2.new(barX, barBottom); bg.To = Vector2.new(barX, barTop) table.insert(espDrawings, bg) local bar = Drawing.new("Line") bar.Visible = true; bar.Thickness = 3 bar.Color = Color3.fromRGB(255*(1-pct), 255*pct, 0) bar.From = Vector2.new(barX, barBottom); bar.To = Vector2.new(barX, barBottom - boxHeight * pct) table.insert(espDrawings, bar) end if espLines then local ln = Drawing.new("Line") ln.Visible = true; ln.Color = Color3.new(0,1,1); ln.Thickness = 1; ln.Transparency = 0.5 ln.From = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y) ln.To = Vector2.new(screenX, boxY + boxHeight/2) table.insert(espDrawings, ln) end end end end -- Aimbot local function getClosest() local m = LocalPlayer:GetMouse() if not Camera then return nil end local best, bestD = nil, aimbotFOV for _, v in ipairs(Players:GetPlayers()) do if v ~= LocalPlayer and v.Character and v.Character:FindFirstChild("Head") then local h = v.Character:FindFirstChild("Humanoid") if h and h.Health > 0 then if aimbotTeamCheck and v.Team == LocalPlayer.Team then continue end local p = v.Character.Head local s, on = Camera:WorldToScreenPoint(p.Position) if on then local d = (Vector2.new(s.X,s.Y) - Vector2.new(m.X,m.Y)).Magnitude if d < bestD then if aimbotVisCheck and getRoot() then local r = Ray.new(getRoot().Position, (p.Position - getRoot().Position).Unit * 500) local hit = Workspace:FindPartOnRayWithIgnoreList(r, {getChar()}) if not (hit and hit:IsDescendantOf(v.Character)) then continue end end best, bestD = p, d end end end end end return best end -- Trigger Bot local triggerKeyHeld = false local triggerReady = true UserInputService.InputBegan:Connect(function(i, gp) if gp then return end if i.KeyCode == triggerBind then triggerKeyHeld = true end end) UserInputService.InputEnded:Connect(function(i, gp) if gp then return end if i.KeyCode == triggerBind then triggerKeyHeld = false end end) local function triggerAction() if not triggerOn then return end if not aimbotOn then return end if not triggerKeyHeld then return end if not triggerReady then return end local t = getClosest() if t then triggerReady = false local delay = triggerMinDelay + math.random() * (triggerMaxDelay - triggerMinDelay) task.wait(delay) pcall(function() local vim = game:GetService("VirtualInputManager") vim:SendMouseButtonEvent(0, 0, 0, true, game, 0) task.wait(0.05) vim:SendMouseButtonEvent(0, 0, 0, false, game, 0) end) task.wait(triggerMinDelay + math.random() * 0.15) triggerReady = true end end -- FOV Circle local fovCircle = nil local function updateFOVCircle() if fovCircleOn and Camera then if not fovCircle then fovCircle = Drawing.new("Circle") fovCircle.Visible = true fovCircle.Color = Color3.new(0, 1, 1) fovCircle.Thickness = 1 fovCircle.Filled = false fovCircle.Transparency = 0.7 end fovCircle.Position = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y/2) fovCircle.Radius = aimbotFOV fovCircle.Visible = true else if fovCircle then fovCircle.Visible = false pcall(function() fovCircle:Remove() end) fovCircle = nil end end end -- Fly local function toggleFly(on) flyOn = on local r, h = getRoot(), getHum() if not r or not h then return end if on then h.PlatformStand = true flyBody = Instance.new("BodyVelocity", r) flyBody.MaxForce = Vector3.new(4e5,4e5,4e5) flyBody.Velocity = Vector3.zero flyConn = RunService.RenderStepped:Connect(function() if not flyOn or not flyBody then return end local d = Vector3.zero if UserInputService:IsKeyDown(Enum.KeyCode.W) then d += Camera.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.S) then d -= Camera.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.A) then d -= Camera.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.D) then d += Camera.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.Space) then d += Vector3.yAxis end if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then d -= Vector3.yAxis end flyBody.Velocity = (d.Magnitude > 0 and d.Unit or d) * flySpeed end) else h.PlatformStand = false if flyConn then flyConn:Disconnect() end if flyBody then flyBody:Destroy() end end end local function savePos() if getRoot() then savedPos = getRoot().CFrame end end local function tpPos() if savedPos and getRoot() then getRoot().CFrame = savedPos end end local function setSpeed(v) if getHum() then getHum().WalkSpeed = v end end local function setJump(v) if getHum() then getHum().JumpPower = v end end local function toggleFB(on) fbOn = on if on then Lighting.Ambient = Color3.new(1,1,1); Lighting.Brightness = 2; Lighting.OutdoorAmbient = Color3.new(1,1,1) else Lighting.Ambient = Color3.new(0,0,0); Lighting.Brightness = 1; Lighting.OutdoorAmbient = Color3.new(0.5,0.5,0.5) end end -- ================== SPEED LOCK (НОВОЕ) ================== -- Принудительно восстанавливает скорость, если игра её сбросила local function speedLockLoop() local hum = getHum() if not hum then return end if speedOn and speedLock and hum.WalkSpeed ~= speedVal then hum.WalkSpeed = speedVal end if jumpOn and jumpLock and hum.JumpPower ~= jumpVal then hum.JumpPower = jumpVal end end -- ================== МЕНЮ ================== local menuOpen = false local menuAnimating = false local function toggleMenu() if menuAnimating then return end menuAnimating = true if menuOpen then menuOpen = false TweenService:Create(mainFrame, TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.In), { Size = UDim2.new(0,0,0,0), Position = UDim2.new(0.5,0,0.5,0) }):Play() TweenService:Create(background, TweenInfo.new(0.2), {BackgroundTransparency = 1}):Play() setBlur(0) task.wait(0.25) mainFrame.Visible = false; background.Visible = false else menuOpen = true mainFrame.Visible = true; background.Visible = true mainFrame.Size = UDim2.new(0,0,0,0); mainFrame.Position = UDim2.new(0.5,0,0.5,0) background.BackgroundTransparency = 1 TweenService:Create(mainFrame, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out), { Size = UDim2.new(0,480,0,620), Position = UDim2.new(0.5,-240,0.5,-310) }):Play() TweenService:Create(background, TweenInfo.new(0.3), {BackgroundTransparency = 0.5}):Play() setBlur(24) task.wait(0.35) end menuAnimating = false end local function panicMode() aimbotOn, triggerOn, espOn = false, false, false enableESP(false); toggleFly(false) noclipOn = false speedOn, jumpOn, spinOn = false, false, false setSpeed(16); setJump(50) toggleFB(false); afkOn = false; fovCircleOn = false updateFOVCircle() menuOpen = false; menuAnimating = false; setBlur(0) pcall(function() if gui and gui.Parent then gui:Destroy() end end) saveSettings() end -- ================== ЦИКЛЫ ================== RunService.Stepped:Connect(function() if noclipOn and getChar() then for _, p in ipairs(getChar():GetDescendants()) do if p:IsA("BasePart") then p.CanCollide = false end end end end) RunService.RenderStepped:Connect(function(dt) if aimbotOn and Camera then local t = getClosest() if t and getRoot() then Camera.CFrame = Camera.CFrame:Lerp(CFrame.lookAt(getRoot().Position, t.Position), aimbotSmooth) end end if aimbotOn and triggerOn then triggerAction() end if espOn then updateESP() end updateFOVCircle() speedLockLoop() -- <<< ВОТ ТУТ МАГИЯ: каждый кадр проверяем и восстанавливаем скорость if afkOn and getChar() and getHum() then if getHum().MoveDirection.Magnitude == 0 and getRoot() then getRoot().Velocity = getRoot().Velocity + Vector3.new(0, 0.001, 0) end end if spinOn and getRoot() and getHum() then getHum().AutoRotate = false getRoot().CFrame = getRoot().CFrame * CFrame.Angles(0, math.rad(spinSpeed * dt * 60), 0) end end) -- ================== КЛАВИШИ ================== UserInputService.InputBegan:Connect(function(i, gp) if gp then return end if i.KeyCode == menuKey then toggleMenu() end if i.KeyCode == panicKey then panicMode() end if i.KeyCode == tpBind then tpPos() end if i.KeyCode == saveBind then savePos() end if i.KeyCode == speedBind then speedOn = not speedOn if speedOn then setSpeed(speedVal) print("Speed Hack: ON (" .. speedVal .. ")") else setSpeed(16) print("Speed Hack: OFF") end saveSettings() end end) closeBtn.MouseButton1Click:Connect(toggleMenu) openBtn.MouseButton1Click:Connect(toggleMenu) background.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then toggleMenu() end end) -- ================== ЗАПОЛНЕНИЕ МЕНЮ ================== -- Shooter sectionLabel(tabFrames[1], "Aimbot") createToggle(tabFrames[1], "Aimbot", aimbotOn, function(on) aimbotOn = on end) createSlider(tabFrames[1], "FOV", 10, 300, aimbotFOV, function(v) aimbotFOV = v end) createSlider(tabFrames[1], "Smoothness", 0, 100, aimbotSmooth*100, function(v) aimbotSmooth = v/100 end) createToggle(tabFrames[1], "Team Check", aimbotTeamCheck, function(on) aimbotTeamCheck = on end) createToggle(tabFrames[1], "Visibility Check", aimbotVisCheck, function(on) aimbotVisCheck = on end) sectionLabel(tabFrames[1], "Trigger Bot (Hold Key)") createToggle(tabFrames[1], "Trigger Bot", triggerOn, function(on) triggerOn = on end) createBind(tabFrames[1], "Trigger Key", triggerBind, function(k) triggerBind = k end) createSlider(tabFrames[1], "Min Delay (ms)", 50, 250, triggerMinDelay*1000, function(v) triggerMinDelay = v/1000 end) createSlider(tabFrames[1], "Max Delay (ms)", 100, 500, triggerMaxDelay*1000, function(v) triggerMaxDelay = v/1000 end) -- Parkour sectionLabel(tabFrames[2], "Movement") createToggle(tabFrames[2], "Fly", flyOn, toggleFly) createSlider(tabFrames[2], "Fly Speed", 10, 200, flySpeed, function(v) flySpeed = v end) createToggle(tabFrames[2], "Noclip", noclipOn, function(on) noclipOn = on end) createToggle(tabFrames[2], "SpinBot", spinOn, function(on) spinOn = on end) createSlider(tabFrames[2], "Spin Speed", 1, 50, spinSpeed, function(v) spinSpeed = v end) sectionLabel(tabFrames[2], "Teleport") createBind(tabFrames[2], "Save Pos Key", saveBind, function(k) saveBind = k end) createBind(tabFrames[2], "Teleport Key", tpBind, function(k) tpBind = k end) createButton(tabFrames[2], "Save Position", savePos) createButton(tabFrames[2], "Teleport", tpPos) sectionLabel(tabFrames[2], "Stats") createToggle(tabFrames[2], "Speed Hack", speedOn, function(on) speedOn = on setSpeed(on and speedVal or 16) end) createBind(tabFrames[2], "Speed Toggle Key", speedBind, function(k) speedBind = k end) createSlider(tabFrames[2], "Walk Speed", 16, 200, speedVal, function(v) speedVal = v if speedOn then setSpeed(v) end end) createToggle(tabFrames[2], "Speed Lock", speedLock, function(on) speedLock = on end) createToggle(tabFrames[2], "Jump Power", jumpOn, function(on) jumpOn = on setJump(on and jumpVal or 50) end) createSlider(tabFrames[2], "Jump Height", 50, 500, jumpVal, function(v) jumpVal = v if jumpOn then setJump(v) end end) createToggle(tabFrames[2], "Jump Lock", jumpLock, function(on) jumpLock = on end) -- Visual sectionLabel(tabFrames[3], "ESP") createToggle(tabFrames[3], "ESP", espOn, enableESP) createToggle(tabFrames[3], "Boxes", espBoxes, function(on) espBoxes = on end) createToggle(tabFrames[3], "Names", espNames, function(on) espNames = on end) createToggle(tabFrames[3], "Health", espHealth, function(on) espHealth = on end) createToggle(tabFrames[3], "Lines", espLines, function(on) espLines = on end) sectionLabel(tabFrames[3], "Aimbot Visual") createToggle(tabFrames[3], "FOV Circle", fovCircleOn, function(on) fovCircleOn = on end) sectionLabel(tabFrames[3], "World") createToggle(tabFrames[3], "Fullbright", fbOn, toggleFB) -- Settings sectionLabel(tabFrames[4], "Binds") createBind(tabFrames[4], "Menu Key", menuKey, function(k) menuKey = k end) createBind(tabFrames[4], "Panic Key", panicKey, function(k) panicKey = k end) createToggle(tabFrames[4], "Anti AFK", afkOn, function(on) afkOn = on end) -- Активация if flyOn then toggleFly(true) end if speedOn then setSpeed(speedVal) end if jumpOn then setJump(jumpVal) end if fbOn then toggleFB(true) end if espOn then enableESP(true) end print("ProGame Hub v5.4 ready! Speed Lock active.")