JANNS HUB
Key RequiredUniversal Patched

JANNS HUB

Universal ScriptFienFien 649 views 82 executesUpdated Oct 19, 2025
Unrated
00
Lua Script•377 lines (12282 chars)
-- 🧠 Full Developer GUI System (Jann’s Hub + Jay’s Hub + Fly + Noclip + Walkspeed)
-- Safe for Studio Play Mode — all movement logic is client-side only

-- // Local Player Setup
local player = game.Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")

-- // GUI references
local jannsHubGui, jaysHubGui, flyGui, noclipGui, walkGui

--------------------------------------------------------------------
-- 🟩 NEON BACKGROUND CREATOR
--------------------------------------------------------------------
local function createNeonBackground(parent)
	local bg = Instance.new("Frame")
	bg.Size = UDim2.new(1, 0, 1, 0)
	bg.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
	bg.ZIndex = 0
	bg.BorderSizePixel = 0
	bg.Parent = parent
end

--------------------------------------------------------------------
-- 🖱️ BUTTON CREATION UTILITY
--------------------------------------------------------------------
local function createButton(parent, size, position, text, callback)
	local button = Instance.new("TextButton")
	button.Size = size
	button.Position = position
	button.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
	button.TextColor3 = Color3.fromRGB(255, 255, 255)
	button.TextSize = 20
	button.Font = Enum.Font.GothamBold
	button.Text = text
	button.AutoButtonColor = false
	button.ZIndex = 2
	button.Parent = parent

	button.MouseEnter:Connect(function()
		button.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
	end)
	button.MouseLeave:Connect(function()
		button.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
	end)
	button.MouseButton1Click:Connect(callback)
	return button
end

--------------------------------------------------------------------
-- 🧲 DRAGGABLE FRAMES
--------------------------------------------------------------------
local function makeDraggable(frame)
	local dragToggle, dragStart, startPos
	local dragInput

	local function update(input)
		local delta = input.Position - dragStart
		frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
	end

	frame.InputBegan:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseButton1 then
			dragToggle = true
			dragStart = input.Position
			startPos = frame.Position
			input.Changed:Connect(function()
				if input.UserInputState == Enum.UserInputState.End then
					dragToggle = false
				end
			end)
		end
	end)

	frame.InputChanged:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseMovement then
			dragInput = input
		end
	end)

	UserInputService.InputChanged:Connect(function(input)
		if input == dragInput and dragToggle then
			update(input)
		end
	end)
end

--------------------------------------------------------------------
-- ✨ FADE IN ANIMATION
--------------------------------------------------------------------
local function fadeIn(gui)
	gui.Enabled = true
	gui.ResetOnSpawn = false
	gui.IgnoreGuiInset = true
	gui.Parent = playerGui

	for _, obj in pairs(gui:GetDescendants()) do
		if obj:IsA("GuiObject") then
			obj.BackgroundTransparency = 1
			obj.TextTransparency = 1
			local tween = TweenService:Create(obj, TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
				BackgroundTransparency = 0,
				TextTransparency = 0
			})
			tween:Play()
		end
	end
end

--------------------------------------------------------------------
-- 💥 DESTROY ALL GUIS
--------------------------------------------------------------------
local function destroyAllGuis()
	if jannsHubGui then jannsHubGui:Destroy() jannsHubGui = nil end
	if jaysHubGui then jaysHubGui:Destroy() jaysHubGui = nil end
	if flyGui then flyGui:Destroy() flyGui = nil end
	if noclipGui then noclipGui:Destroy() noclipGui = nil end
	if walkGui then walkGui:Destroy() walkGui = nil end
end

--------------------------------------------------------------------
-- 🚀 FLY SYSTEM
--------------------------------------------------------------------
local flying = false
local flySpeed = 16
local bodyGyro, bodyVelocity

local function toggleFly(state)
	local char = player.Character or player.CharacterAdded:Wait()
	local root = char:WaitForChild("HumanoidRootPart")
	local humanoid = char:WaitForChild("Humanoid")

	if state then
		flying = true
		bodyGyro = Instance.new("BodyGyro")
		bodyVelocity = Instance.new("BodyVelocity")
		bodyGyro.MaxTorque = Vector3.new(400000, 400000, 400000)
		bodyGyro.P = 10000
		bodyGyro.CFrame = root.CFrame
		bodyVelocity.Velocity = Vector3.zero
		bodyVelocity.MaxForce = Vector3.new(400000, 400000, 400000)
		bodyGyro.Parent = root
		bodyVelocity.Parent = root

		RunService.Heartbeat:Connect(function()
			if flying then
				local moveDir = humanoid.MoveDirection
				bodyVelocity.Velocity = moveDir * flySpeed + Vector3.new(0, 0, 0)
				bodyGyro.CFrame = CFrame.lookAt(root.Position, root.Position + moveDir + Vector3.new(0, 0, -1))
			end
		end)
	else
		flying = false
		if bodyGyro then bodyGyro:Destroy() end
		if bodyVelocity then bodyVelocity:Destroy() end
	end
end

--------------------------------------------------------------------
-- 🟩 FLY GUI
--------------------------------------------------------------------
function loadFlyGui()
	destroyAllGuis()

	flyGui = Instance.new("ScreenGui")
	flyGui.Name = "FlyGui"
	createNeonBackground(flyGui)

	local frame = Instance.new("Frame", flyGui)
	frame.Size = UDim2.new(0, 300, 0, 250)
	frame.Position = UDim2.new(0.5, -150, 0.8, -125)
	frame.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
	frame.BorderSizePixel = 0
	frame.Active = true
	makeDraggable(frame)

	local label = Instance.new("TextLabel", frame)
	label.Size = UDim2.new(1, 0, 0, 40)
	label.BackgroundTransparency = 1
	label.Text = "FLY"
	label.TextSize = 28
	label.Font = Enum.Font.GothamBold
	label.TextColor3 = Color3.new(0, 0, 0)

	local flyButton = createButton(frame, UDim2.new(0, 120, 0, 50), UDim2.new(0, 20, 0, 70), "Fly: Disabled", function()
		flying = not flying
		flyButton.Text = "Fly: " .. (flying and "Enabled" or "Disabled")
		toggleFly(flying)
	end)

	createButton(frame, UDim2.new(0, 120, 0, 50), UDim2.new(0, 160, 0, 70), "Unfly", function()
		flying = false
		flyButton.Text = "Fly: Disabled"
		toggleFly(false)
	end)

	createButton(frame, UDim2.new(0, 260, 0, 40), UDim2.new(0, 20, 0, 180), "← Return to Hub", function()
		loadJaysHub()
	end)

	fadeIn(flyGui)
end

--------------------------------------------------------------------
-- 🧱 NOCLIP GUI
--------------------------------------------------------------------
function loadNoclipGui()
	destroyAllGuis()

	noclipGui = Instance.new("ScreenGui")
	noclipGui.Name = "NoclipGui"
	createNeonBackground(noclipGui)

	local frame = Instance.new("Frame", noclipGui)
	frame.Size = UDim2.new(0, 300, 0, 250)
	frame.Position = UDim2.new(0.5, -150, 0.5, -125)
	frame.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
	frame.Active = true
	makeDraggable(frame)

	local label = Instance.new("TextLabel", frame)
	label.Size = UDim2.new(1, 0, 0, 40)
	label.BackgroundTransparency = 1
	label.Text = "NOCLIP"
	label.TextSize = 28
	label.Font = Enum.Font.GothamBold
	label.TextColor3 = Color3.new(0, 0, 0)

	local noclipEnabled = false
	local char = player.Character or player.CharacterAdded:Wait()

	local noclipButton = createButton(frame, UDim2.new(0, 120, 0, 50), UDim2.new(0, 20, 0, 70), "Noclip: Disabled", function()
		noclipEnabled = not noclipEnabled
		noclipButton.Text = "Noclip: " .. (noclipEnabled and "Enabled" or "Disabled")
		for _, part in pairs(char:GetDescendants()) do
			if part:IsA("BasePart") then
				part.CanCollide = not noclipEnabled
			end
		end
	end)

	createButton(frame, UDim2.new(0, 260, 0, 40), UDim2.new(0, 20, 0, 180), "← Return to Hub", function()
		loadJaysHub()
	end)

	fadeIn(noclipGui)
end

--------------------------------------------------------------------
-- 🏃‍♂️ WALKSPEED GUI
--------------------------------------------------------------------
function loadWalkGui()
	destroyAllGuis()

	walkGui = Instance.new("ScreenGui")
	walkGui.Name = "WalkGui"
	createNeonBackground(walkGui)

	local frame = Instance.new("Frame", walkGui)
	frame.Size = UDim2.new(0, 300, 0, 250)
	frame.Position = UDim2.new(0.5, -150, 0.5, -125)
	frame.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
	frame.Active = true
	makeDraggable(frame)

	local label = Instance.new("TextLabel", frame)
	label.Size = UDim2.new(1, 0, 0, 40)
	label.BackgroundTransparency = 1
	label.Text = "WALKSPEED"
	label.TextSize = 28
	label.Font = Enum.Font.GothamBold
	label.TextColor3 = Color3.new(0, 0, 0)

	local speedEnabled = false
	local humanoid = player.Character and player.Character:FindFirstChildOfClass("Humanoid")

	local speedButton = createButton(frame, UDim2.new(0, 120, 0, 50), UDim2.new(0, 20, 0, 70), "Speed: Normal", function()
		speedEnabled = not speedEnabled
		if humanoid then
			humanoid.WalkSpeed = speedEnabled and 50 or 16
		end
		speedButton.Text = "Speed: " .. (speedEnabled and "Fast" or "Normal")
	end)

	createButton(frame, UDim2.new(0, 260, 0, 40), UDim2.new(0, 20, 0, 180), "← Return to Hub", function()
		loadJaysHub()
	end)

	fadeIn(walkGui)
end

--------------------------------------------------------------------
-- 💻 JAY’S HUB
--------------------------------------------------------------------
function loadJaysHub()
	destroyAllGuis()

	jaysHubGui = Instance.new("ScreenGui")
	jaysHubGui.Name = "JaysHub"
	createNeonBackground(jaysHubGui)

	local frame = Instance.new("Frame", jaysHubGui)
	frame.Size = UDim2.new(0, 400, 0, 400)
	frame.Position = UDim2.new(0.5, -200, 0.5, -200)
	frame.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
	frame.BorderColor3 = Color3.fromRGB(255, 255, 255)
	frame.Active = true
	makeDraggable(frame)

	local label = Instance.new("TextLabel", frame)
	label.Size = UDim2.new(1, 0, 0, 50)
	label.BackgroundTransparency = 1
	label.Text = "Jay's Hub [BETA]"
	label.TextSize = 26
	label.Font = Enum.Font.GothamBold
	label.TextColor3 = Color3.fromRGB(255, 255, 255)

	createButton(frame, UDim2.new(0, 150, 0, 50), UDim2.new(0, 20, 0, 70), "NOCLIP", loadNoclipGui)
	createButton(frame, UDim2.new(0, 150, 0, 50), UDim2.new(0, 200, 0, 70), "UNNOCLIP", function()
		local char = player.Character or player.CharacterAdded:Wait()
		for _, part in pairs(char:GetDescendants()) do
			if part:IsA("BasePart") then
				part.CanCollide = true
			end
		end
	end)
	createButton(frame, UDim2.new(0, 150, 0, 50), UDim2.new(0, 20, 0, 150), "WALKSPEED", loadWalkGui)
	createButton(frame, UDim2.new(0, 150, 0, 50), UDim2.new(0, 200, 0, 150), "UNWALKSPEED", function()
		local humanoid = player.Character and player.Character:FindFirstChildOfClass("Humanoid")
		if humanoid then humanoid.WalkSpeed = 16 end
	end)
	createButton(frame, UDim2.new(0, 360, 0, 40), UDim2.new(0, 20, 0, 330), "← Return to Jann’s Hub", loadJannsHub)

	fadeIn(jaysHubGui)
end

--------------------------------------------------------------------
-- 🟢 JANN’S HUB
--------------------------------------------------------------------
function loadJannsHub()
	destroyAllGuis()

	jannsHubGui = Instance.new("ScreenGui")
	jannsHubGui.Name = "JannsHub"
	createNeonBackground(jannsHubGui)

	local frame = Instance.new("Frame", jannsHubGui)
	frame.Size = UDim2.new(0, 400, 0, 400)
	frame.Position = UDim2.new(0.5, -200, 0.5, -200)
	frame.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
	frame.BorderSizePixel = 2
	frame.Active = true
	makeDraggable(frame)

	local label = Instance.new("TextLabel", frame)
	label.Size = UDim2.new(1, 0, 0, 50)
	label.BackgroundTransparency = 1
	label.Text = "Jann’s Hub [BETA]"
	label.TextSize = 26
	label.Font = Enum.Font.GothamBold
	label.TextColor3 = Color3.fromRGB(0, 0, 0)

	createButton(frame, UDim2.new(0, 150, 0, 50), UDim2.new(0, 20, 0, 80), "Fly", loadFlyGui)
	createButton(frame, UDim2.new(0, 150, 0, 50), UDim2.new(0, 20, 0, 150), "Jay’s Hub", loadJaysHub)
	createButton(frame, UDim2.new(0, 150, 0, 50), UDim2.new(0, 20, 0, 220), "Fling", function()
		print("Placeholder for fling")
	end)

	fadeIn(jannsHubGui)
end

--------------------------------------------------------------------
-- 🟢 START
--------------------------------------------------------------------
loadJannsHub()

Features & Information

KEY SYSTEM

Community Comments (4)

SyrexGenesisSyrexGenesisOct 19, 2025

What's this supposed to be

FienFienOct 19, 2025

PATCHED

FienFienOct 19, 2025

SCRIPT IS PATCHED

FienFienOct 19, 2025

Okay guys i got the script working now

More Scripts for Universal Scripts