
KeylessUniversal

-- 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)



Ai