noobgeenee hub it cost to we have a demo
Key RequiredUniversal

noobgeenee hub it cost to we have a demo

Universal Scriptgavinthesigmagavinthesigma 699 views 9 executesUpdated Apr 8, 2026
Unrated
00
Lua Script•274 lines (7133 chars)
local player = game.Players.LocalPlayer
local UIS = game:GetService("UserInputService")
local runService = game:GetService("RunService")
local camera = workspace.CurrentCamera

-- STATES
local states = {
	AimAssist = false,
	Fly = false,
	Speed = false,
	UIOpen = true
}

-- SETTINGS
local settings = {
	AimSmoothness = 0.15,
	SpeedAmount = 50,
	FlyPower = 50
}

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

local frame = Instance.new("Frame", gui)
frame.Size = UDim2.new(0, 260, 0, 320)
frame.Position = UDim2.new(0, 20, 0.5, -160)
frame.BackgroundColor3 = Color3.fromRGB(25,25,25)

-- DRAGGING
local dragging, dragInput, dragStart, startPos

frame.InputBegan:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1 then
		dragging = true
		dragStart = input.Position
		startPos = frame.Position
	end
end)

frame.InputEnded:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1 then
		dragging = false
	end
end)

UIS.InputChanged:Connect(function(input)
	if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
		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
end)

-- TITLE
local title = Instance.new("TextLabel", frame)
title.Size = UDim2.new(1,0,0,40)
title.Text = "NoobGenie Hub"
title.BackgroundColor3 = Color3.fromRGB(40,40,40)
title.TextColor3 = Color3.new(1,1,1)

-- TABS
local mainTab = Instance.new("Frame", frame)
mainTab.Size = UDim2.new(1,0,1,-70)
mainTab.Position = UDim2.new(0,0,0,70)

local settingsTab = Instance.new("Frame", frame)
settingsTab.Size = mainTab.Size
settingsTab.Position = mainTab.Position
settingsTab.Visible = false

-- TAB BUTTONS
local mainBtn = Instance.new("TextButton", frame)
mainBtn.Size = UDim2.new(0.5,0,0,30)
mainBtn.Position = UDim2.new(0,0,0,40)
mainBtn.Text = "Main"

local settingsBtn = Instance.new("TextButton", frame)
settingsBtn.Size = UDim2.new(0.5,0,0,30)
settingsBtn.Position = UDim2.new(0.5,0,0,40)
settingsBtn.Text = "Settings"

mainBtn.MouseButton1Click:Connect(function()
	mainTab.Visible = true
	settingsTab.Visible = false
end)

settingsBtn.MouseButton1Click:Connect(function()
	mainTab.Visible = false
	settingsTab.Visible = true
end)

-- BUTTON CREATOR
local function makeButton(parent, text, y)
	local btn = Instance.new("TextButton", parent)
	btn.Size = UDim2.new(1, -20, 0, 40)
	btn.Position = UDim2.new(0, 10, 0, y)
	btn.Text = text
	btn.BackgroundColor3 = Color3.fromRGB(60,60,60)
	btn.TextColor3 = Color3.new(1,1,1)
	return btn
end

-- MAIN BUTTONS
local aimBtn = makeButton(mainTab, "Aim Assist: OFF", 10)
local flyBtn = makeButton(mainTab, "Fly: OFF", 60)
local speedBtn = makeButton(mainTab, "Speed: OFF", 110)

-- SETTINGS UI
local function makeSetting(parent, text, y)
	local label = Instance.new("TextLabel", parent)
	label.Size = UDim2.new(1, -20, 0, 30)
	label.Position = UDim2.new(0, 10, 0, y)
	label.Text = text
	label.TextColor3 = Color3.new(1,1,1)
	label.BackgroundTransparency = 1

	local minus = Instance.new("TextButton", parent)
	minus.Size = UDim2.new(0, 40, 0, 30)
	minus.Position = UDim2.new(0, 10, 0, y+30)
	minus.Text = "-"

	local plus = Instance.new("TextButton", parent)
	plus.Size = UDim2.new(0, 40, 0, 30)
	plus.Position = UDim2.new(0, 60, 0, y+30)
	plus.Text = "+"

	return label, minus, plus
end

local aimLabel, aimMinus, aimPlus = makeSetting(settingsTab, "", 10)
local speedLabel, speedMinus, speedPlus = makeSetting(settingsTab, "", 90)
local flyLabel, flyMinus, flyPlus = makeSetting(settingsTab, "", 170)

-- UPDATE LABELS
local function updateLabels()
	aimLabel.Text = "Aim Smoothness: "..settings.AimSmoothness
	speedLabel.Text = "Speed: "..settings.SpeedAmount
	flyLabel.Text = "Fly Power: "..settings.FlyPower
end
updateLabels()

-- SETTINGS LOGIC
aimMinus.MouseButton1Click:Connect(function()
	settings.AimSmoothness = math.max(0.05, settings.AimSmoothness - 0.05)
	updateLabels()
end)

aimPlus.MouseButton1Click:Connect(function()
	settings.AimSmoothness += 0.05
	updateLabels()
end)

speedMinus.MouseButton1Click:Connect(function()
	settings.SpeedAmount = math.max(16, settings.SpeedAmount - 5)
	updateLabels()
end)

speedPlus.MouseButton1Click:Connect(function()
	settings.SpeedAmount += 5
	updateLabels()
end)

flyMinus.MouseButton1Click:Connect(function()
	settings.FlyPower = math.max(10, settings.FlyPower - 5)
	updateLabels()
end)

flyPlus.MouseButton1Click:Connect(function()
	settings.FlyPower += 5
	updateLabels()
end)

-- TOGGLES
local function toggleAim()
	states.AimAssist = not states.AimAssist
	aimBtn.Text = "Aim Assist: " .. (states.AimAssist and "ON" or "OFF")
end

local function toggleFly()
	states.Fly = not states.Fly
	flyBtn.Text = "Fly: " .. (states.Fly and "ON" or "OFF")
end

local function toggleSpeed()
	states.Speed = not states.Speed
	
	local char = player.Character
	if char and char:FindFirstChild("Humanoid") then
		char.Humanoid.WalkSpeed = states.Speed and settings.SpeedAmount or 16
	end
	
	speedBtn.Text = "Speed: " .. (states.Speed and "ON" or "OFF")
end

-- BUTTON EVENTS
aimBtn.MouseButton1Click:Connect(toggleAim)
flyBtn.MouseButton1Click:Connect(toggleFly)
speedBtn.MouseButton1Click:Connect(toggleSpeed)

-- KEYBINDS
UIS.InputBegan:Connect(function(input, gpe)
	if gpe then return end
	
	if input.KeyCode == Enum.KeyCode.E then toggleAim() end
	if input.KeyCode == Enum.KeyCode.F then toggleFly() end
	if input.KeyCode == Enum.KeyCode.LeftShift then toggleSpeed() end
	
	if input.KeyCode == Enum.KeyCode.RightControl then
		states.UIOpen = not states.UIOpen
		gui.Enabled = states.UIOpen
	end
end)

-- AIM FUNCTION
local function getClosestTarget()
	local closest, shortest = nil, math.huge
	
	for _, plr in pairs(game.Players:GetPlayers()) do
		if plr ~= player and plr.Character and plr.Character:FindFirstChild("Head") then
			local head = plr.Character.Head
			local pos, onScreen = camera:WorldToViewportPoint(head.Position)
			
			if onScreen then
				local dist = (Vector2.new(pos.X, pos.Y) - Vector2.new(camera.ViewportSize.X/2, camera.ViewportSize.Y/2)).Magnitude
				if dist < shortest then
					shortest = dist
					closest = head
				end
			end
		end
	end
	
	return closest
end

-- MAIN LOOP
runService.RenderStepped:Connect(function()
	-- AIM
	if states.AimAssist then
		local target = getClosestTarget()
		if target then
			camera.CFrame = camera.CFrame:Lerp(
				CFrame.new(camera.CFrame.Position, target.Position),
				settings.AimSmoothness
			)
		end
	end
	
	-- FLY
	local char = player.Character
	if char and char:FindFirstChild("HumanoidRootPart") then
		local hrp = char.HumanoidRootPart
		
		if states.Fly then
			if not hrp:FindFirstChild("FlyForce") then
				local bv = Instance.new("BodyVelocity")
				bv.Name = "FlyForce"
				bv.MaxForce = Vector3.new(99999,99999,99999)
				bv.Parent = hrp
			end
			hrp.FlyForce.Velocity = Vector3.new(0, settings.FlyPower, 0)
		else
			if hrp:FindFirstChild("FlyForce") then
				hrp.FlyForce:Destroy()
			end
		end
	end
end)

Features & Information

hi this is noobgeenee hub
#noobgeenee hub

Community Comments (11)

gavinthesigmagavinthesigmaApr 8, 2026

tell me if somthing is broken

gavinthesigmagavinthesigmaApr 8, 2026

how you guys like it

gavinthesigmagavinthesigmaApr 8, 2026

bro pls comment

gavinthesigmagavinthesigmaApr 8, 2026

I need to here you guys

TestesitralTestesitralApr 9, 2026(edited)

Hey, I haven't even downloaded your script, I'm just looking at the comments lol.

TestesitralTestesitralApr 9, 2026(edited)

That's a lie, I just want to know what that script is like, if you have time to explain it.

Replying to @Testesitral
gavinthesigmagavinthesigmaApr 9, 2026

@Testesitral thanks for asking but idk rlly know what I added to it lol

gavinthesigmagavinthesigmaApr 9, 2026

oh ok man sorry I where offline but thanks for asking

gavinthesigmagavinthesigmaApr 10, 2026

alr guys on Fridays you dont have to pay

gavinthesigmagavinthesigmaApr 10, 2026

bc of Jesus and on sondays to its free

gavinthesigmagavinthesigmaApr 10, 2026

Sundays I mean

More Scripts for Universal Scripts