HHM hub
Key RequiredUniversal

HHM hub

Universal ScriptFienFien 415 views 9 executesUpdated Oct 19, 2025
Unrated
00
Lua Script•291 lines (9088 chars)
-- HHM HUB  |  Legit Game-Safe Version
-- Fly and Speed systems are built for your own game, not exploits.

local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local UIS = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer

-----------------------------------------------------------
-- GUI SETUP
-----------------------------------------------------------
local gui = Instance.new("ScreenGui")
gui.Name = "HHM_HUB"
gui.ResetOnSpawn = false
gui.Parent = player:WaitForChild("PlayerGui")

local openBtn = Instance.new("TextButton")
openBtn.Size = UDim2.new(0,180,0,40)
openBtn.Position = UDim2.new(0.5,-90,0,10)
openBtn.BackgroundColor3 = Color3.fromRGB(75,0,130)
openBtn.TextColor3 = Color3.new(1,1,1)
openBtn.Text = "Open HHM HUB"
openBtn.Font = Enum.Font.GothamBold
openBtn.TextScaled = true
openBtn.BorderSizePixel = 0
openBtn.Visible = false
openBtn.Parent = gui

local main = Instance.new("Frame")
main.Size = UDim2.new(0,360,0,320)
main.Position = UDim2.new(0.5,-180,0.5,-160)
main.BackgroundColor3 = Color3.fromRGB(25,20,35)
main.BorderSizePixel = 0
main.Active = true
main.Draggable = true
main.Parent = gui

local title = Instance.new("TextLabel")
title.Size = UDim2.new(1,0,0,40)
title.BackgroundTransparency = 1
title.Text = "HHM HUB"
title.Font = Enum.Font.GothamBold
title.TextScaled = true
title.TextColor3 = Color3.fromRGB(200,200,255)
title.Parent = main

local closeBtn = Instance.new("TextButton")
closeBtn.Size = UDim2.new(0,30,0,30)
closeBtn.Position = UDim2.new(1,-35,0,5)
closeBtn.BackgroundColor3 = Color3.fromRGB(130,0,0)
closeBtn.Text = "X"
closeBtn.Font = Enum.Font.GothamBold
closeBtn.TextScaled = true
closeBtn.TextColor3 = Color3.new(1,1,1)
closeBtn.BorderSizePixel = 0
closeBtn.Parent = main

-----------------------------------------------------------
-- MAIN MENU (scroll list)
-----------------------------------------------------------
local menu = Instance.new("ScrollingFrame")
menu.Size = UDim2.new(1,0,1,-40)
menu.Position = UDim2.new(0,0,0,40)
menu.BackgroundTransparency = 1
menu.ScrollBarThickness = 8
menu.Parent = main

local layout = Instance.new("UIListLayout")
layout.Padding = UDim.new(0,8)
layout.Parent = menu
layout.HorizontalAlignment = Enum.HorizontalAlignment.Center

local options = {"Fly Mode","Speed"}
local pages = {}

local function makeButton(name)
	local b = Instance.new("TextButton")
	b.Size = UDim2.new(0.8,0,0,40)
	b.BackgroundColor3 = Color3.fromRGB(75,0,130)
	b.TextColor3 = Color3.new(1,1,1)
	b.Font = Enum.Font.GothamBold
	b.TextScaled = true
	b.Text = name
	b.BorderSizePixel = 0
	b.Parent = menu
	return b
end

for _,name in ipairs(options) do
	local b = makeButton(name)
	local page = Instance.new("Frame")
	page.Size = UDim2.new(1,0,1,-40)
	page.Position = UDim2.new(0,0,0,40)
	page.BackgroundTransparency = 1
	page.Visible = false
	page.Parent = main
	pages[name] = page

	local head = Instance.new("TextLabel")
	head.Size = UDim2.new(1,0,0,40)
	head.BackgroundTransparency = 1
	head.Text = name
	head.Font = Enum.Font.GothamBold
	head.TextScaled = true
	head.TextColor3 = Color3.fromRGB(200,200,255)
	head.Parent = page

	local back = Instance.new("TextButton")
	back.Size = UDim2.new(0,160,0,40)
	back.Position = UDim2.new(0.5,-80,1,-60)
	back.BackgroundColor3 = Color3.fromRGB(75,0,130)
	back.TextColor3 = Color3.new(1,1,1)
	back.Font = Enum.Font.GothamBold
	back.TextScaled = true
	back.Text = "Back"
	back.BorderSizePixel = 0
	back.Parent = page
	back.MouseButton1Click:Connect(function()
		page.Visible = false
		menu.Visible = true
	end)

	b.MouseButton1Click:Connect(function()
		menu.Visible = false
		page.Visible = true
	end)
end

-----------------------------------------------------------
-- HELPERS
-----------------------------------------------------------
local function addLabel(parent, text, y)
	local l = Instance.new("TextLabel")
	l.Size = UDim2.new(1,0,0,30)
	l.Position = UDim2.new(0,0,0,y)
	l.BackgroundTransparency = 1
	l.Text = text
	l.Font = Enum.Font.GothamBold
	l.TextScaled = true
	l.TextColor3 = Color3.new(1,1,1)
	l.Parent = parent
	return l
end

local function addSlider(parent, y)
	local back = Instance.new("Frame")
	back.Size = UDim2.new(0,260,0,14)
	back.Position = UDim2.new(0.5,-130,y)
	back.BackgroundColor3 = Color3.fromRGB(40,0,80)
	back.BorderSizePixel = 0
	back.Parent = parent

	local grad = Instance.new("UIGradient", back)
	grad.Color = ColorSequence.new{
		ColorSequenceKeypoint.new(0, Color3.fromRGB(0,100,255)),
		ColorSequenceKeypoint.new(0.5, Color3.fromRGB(128,0,255)),
		ColorSequenceKeypoint.new(1, Color3.fromRGB(75,0,130))
	}

	local knob = Instance.new("Frame")
	knob.Size = UDim2.new(0,20,0,20)
	knob.Position = UDim2.new(0,0,-0.35,0)
	knob.BackgroundColor3 = Color3.new(1,1,1)
	knob.BorderSizePixel = 0
	knob.Active = true
	knob.Draggable = true
	knob.Parent = back
	return back, knob
end

local function addButton(parent, text, y)
	local b = Instance.new("TextButton")
	b.Size = UDim2.new(0,220,0,40)
	b.Position = UDim2.new(0.5,-110,y)
	b.BackgroundColor3 = Color3.fromRGB(75,0,130)
	b.TextColor3 = Color3.new(1,1,1)
	b.Font = Enum.Font.GothamBold
	b.TextScaled = true
	b.Text = text
	b.BorderSizePixel = 0
	b.Parent = parent
	return b
end

-----------------------------------------------------------
-- SPEED PAGE
-----------------------------------------------------------
local pageSpeed = pages["Speed"]
local speedVal = 16
local speedLabel = addLabel(pageSpeed, "WalkSpeed: "..speedVal, 0.15)
local sb, sk = addSlider(pageSpeed, 0.32)
local applySpeed = addButton(pageSpeed, "Apply Speed", 0.65)

local draggingSpeed = false
sk.InputBegan:Connect(function(inp)
	if inp.UserInputType == Enum.UserInputType.MouseButton1 then draggingSpeed = true end
end)
UIS.InputEnded:Connect(function(inp)
	if inp.UserInputType == Enum.UserInputType.MouseButton1 then draggingSpeed = false end
end)
UIS.InputChanged:Connect(function(inp)
	if draggingSpeed and inp.UserInputType == Enum.UserInputType.MouseMovement then
		local relX = math.clamp(inp.Position.X - sb.AbsolutePosition.X, 0, sb.AbsoluteSize.X)
		sk.Position = UDim2.new(0, relX - sk.AbsoluteSize.X/2, -0.35, 0)
		local pct = relX / sb.AbsoluteSize.X
		speedVal = math.floor(16 + (100-16) * pct)
		speedLabel.Text = "WalkSpeed: "..speedVal
	end
end)
applySpeed.MouseButton1Click:Connect(function()
	local hum = player.Character and player.Character:FindFirstChildOfClass("Humanoid")
	if hum then hum.WalkSpeed = speedVal end
end)

-----------------------------------------------------------
-- FLY PAGE
-----------------------------------------------------------
local pageFly = pages["Fly Mode"]

local flyBtn = addButton(pageFly, "Fly: OFF", 0.25)
local flySpeedLabel = addLabel(pageFly, "Fly Speed: 50", 0.45)
local flyBar, flyKnob = addSlider(pageFly, 0.6)

local flySpeed = 50
local flying = false
local dragFly = false

flyKnob.InputBegan:Connect(function(inp)
	if inp.UserInputType == Enum.UserInputType.MouseButton1 then dragFly = true end
end)
UIS.InputEnded:Connect(function(inp)
	if inp.UserInputType == Enum.UserInputType.MouseButton1 then dragFly = false end
end)
UIS.InputChanged:Connect(function(inp)
	if dragFly and inp.UserInputType == Enum.UserInputType.MouseMovement then
		local relX = math.clamp(inp.Position.X - flyBar.AbsolutePosition.X, 0, flyBar.AbsoluteSize.X)
		flyKnob.Position = UDim2.new(0, relX - flyKnob.AbsoluteSize.X/2, -0.35, 0)
		local pct = relX / flyBar.AbsoluteSize.X
		flySpeed = math.floor(10 + (100-10) * pct)
		flySpeedLabel.Text = "Fly Speed: "..flySpeed
	end
end)

-- simple legit fly system
local function toggleFly()
	flying = not flying
	flyBtn.Text = "Fly: "..(flying and "ON" or "OFF")
	local char = player.Character
	if not char or not char:FindFirstChild("HumanoidRootPart") then return end
	local root = char:WaitForChild("HumanoidRootPart")
	local hum = char:WaitForChild("Humanoid")

	local gyro = Instance.new("BodyGyro")
	local vel = Instance.new("BodyVelocity")
	gyro.MaxTorque = Vector3.new(1e5,1e5,1e5)
	gyro.P = 1e4
	gyro.CFrame = root.CFrame
	vel.MaxForce = Vector3.new(1e5,1e5,1e5)
	vel.Velocity = Vector3.zero

	if flying then
		gyro.Parent = root
		vel.Parent = root
		while flying and task.wait() do
			local moveDir = hum.MoveDirection
			gyro.CFrame = workspace.CurrentCamera.CFrame
			vel.Velocity = moveDir * flySpeed
		end
		gyro:Destroy()
		vel:Destroy()
	else
		if root:FindFirstChildOfClass("BodyGyro") then root:FindFirstChildOfClass("BodyGyro"):Destroy() end
		if root:FindFirstChildOfClass("BodyVelocity") then root:FindFirstChildOfClass("BodyVelocity"):Destroy() end
	end
end

flyBtn.MouseButton1Click:Connect(toggleFly)
player.CharacterAdded:Connect(function() flying = false end)

-----------------------------------------------------------
-- OPEN / CLOSE
-----------------------------------------------------------
closeBtn.MouseButton1Click:Connect(function()
	main.Visible = false
	openBtn.Visible = true
end)
openBtn.MouseButton1Click:Connect(function()
	openBtn.Visible = false
	main.Visible = true
end)

Features & Information

Idk

Community Comments (1)

SyrexGenesisSyrexGenesisOct 20, 2025

Ai

More Scripts for Universal Scripts