helle menu
Key RequiredUniversal

helle menu

Universal Scriptharytimp19harytimp19 1K views 5 executesUpdated Jun 24, 2025
Unrated
00
Lua Script•447 lines (13586 chars)
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UIS = game:GetService("UserInputService")
local player = Players.LocalPlayer

-- GUI Setup
local gui = Instance.new("ScreenGui", player:WaitForChild("PlayerGui"))
gui.Name = "ImprovedMenu"
gui.ResetOnSpawn = false

-- Open Button
local openBtn = Instance.new("TextButton", gui)
openBtn.Size = UDim2.new(0, 120, 0, 40)
openBtn.Position = UDim2.new(0, 20, 0.5, -20)
openBtn.Text = "📱 Open Menu"
openBtn.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
openBtn.TextColor3 = Color3.new(1, 1, 1)
openBtn.Font = Enum.Font.SourceSansBold
openBtn.AutoButtonColor = true
openBtn.BorderSizePixel = 0
openBtn.BackgroundTransparency = 0.1
openBtn.TextScaled = true
openBtn.TextWrapped = true
local openBtnCorner = Instance.new("UICorner", openBtn)
openBtnCorner.CornerRadius = UDim.new(0, 12)

-- Key Frame
local keyFrame = Instance.new("Frame", gui)
keyFrame.Size = UDim2.new(0, 300, 0, 150)
keyFrame.Position = UDim2.new(0.5, -150, 0.5, -75)
keyFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
keyFrame.Visible = false

local keyFrameUICorner = Instance.new("UICorner", keyFrame)
keyFrameUICorner.CornerRadius = UDim.new(0, 12)

local keyBox = Instance.new("TextBox", keyFrame)
keyBox.Size = UDim2.new(0.8, 0, 0.3, 0)
keyBox.Position = UDim2.new(0.1, 0, 0.2, 0)
keyBox.PlaceholderText = "Enter Key"
keyBox.Text = ""
keyBox.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
keyBox.TextColor3 = Color3.new(1, 1, 1)

local keySubmit = Instance.new("TextButton", keyFrame)
keySubmit.Size = UDim2.new(0.6, 0, 0.25, 0)
keySubmit.Position = UDim2.new(0.2, 0, 0.6, 0)
keySubmit.Text = "Unlock"
keySubmit.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
keySubmit.TextColor3 = Color3.new(1, 1, 1)
keySubmit.Font = Enum.Font.SourceSansBold
local keySubmitUICorner = Instance.new("UICorner", keySubmit)
keySubmitUICorner.CornerRadius = UDim.new(0, 12)

-- Main GUI
local main = Instance.new("Frame", gui)
main.Size = UDim2.new(0, 600, 0, 400)
main.Position = UDim2.new(0.5, -300, 0.5, -200)
main.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
main.Visible = false

local mainUICorner = Instance.new("UICorner", main)
mainUICorner.CornerRadius = UDim.new(0, 18)

-- Close Button for main GUI
local closeBtn = Instance.new("TextButton", main)
closeBtn.Size = UDim2.new(0, 30, 0, 30)
closeBtn.Position = UDim2.new(1, -35, 0, 5)
closeBtn.Text = "✖"
closeBtn.BackgroundColor3 = Color3.fromRGB(100, 0, 0)
closeBtn.TextColor3 = Color3.new(1, 1, 1)
closeBtn.Font = Enum.Font.SourceSansBold
closeBtn.AutoButtonColor = true
local closeUICorner = Instance.new("UICorner", closeBtn)
closeUICorner.CornerRadius = UDim.new(0, 12)

-- Left Tabs
local leftTabs = Instance.new("Frame", main)
leftTabs.Size = UDim2.new(0, 100, 1, 0)
leftTabs.BackgroundColor3 = Color3.fromRGB(20, 20, 20)

local leftTabsUICorner = Instance.new("UICorner", leftTabs)
leftTabsUICorner.CornerRadius = UDim.new(0, 12)

-- Top Tabs
local topTabs = Instance.new("Frame", main)
topTabs.Size = UDim2.new(1, -100, 0, 30)
topTabs.Position = UDim2.new(0, 100, 0, 0)
topTabs.BackgroundColor3 = Color3.fromRGB(30, 30, 30)

local topTabsUICorner = Instance.new("UICorner", topTabs)
topTabsUICorner.CornerRadius = UDim.new(0, 12)

-- Content Area
local contentFrame = Instance.new("Frame", main)
contentFrame.Size = UDim2.new(1, -100, 1, -30)
contentFrame.Position = UDim2.new(0, 100, 0, 30)
contentFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)

local contentUICorner = Instance.new("UICorner", contentFrame)
contentUICorner.CornerRadius = UDim.new(0, 12)

-- Store script tabs
local scriptTabs = {}
local activeTabIndex = nil

local function setActiveTab(index)
	for i, box in ipairs(scriptTabs) do
		box.Visible = (i == index)
	end
	for i, btn in ipairs(topTabs:GetChildren()) do
		if btn:IsA("TextButton") and btn ~= plusBtn then
			btn.BackgroundColor3 = (i == index and Color3.fromRGB(100, 100, 100) or Color3.fromRGB(50, 50, 50))
		end
	end
	activeTabIndex = index
end

local function createScriptTab(name, content)
	local tab = Instance.new("TextButton", topTabs)
	tab.Size = UDim2.new(0, 100, 1, 0)
	tab.Text = name
	tab.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
	tab.TextColor3 = Color3.new(1, 1, 1)
	tab.Font = Enum.Font.SourceSansBold
	tab.AutoButtonColor = true
	local tabUICorner = Instance.new("UICorner", tab)
	tabUICorner.CornerRadius = UDim.new(0, 12)

	local box = Instance.new("TextBox", contentFrame)
	box.Size = UDim2.new(1, 0, 1, 0)
	box.Text = content or "-- Write your script here"
	box.ClearTextOnFocus = false
	box.MultiLine = true
	box.Visible = false
	box.BackgroundColor3 = Color3.fromRGB(10, 10, 10)
	box.TextColor3 = Color3.new(1, 1, 1)
	box.Font = Enum.Font.Code
	box.TextSize = 16
	box.TextXAlignment = Enum.TextXAlignment.Left
	box.TextYAlignment = Enum.TextYAlignment.Top

	scriptTabs[#scriptTabs + 1] = box

	tab.MouseButton1Click:Connect(function()
		setActiveTab(#scriptTabs)
	end)

	setActiveTab(#scriptTabs)
end

-- + Button for new tabs
plusBtn = Instance.new("TextButton", topTabs)
plusBtn.Size = UDim2.new(0, 30, 1, 0)
plusBtn.Position = UDim2.new(1, -30, 0, 0)
plusBtn.Text = "+"
plusBtn.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
plusBtn.TextColor3 = Color3.new(1, 1, 1)
plusBtn.Font = Enum.Font.SourceSansBold
plusBtn.AutoButtonColor = true
local plusUICorner = Instance.new("UICorner", plusBtn)
plusUICorner.CornerRadius = UDim.new(0, 12)
plusBtn.MouseButton1Click:Connect(function()
	createScriptTab("Tab " .. tostring(#scriptTabs + 1))
end)

-- Mods Tab Buttons & Toggles
local modsButtons = {}
local flyActive = false
local noclipActive = false
local lockActive = false
local flingActive = false

local bodyGyro, bodyVelocity, flingTouchedConnection

local direction = Vector3.new(0,0,0)
local keysHeld = {}

-- Fly toggle function
local function toggleFly(on)
	local char = player.Character
	local hrp = char and char:FindFirstChild("HumanoidRootPart")
	if not hrp then return end

	if on then
		if bodyGyro or bodyVelocity then return end -- already flying
		bodyGyro = Instance.new("BodyGyro", hrp)
		bodyGyro.P = 9e4
		bodyGyro.MaxTorque = Vector3.new(9e9, 9e9, 9e9)
		bodyVelocity = Instance.new("BodyVelocity", hrp)
		bodyVelocity.MaxForce = Vector3.new(9e9, 9e9, 9e9)
		bodyVelocity.Velocity = Vector3.new(0,0,0)
	else
		if bodyGyro then bodyGyro:Destroy(); bodyGyro = nil end
		if bodyVelocity then bodyVelocity:Destroy(); bodyVelocity = nil end
	end
	flyActive = on
end

-- Noclip toggle
local noclipConn
local function toggleNoclip(on)
	if on then
		if noclipConn then return end
		noclipConn = RunService.Stepped:Connect(function()
			if player.Character then
				for _, p in pairs(player.Character:GetDescendants()) do
					if p:IsA("BasePart") then
						p.CanCollide = false
					end
				end
			end
		end)
	else
		if noclipConn then
			noclipConn:Disconnect()
			noclipConn = nil
		end
	end
	noclipActive = on
end

-- Lock to nearest player head toggle
local lockWeld
local function toggleLock(on)
	if on then
		if lockWeld then return end
		local closest, dist = nil, math.huge
		for _, p in pairs(Players:GetPlayers()) do
			if p ~= player and p.Character and p.Character:FindFirstChild("Head") and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
				local d = (p.Character.Head.Position - player.Character.Head.Position).Magnitude
				if d < dist then
					closest, dist = p, d
				end
			end
		end
		if closest then
			lockWeld = Instance.new("WeldConstraint")
			lockWeld.Part0 = player.Character.HumanoidRootPart
			lockWeld.Part1 = closest.Character.Head
			lockWeld.Parent = lockWeld.Part0
		end
	else
		if lockWeld then
			lockWeld:Destroy()
			lockWeld = nil
		end
	end
	lockActive = on
end

-- Fling toggle and function
local function flingTouch(playerToFling)
	local char = playerToFling.Character
	if not char then return end
	local hrp = char:FindFirstChild("HumanoidRootPart")
	if not hrp then return end

	local bav = Instance.new("BodyAngularVelocity", hrp)
	bav.MaxTorque = Vector3.new(0, math.huge, 0)
	bav.AngularVelocity = Vector3.new(0, 30, 0)
	game.Debris:AddItem(bav, 3)

	local bv = Instance.new("BodyVelocity", hrp)
	bv.MaxForce = Vector3.new(9e9, 9e9, 9e9)
	bv.Velocity = Vector3.new(0, 100, 0)
	game.Debris:AddItem(bv, 1)
end

local function toggleFling(on)
	if on then
		if flingTouchedConnection then return end
		local char = player.Character
		local hrp = char and char:FindFirstChild("HumanoidRootPart")
		if not hrp then return end

		flingTouchedConnection = hrp.Touched:Connect(function(hit)
			local hitChar = hit.Parent
			local plr = Players:GetPlayerFromCharacter(hitChar)
			if plr and plr ~= player then
				flingTouch(plr)
			end
		end)
	else
		if flingTouchedConnection then
			flingTouchedConnection:Disconnect()
			flingTouchedConnection = nil
		end
	end
	flingActive = on
end

-- Update Fly movement each frame
RunService.RenderStepped:Connect(function()
	if flyActive and bodyGyro and bodyVelocity then
		local cam = workspace.CurrentCamera
		bodyGyro.CFrame = cam.CFrame

		local moveVec = Vector3.new(0,0,0)
		if keysHeld[Enum.KeyCode.W] then moveVec = moveVec + Vector3.new(0, 0, -1) end
		if keysHeld[Enum.KeyCode.S] then moveVec = moveVec + Vector3.new(0, 0, 1) end
		if keysHeld[Enum.KeyCode.A] then moveVec = moveVec + Vector3.new(-1, 0, 0) end
		if keysHeld[Enum.KeyCode.D] then moveVec = moveVec + Vector3.new(1, 0, 0) end

		if moveVec.Magnitude > 0 then
			bodyVelocity.Velocity = cam.CFrame:VectorToWorldSpace(moveVec.Unit * 70)
		else
			bodyVelocity.Velocity = Vector3.new(0,0,0)
		end
	end
end)

UIS.InputBegan:Connect(function(input, gameProcessed)
	if gameProcessed then return end
	if flyActive then
		if input.UserInputType == Enum.UserInputType.Keyboard then
			keysHeld[input.KeyCode] = true
		end
	end
end)

UIS.InputEnded:Connect(function(input)
	if flyActive then
		if input.UserInputType == Enum.UserInputType.Keyboard then
			keysHeld[input.KeyCode] = nil
		end
	end
end)

-- Mods tab buttons
local function showMods()
	contentFrame:ClearAllChildren()
	modsButtons = {}

	local function createToggleButton(text, initial, toggleFunc)
		local btn = Instance.new("TextButton", contentFrame)
		btn.Size = UDim2.new(1, -20, 0, 40)
		btn.Position = UDim2.new(0, 10, 0, (#contentFrame:GetChildren()) * 45)
		btn.BackgroundColor3 = initial and Color3.fromRGB(0, 170, 0) or Color3.fromRGB(85, 85, 85)
		btn.TextColor3 = Color3.new(1, 1, 1)
		btn.Text = text .. (initial and " [ON]" or " [OFF]")
		btn.Font = Enum.Font.SourceSansBold
		local btnCorner = Instance.new("UICorner", btn)
		btnCorner.CornerRadius = UDim.new(0, 12)

		local toggled = initial
		btn.MouseButton1Click:Connect(function()
			toggled = not toggled
			btn.BackgroundColor3 = toggled and Color3.fromRGB(0, 170, 0) or Color3.fromRGB(85, 85, 85)
			btn.Text = text .. (toggled and " [ON]" or " [OFF]")
			toggleFunc(toggled)
		end)
		return btn
	end

	modsButtons.fly = createToggleButton("Fly", flyActive, toggleFly)
	modsButtons.noclip = createToggleButton("Noclip", noclipActive, toggleNoclip)
	modsButtons.lock = createToggleButton("Lock to Head", lockActive, toggleLock)
	modsButtons.fling = createToggleButton("Fling (Touch)", flingActive, toggleFling)
end

-- Left Tabs Buttons
for i, name in ipairs({"Scripts", "Mods"}) do
	local tabBtn = Instance.new("TextButton", leftTabs)
	tabBtn.Size = UDim2.new(1, 0, 0, 40)
	tabBtn.Position = UDim2.new(0, 0, 0, (i-1)*45)
	tabBtn.BackgroundColor3 = Color3.fromRGB(35,35,35)
	tabBtn.TextColor3 = Color3.new(1,1,1)
	tabBtn.Font = Enum.Font.SourceSansBold
	tabBtn.Text = name
	tabBtn.AutoButtonColor = true
	local tabBtnCorner = Instance.new("UICorner", tabBtn)
	tabBtnCorner.CornerRadius = UDim.new(0, 12)

	tabBtn.MouseButton1Click:Connect(function()
		if name == "Scripts" then
			contentFrame:ClearAllChildren()
			for _, box in pairs(scriptTabs) do
				box.Parent = contentFrame
				box.Visible = false
			end
			if #scriptTabs > 0 then
				scriptTabs[activeTabIndex or 1].Visible = true
			end
			-- Restore tabs buttons except plus button
			for _, child in pairs(topTabs:GetChildren()) do
				if child:IsA("TextButton") and child ~= plusBtn then
					child.Parent = topTabs
					child.Visible = true
				end
			end
			plusBtn.Parent = topTabs
			plusBtn.Visible = true
		elseif name == "Mods" then
			for _, b in pairs(scriptTabs) do b.Visible = false end
			showMods()
		end
	end)
end

-- Open and Key check
openBtn.MouseButton1Click:Connect(function()
	openBtn.Visible = false
	keyFrame.Visible = true
	keyBox.Text = ""
end)

keySubmit.MouseButton1Click:Connect(function()
	if keyBox.Text == "imahuman" then
		keyFrame.Visible = false
		main.Visible = true
		if #scriptTabs == 0 then
			createScriptTab("Tab 1")
		end
	end
end)

-- Close main GUI button
closeBtn.MouseButton1Click:Connect(function()
	main.Visible = false
	openBtn.Visible = true
	keyBox.Text = ""
end)

-- Make main draggable by topTabs
local dragging, dragInput, dragStart, startPos

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

UIS.InputChanged:Connect(function(input)
	if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
		local delta = input.Position - dragStart
		main.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X,
								  startPos.Y.Scale, startPos.Y.Offset + delta.Y)
	end
end)

Features & Information

mods and saving scripts key is imahuman

Community Comments (1)

v1nnzv1nnzJun 24, 2025

apps > chatgpt > "remove the instructions" you will free from suspect :tw1nksmile:

More Scripts for Universal Scripts