SH Script Hub Keyless
Key RequiredUniversal

SH Script Hub Keyless

Universal Scriptkaimocenatkaimocenat 164 views 2.9K executesUpdated Aug 8, 2026
Unrated
00
Lua Script•824 lines (14626 chars)
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")

local player = Players.LocalPlayer

-- SETTINGS
local NORMAL_SPEED = 16
local FAST_SPEED = 50
local NORMAL_JUMP = 50
local HIGH_JUMP = 100
local FLY_SPEED = 70

-- STATES
local flying = false
local noclip = false
local speedEnabled = false
local jumpEnabled = false
local godMode = false
local savedPosition = nil

local flyConnection
local flyVelocity
local flyGyro
local noclipConnection
local godConnection

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

----------------------------------------------------------------
-- MAIN HUB
----------------------------------------------------------------

local main = Instance.new("Frame")
main.Size = UDim2.new(0, 300, 0, 470)
main.Position = UDim2.new(0.5, -150, 0.5, -235)
main.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
main.BorderSizePixel = 0
main.Parent = gui

local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 10)
corner.Parent = main

----------------------------------------------------------------
-- TITLE
----------------------------------------------------------------

local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -90, 0, 45)
title.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
title.Text = "⚙ SCRIPT HUB"
title.TextColor3 = Color3.new(1, 1, 1)
title.TextSize = 20
title.Font = Enum.Font.GothamBold
title.Parent = main

----------------------------------------------------------------
-- MINUS BUTTON
----------------------------------------------------------------

local minimize = Instance.new("TextButton")
minimize.Size = UDim2.new(0, 45, 0, 45)
minimize.Position = UDim2.new(1, -90, 0, 0)
minimize.BackgroundTransparency = 1
minimize.Text = "−"
minimize.TextColor3 = Color3.new(1, 1, 1)
minimize.TextSize = 28
minimize.Font = Enum.Font.GothamBold
minimize.Parent = main

----------------------------------------------------------------
-- CLOSE BUTTON
----------------------------------------------------------------

local close = Instance.new("TextButton")
close.Size = UDim2.new(0, 45, 0, 45)
close.Position = UDim2.new(1, -45, 0, 0)
close.BackgroundTransparency = 1
close.Text = "X"
close.TextColor3 = Color3.fromRGB(255, 80, 80)
close.TextSize = 20
close.Font = Enum.Font.GothamBold
close.Parent = main

----------------------------------------------------------------
-- SH BUTTON
----------------------------------------------------------------

local shButton = Instance.new("TextButton")

shButton.Size = UDim2.new(0, 55, 0, 45)

-- TOP CENTER
shButton.Position = UDim2.new(
	0.5,
	-27,
	0,
	55
)

shButton.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
shButton.Text = "sh"
shButton.TextColor3 = Color3.new(1, 1, 1)
shButton.TextSize = 18
shButton.Font = Enum.Font.GothamBold
shButton.Visible = false
shButton.Active = true
shButton.Parent = gui

local shCorner = Instance.new("UICorner")
shCorner.CornerRadius = UDim.new(0, 8)
shCorner.Parent = shButton

----------------------------------------------------------------
-- DRAGGABLE SH BUTTON
----------------------------------------------------------------

local shDragging = false
local shDragStart
local shStartPosition

shButton.InputBegan:Connect(function(input)

	if input.UserInputType == Enum.UserInputType.MouseButton1
		or input.UserInputType == Enum.UserInputType.Touch then

		shDragging = true
		shDragStart = input.Position
		shStartPosition = shButton.Position

	end

end)

shButton.InputEnded:Connect(function(input)

	if input.UserInputType == Enum.UserInputType.MouseButton1
		or input.UserInputType == Enum.UserInputType.Touch then

		shDragging = false

	end

end)

UserInputService.InputChanged:Connect(function(input)

	if shDragging and (
		input.UserInputType == Enum.UserInputType.MouseMovement
		or input.UserInputType == Enum.UserInputType.Touch
	) then

		local delta = input.Position - shDragStart

		shButton.Position = UDim2.new(
			shStartPosition.X.Scale,
			shStartPosition.X.Offset + delta.X,
			shStartPosition.Y.Scale,
			shStartPosition.Y.Offset + delta.Y
		)

	end

end)

----------------------------------------------------------------
-- MINIMIZE / REOPEN
----------------------------------------------------------------

minimize.Activated:Connect(function()

	main.Visible = false
	shButton.Visible = true

end)

shButton.Activated:Connect(function()

	main.Visible = true
	shButton.Visible = false

end)

close.Activated:Connect(function()

	main.Visible = false
	shButton.Visible = false

end)

----------------------------------------------------------------
-- DRAGGABLE MAIN HUB
----------------------------------------------------------------

local dragging = false
local dragStart
local startPosition

title.InputBegan:Connect(function(input)

	if input.UserInputType == Enum.UserInputType.MouseButton1
		or input.UserInputType == Enum.UserInputType.Touch then

		dragging = true
		dragStart = input.Position
		startPosition = main.Position

	end

end)

title.InputEnded:Connect(function(input)

	if input.UserInputType == Enum.UserInputType.MouseButton1
		or input.UserInputType == Enum.UserInputType.Touch then

		dragging = false

	end

end)

UserInputService.InputChanged:Connect(function(input)

	if dragging and (
		input.UserInputType == Enum.UserInputType.MouseMovement
		or input.UserInputType == Enum.UserInputType.Touch
	) then

		local delta = input.Position - dragStart

		main.Position = UDim2.new(
			startPosition.X.Scale,
			startPosition.X.Offset + delta.X,
			startPosition.Y.Scale,
			startPosition.Y.Offset + delta.Y
		)

	end

end)

----------------------------------------------------------------
-- BUTTON CREATOR
----------------------------------------------------------------

local y = 55

local function makeButton(text)

	local button = Instance.new("TextButton")

	button.Size = UDim2.new(1, -20, 0, 40)
	button.Position = UDim2.new(0, 10, 0, y)
	button.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
	button.TextColor3 = Color3.new(1, 1, 1)
	button.TextSize = 15
	button.Font = Enum.Font.GothamBold
	button.Text = text
	button.Parent = main

	local c = Instance.new("UICorner")
	c.CornerRadius = UDim.new(0, 6)
	c.Parent = button

	y += 45

	return button

end

local function getCharacter()

	return player.Character
		or player.CharacterAdded:Wait()

end

----------------------------------------------------------------
-- NOCLIP
----------------------------------------------------------------

local noclipButton = makeButton("👻 Noclip: OFF")

noclipButton.Activated:Connect(function()

	noclip = not noclip

	noclipButton.Text =
		"👻 Noclip: "
		.. (noclip and "ON" or "OFF")

	if noclip then

		noclipConnection =
			RunService.Stepped:Connect(function()

				local character =
					player.Character

				if character then

					for _, part in ipairs(
						character:GetDescendants()
					) do

						if part:IsA("BasePart") then
							part.CanCollide = false
						end

					end

				end

			end)

	else

		if noclipConnection then

			noclipConnection:Disconnect()
			noclipConnection = nil

		end

	end

end)

----------------------------------------------------------------
-- SPEED
----------------------------------------------------------------

local speedButton = makeButton("⚡ Speed: OFF")

speedButton.Activated:Connect(function()

	speedEnabled = not speedEnabled

	local humanoid =
		getCharacter():FindFirstChildOfClass("Humanoid")

	if humanoid then

		humanoid.WalkSpeed =
			speedEnabled
			and FAST_SPEED
			or NORMAL_SPEED

	end

	speedButton.Text =
		"⚡ Speed: "
		.. (speedEnabled and "ON" or "OFF")

end)

----------------------------------------------------------------
-- HIGH JUMP
----------------------------------------------------------------

local jumpButton = makeButton("🦘 High Jump: OFF")

jumpButton.Activated:Connect(function()

	jumpEnabled = not jumpEnabled

	local humanoid =
		getCharacter():FindFirstChildOfClass("Humanoid")

	if humanoid then

		humanoid.UseJumpPower = true

		humanoid.JumpPower =
			jumpEnabled
			and HIGH_JUMP
			or NORMAL_JUMP

	end

	jumpButton.Text =
		"🦘 High Jump: "
		.. (jumpEnabled and "ON" or "OFF")

end)

----------------------------------------------------------------
-- SAVE POSITION
----------------------------------------------------------------

local saveButton = makeButton("📍 Save Position")

saveButton.Activated:Connect(function()

	local root =
		getCharacter():FindFirstChild(
			"HumanoidRootPart"
		)

	if root then

		savedPosition = root.CFrame

		saveButton.Text =
			"✅ Position Saved!"

		task.delay(1.5, function()

			saveButton.Text =
				"📍 Save Position"

		end)

	end

end)

----------------------------------------------------------------
-- TELEPORT
----------------------------------------------------------------

local teleportButton =
	makeButton("🌀 Teleport to Saved")

teleportButton.Activated:Connect(function()

	if savedPosition then

		local root =
			getCharacter():FindFirstChild(
				"HumanoidRootPart"
			)

		if root then
			root.CFrame = savedPosition
		end

	else

		teleportButton.Text =
			"❌ No Position Saved"

		task.delay(1.5, function()

			teleportButton.Text =
				"🌀 Teleport to Saved"

		end)

	end

end)

----------------------------------------------------------------
-- GOD MODE
----------------------------------------------------------------

local godButton =
	makeButton("🛡️ God Mode: OFF")

godButton.Activated:Connect(function()

	godMode = not godMode

	godButton.Text =
		"🛡️ God Mode: "
		.. (godMode and "ON" or "OFF")

	local humanoid =
		getCharacter():FindFirstChildOfClass(
			"Humanoid"
		)

	if humanoid then

		if godMode then

			humanoid.MaxHealth = math.huge
			humanoid.Health = math.huge

			if godConnection then
				godConnection:Disconnect()
			end

			godConnection =
				humanoid.HealthChanged:Connect(
					function()

						if godMode then
							humanoid.Health = math.huge
						end

					end
				)

		else

			if godConnection then

				godConnection:Disconnect()
				godConnection = nil

			end

			humanoid.MaxHealth = 100
			humanoid.Health = 100

		end

	end

end)

----------------------------------------------------------------
-- RESET
----------------------------------------------------------------

local resetButton =
	makeButton("🔄 Reset Character")

resetButton.Activated:Connect(function()

	local character =
		player.Character

	local humanoid =
		character
		and character:FindFirstChildOfClass(
			"Humanoid"
		)

	if humanoid then
		humanoid.Health = 0
	end

end)

----------------------------------------------------------------
-- CAMERA 3D FLY
----------------------------------------------------------------

local flyButton =
	makeButton("✈️ Fly: OFF")

flyButton.Activated:Connect(function()

	flying = not flying

	flyButton.Text =
		"✈️ Fly: "
		.. (flying and "ON" or "OFF")

	local character =
		getCharacter()

	local humanoid =
		character:FindFirstChildOfClass(
			"Humanoid"
		)

	local root =
		character:FindFirstChild(
			"HumanoidRootPart"
		)

	if not humanoid or not root then

		flying = false
		return

	end

	if flying then

		humanoid.PlatformStand = true
		humanoid.AutoRotate = false

		flyVelocity =
			Instance.new("BodyVelocity")

		flyVelocity.Name =
			"MobileFlyVelocity"

		flyVelocity.MaxForce =
			Vector3.new(
				math.huge,
				math.huge,
				math.huge
			)

		flyVelocity.P = 15000
		flyVelocity.Velocity =
			Vector3.zero

		flyVelocity.Parent = root

		flyGyro =
			Instance.new("BodyGyro")

		flyGyro.Name =
			"MobileFlyGyro"

		flyGyro.MaxTorque =
			Vector3.new(
				math.huge,
				math.huge,
				math.huge
			)

		flyGyro.P = 15000
		flyGyro.D = 500
		flyGyro.CFrame =
			root.CFrame

		flyGyro.Parent = root

		flyConnection =
			RunService.RenderStepped:Connect(
				function()

					if not flying
						or not root.Parent then
						return
					end

					local camera =
						workspace.CurrentCamera

					local move =
						humanoid.MoveDirection

					local cameraForward =
						camera.CFrame.LookVector

					local cameraRight =
						camera.CFrame.RightVector

					local flatForward =
						Vector3.new(
							cameraForward.X,
							0,
							cameraForward.Z
						)

					local flatRight =
						Vector3.new(
							cameraRight.X,
							0,
							cameraRight.Z
						)

					if flatForward.Magnitude > 0 then

						flatForward =
							flatForward.Unit

					end

					if flatRight.Magnitude > 0 then

						flatRight =
							flatRight.Unit

					end

					local forwardAmount =
						move:Dot(flatForward)

					local rightAmount =
						move:Dot(flatRight)

					local direction =
						Vector3.zero

					if move.Magnitude > 0.05 then

						direction =
							(cameraForward
								* forwardAmount)
							+
							(flatRight
								* rightAmount)

						if direction.Magnitude > 0 then

							direction =
								direction.Unit

						end

					end

					if direction.Magnitude > 0.05 then

						flyVelocity.Velocity =
							direction * FLY_SPEED

					else

						flyVelocity.Velocity =
							Vector3.zero

					end

					local look =
						camera.CFrame.LookVector

					if look.Magnitude > 0 then

						flyGyro.CFrame =
							CFrame.lookAt(
								root.Position,
								root.Position + look
							)

					end

				end
			)

	else

		if flyConnection then

			flyConnection:Disconnect()
			flyConnection = nil

		end

		if flyVelocity then

			flyVelocity:Destroy()
			flyVelocity = nil

		end

		if flyGyro then

			flyGyro:Destroy()
			flyGyro = nil

		end

		humanoid.PlatformStand = false
		humanoid.AutoRotate = true

		root.AssemblyLinearVelocity =
			Vector3.zero

	end

end)

----------------------------------------------------------------
-- RESPAWN SUPPORT
----------------------------------------------------------------

player.CharacterAdded:Connect(function(character)

	task.wait(1)

	local humanoid =
		character:WaitForChild("Humanoid")

	if speedEnabled then

		humanoid.WalkSpeed =
			FAST_SPEED

	else

		humanoid.WalkSpeed =
			NORMAL_SPEED

	end

	humanoid.UseJumpPower = true

	if jumpEnabled then

		humanoid.JumpPower =
			HIGH_JUMP

	else

		humanoid.JumpPower =
			NORMAL_JUMP

	end

	flying = false

	if flyConnection then

		flyConnection:Disconnect()
		flyConnection = nil

	end

	if flyVelocity then

		flyVelocity:Destroy()
		flyVelocity = nil

	end

	if flyGyro then

		flyGyro:Destroy()
		flyGyro = nil

	end

	humanoid.PlatformStand = false
	humanoid.AutoRotate = true

end)

Features & Information

It has a lot of base normal scripts, adding more soon

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts