OptiHub Beta Keyless
Key RequiredUniversal

OptiHub Beta Keyless

Universal Scriptblackfire9866758blackfire9866758 165 views 9 executesUpdated Feb 16, 2026
Unrated
00
Lua Script•492 lines (14534 chars)
-- Optihub (Single LocalScript)
-- Embedded top bar drag, full-screen blur confirmation, off-screen bottom restore bar (any part off-screen)
-- Place in StarterPlayerScripts as a LocalScript

local Players = game:GetService("Players")
local UIS = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Lighting = game:GetService("Lighting")

local player = Players.LocalPlayer
local pg = player:WaitForChild("PlayerGui")

local function destroy(obj)
	if obj and obj.Parent then obj:Destroy() end
end

-- Helper: create UICorner quickly
local function corner(parent, radius)
	local c = Instance.new("UICorner", parent)
	c.CornerRadius = UDim.new(0, radius or 6)
	return c
end

-- Initial "Run Optihub?" popup
local promptGui = Instance.new("ScreenGui", pg)
promptGui.Name = "OptihubPrompt"
promptGui.DisplayOrder = 999999

local promptFrame = Instance.new("Frame", promptGui)
promptFrame.Size = UDim2.new(0, 320, 0, 160)
promptFrame.Position = UDim2.new(0.5, -160, 0.5, -80)
promptFrame.BackgroundColor3 = Color3.fromRGB(15, 20, 30)
promptFrame.BackgroundTransparency = 0.05
promptFrame.BorderSizePixel = 0
corner(promptFrame, 8)

local promptText = Instance.new("TextLabel", promptFrame)
promptText.Size = UDim2.new(1, -24, 0, 72)
promptText.Position = UDim2.new(0, 12, 0, 12)
promptText.BackgroundTransparency = 1
promptText.Text = "Do you want to run Optihub?"
promptText.TextColor3 = Color3.fromRGB(210, 230, 255)
promptText.TextSize = 20
promptText.Font = Enum.Font.GothamMedium
promptText.TextWrapped = true

local yesBtn = Instance.new("TextButton", promptFrame)
yesBtn.Size = UDim2.new(0.45, 0, 0, 40)
yesBtn.Position = UDim2.new(0.05, 0, 1, -52)
yesBtn.BackgroundColor3 = Color3.fromRGB(0, 70, 130)
yesBtn.BackgroundTransparency = 0.05
yesBtn.Text = "Yes"
yesBtn.TextColor3 = Color3.fromRGB(210, 230, 255)
yesBtn.Font = Enum.Font.GothamMedium
yesBtn.TextSize = 18
yesBtn.BorderSizePixel = 0
corner(yesBtn, 6)

local noBtn = Instance.new("TextButton", promptFrame)
noBtn.Size = UDim2.new(0.45, 0, 0, 40)
noBtn.Position = UDim2.new(0.5, 0, 1, -52)
noBtn.BackgroundColor3 = Color3.fromRGB(130, 30, 30)
noBtn.BackgroundTransparency = 0.05
noBtn.Text = "No"
noBtn.TextColor3 = Color3.fromRGB(255, 230, 230)
noBtn.Font = Enum.Font.GothamMedium
noBtn.TextSize = 18
noBtn.BorderSizePixel = 0
corner(noBtn, 6)

noBtn.MouseButton1Click:Connect(function()
	destroy(promptGui)
end)

-- Main UI creation on Yes
yesBtn.MouseButton1Click:Connect(function()
	destroy(promptGui)

	-- Main ScreenGui
	local gui = Instance.new("ScreenGui", pg)
	gui.Name = "Optihub"
	gui.DisplayOrder = 999999

	-- Main window
	local win = Instance.new("Frame", gui)
	win.Name = "Window"
	win.Size = UDim2.new(0, 580, 0, 380)
	win.Position = UDim2.new(0.5, -290, 0.5, -190)
	win.BackgroundColor3 = Color3.fromRGB(12, 18, 28)
	win.BackgroundTransparency = 0.18
	win.BorderSizePixel = 0
	win.Active = true
	corner(win, 8)

	-- Top bar (embedded visually; drag handled manually)
	local top = Instance.new("Frame", win)
	top.Name = "TopBar"
	top.Size = UDim2.new(1, 0, 0, 44)
	top.Position = UDim2.new(0, 0, 0, 0)
	top.BackgroundColor3 = Color3.fromRGB(18, 26, 40)
	top.BackgroundTransparency = 0.02
	top.BorderSizePixel = 0
	top.Active = true
	corner(top, 8)

	local title = Instance.new("TextLabel", top)
	title.Size = UDim2.new(1, -140, 1, 0)
	title.Position = UDim2.new(0, 16, 0, 0)
	title.BackgroundTransparency = 1
	title.Text = "Optihub"
	title.TextColor3 = Color3.fromRGB(210, 230, 255)
	title.TextSize = 22
	title.Font = Enum.Font.GothamMedium
	title.TextXAlignment = Enum.TextXAlignment.Left

	local close = Instance.new("TextButton", top)
	close.Size = UDim2.new(0, 40, 0, 28)
	close.Position = UDim2.new(1, -48, 0.5, -14)
	close.BackgroundColor3 = Color3.fromRGB(0, 70, 130)
	close.BackgroundTransparency = 0.02
	close.Text = "X"
	close.TextColor3 = Color3.fromRGB(210, 230, 255)
	close.TextSize = 20
	close.Font = Enum.Font.GothamMedium
	close.BorderSizePixel = 0
	corner(close, 6)

	local min = Instance.new("TextButton", top)
	min.Size = UDim2.new(0, 40, 0, 28)
	min.Position = UDim2.new(1, -92, 0.5, -14)
	min.BackgroundColor3 = Color3.fromRGB(0, 70, 130)
	min.BackgroundTransparency = 0.02
	min.Text = "-"
	min.TextColor3 = Color3.fromRGB(210, 230, 255)
	min.TextSize = 26
	min.Font = Enum.Font.GothamMedium
	min.BorderSizePixel = 0
	corner(min, 6)

	-- Body
	local body = Instance.new("Frame", win)
	body.Size = UDim2.new(1, 0, 1, -44)
	body.Position = UDim2.new(0, 0, 0, 44)
	body.BackgroundTransparency = 1

	-- Tabs area
	local tabHolder = Instance.new("Frame", body)
	tabHolder.Size = UDim2.new(0, 160, 1, -30)
	tabHolder.Position = UDim2.new(0, 15, 0, 15)
	tabHolder.BackgroundColor3 = Color3.fromRGB(18, 24, 38)
	tabHolder.BackgroundTransparency = 0.08
	tabHolder.BorderSizePixel = 0
	corner(tabHolder, 6)

	local tabScroll = Instance.new("ScrollingFrame", tabHolder)
	tabScroll.Size = UDim2.new(1, 0, 1, 0)
	tabScroll.CanvasSize = UDim2.new(0, 0, 0, 0)
	tabScroll.ScrollBarThickness = 4
	tabScroll.BackgroundTransparency = 1

	local tabList = Instance.new("UIListLayout", tabScroll)
	tabList.Padding = UDim.new(0, 10)
	tabList.FillDirection = Enum.FillDirection.Vertical
	tabList.HorizontalAlignment = Enum.HorizontalAlignment.Center
	tabList.SortOrder = Enum.SortOrder.LayoutOrder

	local pages = Instance.new("Frame", body)
	pages.Size = UDim2.new(1, -200, 1, -30)
	pages.Position = UDim2.new(0, 190, 0, 15)
	pages.BackgroundTransparency = 1

	local Tabs = {}
	local currentPage = nil

	local function updateScroll()
		tabScroll.CanvasSize = UDim2.new(0, 0, 0, tabList.AbsoluteContentSize.Y + 10)
	end
	tabList:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(updateScroll)

	-- Confirmation popup with full-screen blur
	local function confirmRun(callback)
		-- Add blur
		local blur = Instance.new("BlurEffect")
		blur.Name = "OptihubBlur"
		blur.Size = 18
		blur.Parent = Lighting

		-- Modal GUI
		local modal = Instance.new("ScreenGui", pg)
		modal.DisplayOrder = 9999999
		modal.Name = "OptihubConfirm"

		local frame = Instance.new("Frame", modal)
		frame.Size = UDim2.new(0, 360, 0, 180)
		frame.Position = UDim2.new(0.5, -180, 0.5, -90)
		frame.BackgroundColor3 = Color3.fromRGB(15, 20, 30)
		frame.BackgroundTransparency = 0.05
		frame.BorderSizePixel = 0
		corner(frame, 8)

		local label = Instance.new("TextLabel", frame)
		label.Size = UDim2.new(1, -24, 0, 80)
		label.Position = UDim2.new(0, 12, 0, 12)
		label.BackgroundTransparency = 1
		label.Text = "Are you sure you want to run this script?"
		label.TextColor3 = Color3.fromRGB(210, 230, 255)
		label.TextSize = 20
		label.Font = Enum.Font.GothamMedium
		label.TextWrapped = true

		local yes = Instance.new("TextButton", frame)
		yes.Size = UDim2.new(0.45, 0, 0, 44)
		yes.Position = UDim2.new(0.05, 0, 1, -56)
		yes.BackgroundColor3 = Color3.fromRGB(0, 70, 130)
		yes.BackgroundTransparency = 0.05
		yes.Text = "Yes"
		yes.TextColor3 = Color3.fromRGB(210, 230, 255)
		yes.Font = Enum.Font.GothamMedium
		yes.TextSize = 18
		yes.BorderSizePixel = 0
		corner(yes, 6)

		local no = Instance.new("TextButton", frame)
		no.Size = UDim2.new(0.45, 0, 0, 44)
		no.Position = UDim2.new(0.5, 0, 1, -56)
		no.BackgroundColor3 = Color3.fromRGB(130, 30, 30)
		no.BackgroundTransparency = 0.05
		no.Text = "No"
		no.TextColor3 = Color3.fromRGB(255, 230, 230)
		no.Font = Enum.Font.GothamMedium
		no.TextSize = 18
		no.BorderSizePixel = 0
		corner(no, 6)

		yes.MouseButton1Click:Connect(function()
			destroy(modal)
			if blur and blur.Parent then blur:Destroy() end
			pcall(callback)
		end)

		no.MouseButton1Click:Connect(function()
			destroy(modal)
			if blur and blur.Parent then blur:Destroy() end
		end)
	end

	-- Create script button
	local function createScriptButton(page, name, code)
		local btn = Instance.new("TextButton", page)
		btn.Size = UDim2.new(0, 200, 0, 36)
		btn.BackgroundColor3 = Color3.fromRGB(22, 32, 52)
		btn.BackgroundTransparency = 0.08
		btn.Text = name
		btn.TextColor3 = Color3.fromRGB(200, 220, 255)
		btn.TextSize = 18
		btn.Font = Enum.Font.GothamMedium
		btn.BorderSizePixel = 0
		corner(btn, 6)

		btn.MouseButton1Click:Connect(function()
			confirmRun(function()
				-- run the script safely
				pcall(function()
					loadstring(game:HttpGet(code))()
				end)
			end)
		end)
	end

	-- Page creator
	local function createPage(scripts)
		local page = Instance.new("ScrollingFrame", pages)
		page.Size = UDim2.new(1, 0, 1, 0)
		page.CanvasSize = UDim2.new(0, 0, 0, 0)
		page.ScrollBarThickness = 4
		page.BackgroundTransparency = 1
		page.Visible = false

		local layout = Instance.new("UIListLayout", page)
		layout.Padding = UDim.new(0, 12)
		layout.FillDirection = Enum.FillDirection.Vertical
		layout.HorizontalAlignment = Enum.HorizontalAlignment.Left
		layout.SortOrder = Enum.SortOrder.LayoutOrder

		layout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
			page.CanvasSize = UDim2.new(0, 0, 0, layout.AbsoluteContentSize.Y + 10)
		end)

		for _, info in ipairs(scripts) do
			createScriptButton(page, info.Name, info.Code)
		end

		return page
	end

	-- Tab creator
	local function createTab(name, scripts)
		local tabFrame = Instance.new("Frame", tabScroll)
		tabFrame.Size = UDim2.new(1, -20, 0, 36)
		tabFrame.BackgroundTransparency = 1

		local tabButton = Instance.new("TextButton", tabFrame)
		tabButton.Size = UDim2.new(1, 0, 1, 0)
		tabButton.BackgroundColor3 = Color3.fromRGB(22, 32, 52)
		tabButton.BackgroundTransparency = 0.08
		tabButton.Text = name
		tabButton.TextColor3 = Color3.fromRGB(200, 220, 255)
		tabButton.TextSize = 18
		tabButton.Font = Enum.Font.GothamMedium
		tabButton.BorderSizePixel = 0
		corner(tabButton, 6)

		local page = createPage(scripts)
		Tabs[tabFrame] = {Button = tabButton, Page = page}

		tabButton.MouseButton1Click:Connect(function()
			for _, v in pairs(Tabs) do
				v.Page.Visible = false
			end
			page.Visible = true
			currentPage = page
		end)

		updateScroll()

		if not currentPage then
			page.Visible = true
			currentPage = page
		end
	end

	-- Create General tab with the three scripts
	createTab("General", {
		{Name = "Chat Commander", Code = "https://pastebin.com/raw/WLP5Ptst"},
		{Name = "Dophin Truss", Code = "https://pastebin.com/raw/5qekNbE7"},
		{Name = "Moonshine Shaders", Code = "https://pastebin.com/raw/dNFaqmuj"},
	})

	-- Example other tabs (placeholders)
	createTab("Tab 2", {
		{Name = "Script X", Code = "https://pastebin.com/raw/XXXXXXXX"},
	})
	createTab("Tab 3", {
		{Name = "Script 1", Code = "https://pastebin.com/raw/YYYYYYYY"},
	})

	-- Minimize logic
	local minimized = false
	local miniBtn = nil
	min.MouseButton1Click:Connect(function()
		if minimized then
			minimized = false
			destroy(miniBtn)
			win.Visible = true
		else
			minimized = true
			win.Visible = false
			miniBtn = Instance.new("TextButton", gui)
			miniBtn.Size = UDim2.new(0, 150, 0, 40)
			miniBtn.Position = UDim2.new(0.5, -75, 0.1, 0)
			miniBtn.BackgroundColor3 = Color3.fromRGB(0, 70, 130)
			miniBtn.BackgroundTransparency = 0.05
			miniBtn.Text = "Optihub"
			miniBtn.TextColor3 = Color3.fromRGB(210, 230, 255)
			miniBtn.TextSize = 20
			miniBtn.Font = Enum.Font.GothamMedium
			miniBtn.BorderSizePixel = 0
			miniBtn.Active = true
			miniBtn.Draggable = true
			corner(miniBtn, 6)

			miniBtn.MouseButton1Click:Connect(function()
				minimized = false
				destroy(miniBtn)
				win.Visible = true
			end)
		end
	end)

	close.MouseButton1Click:Connect(function()
		destroy(gui)
	end)

	-- Dragging: top bar drags the entire window (manual)
	local dragging = false
	local dragStart = Vector2.new(0, 0)
	local startPos = UDim2.new(0, 0, 0, 0)

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

	top.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
			win.Position = UDim2.new(
				startPos.X.Scale,
				startPos.X.Offset + delta.X,
				startPos.Y.Scale,
				startPos.Y.Offset + delta.Y
			)
		end
	end)

	-- Off-screen detection (any part off-screen) and bottom restore bar
	local viewportSize = workspace.CurrentCamera and workspace.CurrentCamera.ViewportSize or Vector2.new(1920, 1080)
	local bottomBar = nil

	local function isAnyPartOffscreen()
		-- Use AbsolutePosition and AbsoluteSize for accurate pixel checks
		local pos = win.AbsolutePosition
		local size = win.AbsoluteSize
		local left = pos.X
		local topY = pos.Y
		local right = pos.X + size.X
		local bottom = pos.Y + size.Y

		viewportSize = workspace.CurrentCamera and workspace.CurrentCamera.ViewportSize or viewportSize

		if left < 0 or topY < 0 or right > viewportSize.X or bottom > viewportSize.Y then
			return true
		end
		return false
	end

	local function showBottomBar()
		if bottomBar and bottomBar.Parent then return end
		bottomBar = Instance.new("ScreenGui", pg)
		bottomBar.Name = "OptihubRestore"
		bottomBar.DisplayOrder = 9999998

		local bar = Instance.new("TextButton", bottomBar)
		bar.Size = UDim2.new(1, 0, 0, 28)
		bar.Position = UDim2.new(0, 0, 1, -28)
		bar.BackgroundColor3 = Color3.fromRGB(10, 14, 20)
		bar.BackgroundTransparency = 0.05
		bar.Text = "Optihub"
		bar.TextColor3 = Color3.fromRGB(210, 230, 255)
		bar.Font = Enum.Font.GothamMedium
		bar.TextSize = 16
		bar.BorderSizePixel = 0

		bar.MouseButton1Click:Connect(function()
			-- Restore to center of screen
			win.Position = UDim2.new(0.5, -win.AbsoluteSize.X/2, 0.5, -win.AbsoluteSize.Y/2)
			destroy(bottomBar)
			bottomBar = nil
		end)
	end

	local function hideBottomBar()
		if bottomBar then
			destroy(bottomBar)
			bottomBar = nil
		end
	end

	-- Continuous check (lightweight)
	local checkConn
	checkConn = RunService.RenderStepped:Connect(function()
		-- ensure AbsoluteSize/Position are up-to-date
		if isAnyPartOffscreen() then
			if not bottomBar then
				showBottomBar()
			end
		else
			if bottomBar then
				hideBottomBar()
			end
		end
	end)

	-- Clean up when GUI destroyed
	gui.AncestryChanged:Connect(function()
		if not gui:IsDescendantOf(game) then
			if checkConn then checkConn:Disconnect() end
			if bottomBar then destroy(bottomBar) end
			local b = Lighting:FindFirstChild("OptihubBlur")
			if b then b:Destroy() end
		end
	end)
end)

Features & Information

a hub thingy idk

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts