From 809a4ef749cc0f4ddeb0c5f21de8e450b8815915 Mon Sep 17 00:00:00 2001
From: Apapapa <srf7330@gmail.com>
Date: Wed, 19 Feb 2025 17:59:04 +0000
Subject: [PATCH] Delete Library/testing.lua

---
 Library/testing.lua | 391 --------------------------------------------
 1 file changed, 391 deletions(-)
 delete mode 100644 Library/testing.lua

diff --git a/Library/testing.lua b/Library/testing.lua
deleted file mode 100644
index 9e30af5..0000000
--- a/Library/testing.lua
+++ /dev/null
@@ -1,391 +0,0 @@
-local TweenService = game:GetService("TweenService")
-local UserInputService = game:GetService("UserInputService")
-local RunService = game:GetService("RunService")
-local HttpService = game:GetService("HttpService")
-local Players = game:GetService("Players")
-local Stats = game:GetService("Stats")
-
-local JustHub = {}
-
-JustHub.Themes = {
-	Darker = {
-		["Color Hub 1"] = ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.fromRGB(25,25,25)), ColorSequenceKeypoint.new(0.5, Color3.fromRGB(32,32,32)), ColorSequenceKeypoint.new(1, Color3.fromRGB(25,25,25))}),
-		["Color Hub 2"] = Color3.fromRGB(30,30,30),
-		["Color Stroke"] = Color3.fromRGB(40,40,40),
-		["Color Theme"] = Color3.fromRGB(88,101,242),
-		["Color Text"] = Color3.fromRGB(243,243,243),
-		["Color Dark Text"] = Color3.fromRGB(180,180,180)
-	},
-	Dark = {
-		["Color Hub 1"] = ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.fromRGB(40,40,40)), ColorSequenceKeypoint.new(0.5, Color3.fromRGB(47,47,47)), ColorSequenceKeypoint.new(1, Color3.fromRGB(40,40,40))}),
-		["Color Hub 2"] = Color3.fromRGB(45,45,45),
-		["Color Stroke"] = Color3.fromRGB(65,65,65),
-		["Color Theme"] = Color3.fromRGB(65,150,255),
-		["Color Text"] = Color3.fromRGB(245,245,245),
-		["Color Dark Text"] = Color3.fromRGB(190,190,190)
-	},
-	Purple = {
-		["Color Hub 1"] = ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.fromRGB(28,25,30)), ColorSequenceKeypoint.new(0.5, Color3.fromRGB(32,32,32)), ColorSequenceKeypoint.new(1, Color3.fromRGB(28,25,30))}),
-		["Color Hub 2"] = Color3.fromRGB(30,30,30),
-		["Color Stroke"] = Color3.fromRGB(40,40,40),
-		["Color Theme"] = Color3.fromRGB(150,0,255),
-		["Color Text"] = Color3.fromRGB(240,240,240),
-		["Color Dark Text"] = Color3.fromRGB(180,180,180)
-	}
-}
-
-JustHub.Info = {Version = "1.1.0"}
-JustHub.Save = {UISize = {550,380}, TabSize = 160, Theme = "Darker"}
-
-local function createInstance(className, properties, parent)
-	local inst = Instance.new(className)
-	if properties then
-		for k,v in pairs(properties) do inst[k]=v end
-	end
-	if parent then inst.Parent = parent end
-	return inst
-end
-
-local function tweenProperty(object, propertyTable, duration)
-	local ti = TweenInfo.new(duration, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
-	local tw = TweenService:Create(object, ti, propertyTable)
-	tw:Play()
-	return tw
-end
-
-local function getCurrentTheme(themeChoice)
-	if type(themeChoice) == "table" then
-		return themeChoice
-	else
-		return JustHub.Themes[themeChoice or JustHub.Save.Theme]
-	end
-end
-
-local function clampPosition(pos, screenSize)
-	local x = math.clamp(pos.X.Offset, 0, screenSize.X)
-	local y = math.clamp(pos.Y.Offset, 0, screenSize.Y)
-	return UDim2.new(pos.X.Scale, x, pos.Y.Scale, y)
-end
-
-function JustHub:CreateWindow(options)
-	options = options or {}
-	local windowName = options.Name or "JustHub Window"
-	local theme = getCurrentTheme(options.Theme)
-	local guid = HttpService:GenerateGUID(false)
-	local finalTitle = windowName .. " [" .. guid .. "]"
-	local player = Players.LocalPlayer
-	local playerGui = player:WaitForChild("PlayerGui")
-	local screenGui = createInstance("ScreenGui", {Name="JustHub", ResetOnSpawn=false}, playerGui)
-	local uiWidth, uiHeight = JustHub.Save.UISize[1], JustHub.Save.UISize[2]
-	local mainFrame = createInstance("Frame", {Name="MainFrame", AnchorPoint=Vector2.new(0.5,0.5), Position=UDim2.new(0.5,0,-0.5,0), Size=UDim2.new(0,uiWidth,0,uiHeight), BackgroundColor3=theme["Color Hub 2"]}, screenGui)
-	createInstance("UICorner", {CornerRadius=UDim.new(0,12)}, mainFrame)
-	createInstance("UIStroke", {Color=theme["Color Stroke"], Thickness=2}, mainFrame)
-	createInstance("UIGradient", {Color=theme["Color Hub 1"]}, mainFrame)
-	local topBar = createInstance("Frame", {Name="TopBar", Size=UDim2.new(1,0,0,60), BackgroundColor3=theme["Color Hub 2"]}, mainFrame)
-	createInstance("UICorner", {CornerRadius=UDim.new(0,12)}, topBar)
-	local titleLabel = createInstance("TextLabel", {Name="TitleLabel", Size=UDim2.new(1,-120,1,0), Position=UDim2.new(0,10,0,0), BackgroundTransparency=1, Text=finalTitle, TextColor3=theme["Color Text"], Font=Enum.Font.GothamBold, TextSize=18, TextXAlignment=Enum.TextXAlignment.Left}, topBar)
-	local function createControlButton(name, txt, pos)
-		return createInstance("TextButton", {Name=name, Size=UDim2.new(0,40,0,40), Position=pos, BackgroundTransparency=1, Text=txt, TextColor3=theme["Color Theme"], Font=Enum.Font.GothamBold, TextSize=24}, topBar)
-	end
-	local hideButton = createControlButton("MinimizeButton", "–", UDim2.new(1,-110,0,10))
-	local maxButton = createControlButton("MaximizeButton", "□", UDim2.new(1,-70,0,10))
-	local closeButton = createControlButton("CloseButton", "✕", UDim2.new(1,-30,0,10))
-	local sidebarWidth = JustHub.Save.TabSize
-	local sidebar = createInstance("Frame", {Name="Sidebar", Size=UDim2.new(0,sidebarWidth,1,-60), Position=UDim2.new(0,0,0,60), BackgroundColor3=theme["Color Hub 2"]}, mainFrame)
-	createInstance("UICorner", {CornerRadius=UDim.new(0,10)}, sidebar)
-	createInstance("UIListLayout", {FillDirection=Enum.FillDirection.Vertical, Padding=UDim.new(0,10), HorizontalAlignment=Enum.HorizontalAlignment.Center, VerticalAlignment=Enum.VerticalAlignment.Top}, sidebar)
-	local contentContainer = createInstance("Frame", {Name="ContentContainer", Size=UDim2.new(1,-sidebarWidth,1,-60), Position=UDim2.new(0,sidebarWidth,0,60), BackgroundColor3=theme["Color Hub 2"]}, mainFrame)
-	createInstance("UICorner", {CornerRadius=UDim.new(0,10)}, contentContainer)
-	local scrollingFrame = createInstance("ScrollingFrame", {Size=UDim2.new(1,0,1,0), BackgroundTransparency=1, ScrollBarThickness=8, BorderSizePixel=0}, contentContainer)
-	createInstance("UIListLayout", {SortOrder=Enum.SortOrder.LayoutOrder, Padding=UDim.new(0,10)}, scrollingFrame)
-	local fpsLabel = createInstance("TextLabel", {Name="FPSLabel", Size=UDim2.new(0,100,0,20), Position=UDim2.new(1,-110,1,-30), BackgroundTransparency=1, TextColor3=theme["Color Text"], Font=Enum.Font.Gotham, TextSize=14, Text="FPS: Calculating..."}, mainFrame)
-	RunService.Heartbeat:Connect(function(delta)
-		local fps = math.floor(1/delta)
-		fpsLabel.Text = "FPS: " .. fps
-	end)
-	local ti = TweenInfo.new(0.5, Enum.EasingStyle.Back, Enum.EasingDirection.Out)
-	local tw = TweenService:Create(mainFrame, ti, {Position=UDim2.new(0.5,0,0.5,0)})
-	tw:Play()
-	closeButton.MouseButton1Click:Connect(function()
-		local tio = TweenInfo.new(0.5, Enum.EasingStyle.Back, Enum.EasingDirection.In)
-		local two = TweenService:Create(mainFrame, tio, {Position=UDim2.new(0.5,0,-0.5,0)})
-		two:Play()
-		two.Completed:Connect(function() screenGui:Destroy() end)
-	end)
-	local dragging = false; local dragStart, startPos
-	topBar.InputBegan:Connect(function(input)
-		if input.UserInputType==Enum.UserInputType.MouseButton1 or input.UserInputType==Enum.UserInputType.Touch then
-			dragging = true; dragStart = input.Position; startPos = mainFrame.Position
-		end
-	end)
-	topBar.InputChanged:Connect(function(input)
-		if dragging and (input.UserInputType==Enum.UserInputType.MouseMovement or input.UserInputType==Enum.UserInputType.Touch) then
-			local delta = input.Position - dragStart
-			local newPos = UDim2.new(startPos.X.Scale, startPos.X.Offset+delta.X, startPos.Y.Scale, startPos.Y.Offset+delta.Y)
-			newPos = clampPosition(newPos, Vector2.new(screenGui.AbsoluteSize.X, screenGui.AbsoluteSize.Y))
-			mainFrame.Position = newPos
-		end
-	end)
-	UserInputService.InputEnded:Connect(function(input)
-		if input.UserInputType==Enum.UserInputType.MouseButton1 or input.UserInputType==Enum.UserInputType.Touch then dragging = false end
-	end)
-	print("JustHub Window dibuat.")
-	local windowObject = {ScreenGui=screenGui, MainFrame=mainFrame, TopBar=topBar, Sidebar=sidebar, ContentContainer=contentContainer, Tabs={}}
-	function windowObject:addTab(tabName)
-		tabName = tabName or "Tab"
-		local tabButton = createInstance("TextButton", {Name=tabName.."Button", Text=tabName, Size=UDim2.new(1,-10,0,30), BackgroundColor3=theme["Color Stroke"], TextColor3=theme["Color Text"], Font=Enum.Font.GothamBold, TextSize=16}, self.Sidebar)
-		local tabContent = createInstance("Frame", {Name=tabName.."Content", Size=UDim2.new(1,0,1,0), BackgroundTransparency=1, Visible=false}, scrollingFrame)
-		local tabObject = {Name=tabName, Button=tabButton, Content=tabContent, Sections={}}
-		table.insert(self.Tabs, tabObject)
-		tabButton.MouseButton1Click:Connect(function()
-			for _, t in ipairs(self.Tabs) do t.Content.Visible = false end
-			tabObject.Content.Visible = true
-		end)
-		if #self.Tabs==1 then tabObject.Content.Visible = true end
-		function tabObject:addSection(sectionName, sectionHeight)
-			sectionName = sectionName or "Section"
-			sectionHeight = sectionHeight or 100
-			local sectionFrame = createInstance("Frame", {Name=sectionName, Size=UDim2.new(1,-20,0,sectionHeight), BackgroundColor3=theme["Color Hub 2"], BackgroundTransparency=0.2}, self.Content)
-			createInstance("UICorner", {CornerRadius=UDim.new(0,8)}, sectionFrame)
-			local sectionTitle = createInstance("TextLabel", {Name="SectionTitle", Text=sectionName, Size=UDim2.new(1,0,0,30), BackgroundTransparency=1, TextColor3=theme["Color Text"], Font=Enum.Font.GothamBold, TextSize=16, TextXAlignment=Enum.TextXAlignment.Left}, sectionFrame)
-			local sectionContent = createInstance("Frame", {Name="SectionContent", Size=UDim2.new(1,0,1,-30), Position=UDim2.new(0,0,0,30), BackgroundTransparency=1}, sectionFrame)
-			createInstance("UIListLayout", {FillDirection=Enum.FillDirection.Vertical, Padding=UDim.new(0,5), SortOrder=Enum.SortOrder.LayoutOrder}, sectionContent)
-			local sectionObj = {Frame=sectionFrame, Title=sectionTitle, Content=sectionContent}
-			table.insert(self.Sections, sectionObj)
-			function sectionObj:addMenu(menuName)
-				menuName = menuName or "Menu"
-				local menuFrame = createInstance("Frame", {Name=menuName, Size=UDim2.new(1,0,0,40), BackgroundColor3=theme["Color Stroke"], BackgroundTransparency=0.3}, self.Content)
-				createInstance("UICorner", {CornerRadius=UDim.new(0,6)}, menuFrame)
-				createInstance("TextLabel", {Name="MenuLabel", Text=menuName, Size=UDim2.new(1,0,1,0), BackgroundTransparency=1, TextColor3=theme["Color Text"], Font=Enum.Font.GothamBold, TextSize=16}, menuFrame)
-				return menuFrame
-			end
-			function sectionObj:addToggle(options)
-				options = options or {}
-				local toggleTitle = options.Name or "Toggle"
-				local default = options.Default or false
-				local callback = options.Callback or function(state) end
-				local toggleFrame = createInstance("Frame", {Size = UDim2.new(1, -10, 0, 20), BackgroundColor3 = Color3.fromRGB(40,40,40)}, self.Content)
-				createInstance("UICorner", {CornerRadius = UDim.new(0,20)}, toggleFrame)
-				local label = createInstance("TextLabel", {Size = UDim2.new(0.4, -5, 1, 0), Position = UDim2.new(0,5,0,0), BackgroundTransparency = 1, Text = toggleTitle, TextColor3 = theme["Color Text"], Font = Enum.Font.Gotham, TextSize = 12}, toggleFrame)
-				local toggleContainer = createInstance("Frame", {Size = UDim2.new(0.6, -5, 1, 0), Position = UDim2.new(0.4,5,0,0), BackgroundTransparency = 1}, toggleFrame)
-				local toggleSwitch = createInstance("Frame", {Size = UDim2.new(1,0,1,0), BackgroundColor3 = default and Color3.fromRGB(0,200,0) or Color3.fromRGB(100,100,100), BorderSizePixel = 0}, toggleContainer)
-				createInstance("UICorner", {CornerRadius = UDim.new(0,15)}, toggleSwitch)
-				local toggleCircle = createInstance("Frame", {Size = UDim2.new(0,13,0,13), Position = default and UDim2.new(0,20,0.5,-6.5) or UDim2.new(0,2,0.5,-6.5), BackgroundColor3 = Color3.new(1,1,1), BorderSizePixel = 0}, toggleSwitch)
-				createInstance("UICorner", {CornerRadius = UDim.new(1,0)}, toggleCircle)
-				local CheckToggle = default
-				if default then callback(true) else callback(false) end
-				toggleSwitch.MouseEnter:Connect(function()
-					tweenProperty(label, {TextTransparency = 0.5}, 0.15)
-					tweenProperty(toggleSwitch, {BackgroundColor3 = Color3.fromRGB(30,30,30)}, 0.15)
-				end)
-				toggleSwitch.MouseLeave:Connect(function()
-					tweenProperty(label, {TextTransparency = 0}, 0.15)
-					tweenProperty(toggleSwitch, {BackgroundColor3 = CheckToggle and Color3.fromRGB(0,200,0) or Color3.fromRGB(100,100,100)}, 0.15)
-				end)
-				toggleSwitch.MouseButton1Click:Connect(function()
-					if not CheckToggle then
-						tweenProperty(toggleCircle, {Position = UDim2.new(0,20,0.5,-6.5)}, 0.3)
-						tweenProperty(toggleSwitch, {BackgroundColor3 = Color3.fromRGB(0,200,0)}, 0.3)
-						tweenProperty(label, {TextColor3 = Color3.fromRGB(0,255,0)}, 0.3)
-					else
-						tweenProperty(toggleCircle, {Position = UDim2.new(0,2,0.5,-6.5)}, 0.3)
-						tweenProperty(toggleSwitch, {BackgroundColor3 = Color3.fromRGB(100,100,100)}, 0.3)
-						tweenProperty(label, {TextColor3 = Color3.fromRGB(255,255,255)}, 0.3)
-					end
-					CheckToggle = not CheckToggle
-					callback(CheckToggle)
-				end)
-				return toggleFrame
-			end
-			function sectionObj:addSlider(options)
-				options = options or {}
-				local sliderName = options.Name or "Slider"
-				local min = options.Min or 0
-				local max = options.Max or 100
-				local default = options.Default or min
-				local callback = options.Callback or function(value) end
-				local sliderFrame = createInstance("Frame", {Name = sliderName.."Slider", Size = UDim2.new(1,0,0,25), BackgroundTransparency = 1}, self.Content)
-				local label = createInstance("TextLabel", {Name = "Label", Text = sliderName, Size = UDim2.new(0.4,0,1,0), Position = UDim2.new(0,0,0,0), BackgroundTransparency = 1, TextColor3 = theme["Color Text"], Font = Enum.Font.Gotham, TextSize = 8}, sliderFrame)
-				local sliderContainer = createInstance("Frame", {Name = "SliderContainer", Size = UDim2.new(0.6,0,1,0), Position = UDim2.new(0.4,0,0,0), BackgroundTransparency = 1}, sliderFrame)
-				local sliderBar = createInstance("Frame", {Name = "SliderBar", Size = UDim2.new(1,-20,0,4), Position = UDim2.new(0,10,0.5,-2), BackgroundColor3 = theme["Color Stroke"]}, sliderContainer)
-				createInstance("UICorner", {CornerRadius = UDim.new(0,4)}, sliderBar)
-				local sliderHandle = createInstance("Frame", {Name = "SliderHandle", Size = UDim2.new(0,12,0,12), BackgroundColor3 = theme["Color Theme"], Position = UDim2.new((default - min)/(max - min), -6, 0.5,-6)}, sliderBar)
-				createInstance("UICorner", {CornerRadius = UDim.new(0,4)}, sliderHandle)
-				local dragging = false
-				sliderHandle.InputBegan:Connect(function(input)
-					if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true end
-				end)
-				sliderHandle.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 barAbsPos = sliderBar.AbsolutePosition.X
-						local barWidth = sliderBar.AbsoluteSize.X
-						local relativePos = math.clamp((input.Position.X - barAbsPos) / barWidth, 0, 1)
-						sliderHandle.Position = UDim2.new(relativePos, -6, sliderHandle.Position.Y.Scale, sliderHandle.Position.Y.Offset)
-						local value = min + relativePos*(max - min)
-						pcall(callback, value)
-					end
-				end)
-				return sliderFrame
-			end
-			function sectionObj:addTextBox(options)
-				options = options or {}
-				local textBoxName = options.Name or "TextBox"
-				local defaultText = options.Default or ""
-				local callback = options.Callback or function(text) end
-				local textBoxFrame = createInstance("Frame", {Name = textBoxName.."TextBox", Size = UDim2.new(1,0,0,20), BackgroundTransparency = 1}, self.Content)
-				local label = createInstance("TextLabel", {Name = "Label", Text = textBoxName, Size = UDim2.new(0.4,0,1,0), Position = UDim2.new(0,0,0,0), BackgroundTransparency = 1, TextColor3 = theme["Color Text"], Font = Enum.Font.Gotham, TextSize = 8}, textBoxFrame)
-				local textbox = createInstance("TextBox", {Name = "Input", Text = defaultText, Size = UDim2.new(0.6,0,1,0), Position = UDim2.new(0.4,0,0,0), BackgroundColor3 = theme["Color Stroke"], TextColor3 = theme["Color Text"], Font = Enum.Font.Gotham, TextSize = 8}, textBoxFrame)
-				textbox.FocusLost:Connect(function(enterPressed)
-					pcall(callback, textbox.Text)
-				end)
-				return textBoxFrame
-			end
-			function sectionObj:addDropdown(options)
-				options = options or {}
-				local dropdownTile = options.Name or "Dropdown"
-				local default = options.Default or ""
-				local list = options.Items or {}
-				local callback = options.Callback or function(selected) end
-				local row = createInstance("Frame", {Size = UDim2.new(1, -10, 0, 20), BackgroundColor3 = theme["Color Stroke"]}, self.Content)
-				createInstance("UICorner", {CornerRadius = UDim.new(0,20)}, row)
-				local label = createInstance("TextLabel", {Size = UDim2.new(0.4, -5, 1, 0), Position = UDim2.new(0,5,0,0), BackgroundTransparency = 1, Text = dropdownTile, TextColor3 = theme["Color Text"], Font = Enum.Font.Gotham, TextSize = 12}, row)
-				local dropdownButton = createInstance("TextButton", {Size = UDim2.new(0.6, -5, 1, 0), Position = UDim2.new(0.4,5,0,0), Text = (default ~= "" and (default .. " ▼") or "Select ▼"), BackgroundColor3 = theme["Color Theme"], Font = Enum.Font.GothamBold, TextSize = 12}, row)
-				local scrollDown = createInstance("Frame", {Size = UDim2.new(1, -10, 0, 0), BackgroundColor3 = Color3.fromRGB(40,40,40), BorderSizePixel = 0, ClipsDescendants = true}, self.Content)
-				local listLayout = createInstance("UIListLayout", {Padding = UDim.new(0,3), HorizontalAlignment = Enum.HorizontalAlignment.Center, SortOrder = Enum.SortOrder.LayoutOrder}, scrollDown)
-				local dropdown_toggle = false
-				dropdownButton.MouseButton1Click:Connect(function()
-					if dropdown_toggle then
-						tweenProperty(scrollDown, {Size = UDim2.new(1, -10, 0, 0)}, 0.15)
-						tweenProperty(dropdownButton, {TextColor3 = theme["Color Text"]}, 0.15)
-					else
-						local targetHeight = listLayout.AbsoluteContentSize.Y + 5
-						tweenProperty(scrollDown, {Size = UDim2.new(1, -10, 0, targetHeight)}, 0.15)
-						tweenProperty(dropdownButton, {TextColor3 = Color3.fromRGB(0,255,0)}, 0.15)
-					end
-					dropdown_toggle = not dropdown_toggle
-				end)
-				for _, option in ipairs(list) do
-					local btn = createInstance("TextButton", {Size = UDim2.new(1, 0, 0, 20), Text = option, TextColor3 = Color3.fromRGB(255,255,255), BackgroundTransparency = 1, Font = Enum.Font.Gotham, TextSize = 12}, scrollDown)
-					btn.MouseButton1Click:Connect(function()
-						label.Text = dropdownTile .. " - " .. option
-						pcall(callback, option)
-						tweenProperty(scrollDown, {Size = UDim2.new(1, -10, 0, 0)}, 0.15)
-						dropdown_toggle = false
-					end)
-				end
-				return row
-			end
-			function sectionObj:addButton(options)
-				options = options or {}
-				local labelText = options.Name or "Button"
-				local buttonText = options.ButtonText or "Click"
-				local callback = options.Callback or function() end
-				local container = createInstance("Frame", {Size = UDim2.new(1,0,0,30), BackgroundTransparency = 1}, self.Content)
-				local label = createInstance("TextLabel", {Text = labelText, Size = UDim2.new(0.4,0,1,0), Position = UDim2.new(0,0,0,0), BackgroundTransparency = 1, TextColor3 = theme["Color Text"], Font = Enum.Font.Gotham, TextSize = 8, TextXAlignment = Enum.TextXAlignment.Left}, container)
-				local button = createInstance("TextButton", {Text = buttonText, Size = UDim2.new(0.6,0,0.8,0), Position = UDim2.new(0.4,0,0.1,0), BackgroundColor3 = theme["Color Theme"], TextColor3 = theme["Color Text"], Font = Enum.Font.GothamBold, TextSize = 8}, container)
-				createInstance("UICorner", {CornerRadius = UDim.new(0,6)}, button)
-				button.MouseButton1Click:Connect(function() pcall(callback) end)
-				return container
-			end
-			return sectionObj
-		end
-		return tabObject
-	end
-	return windowObject
-end
-
-function JustHub:ShowLoadingScreen(duration, callback)
-	duration = duration or 3
-	callback = callback or function() end
-	local player = Players.LocalPlayer
-	local playerGui = player:WaitForChild("PlayerGui")
-	local loadingGui = createInstance("ScreenGui", {Name="LoadingScreen", ResetOnSpawn=false, IgnoreGuiInset=true}, playerGui)
-	local background = createInstance("Frame", {Size=UDim2.new(1,0,1,0), Position=UDim2.new(0,0,0,0), BackgroundColor3=Color3.new(0,0,0), BackgroundTransparency=0.5, BorderSizePixel=0}, loadingGui)
-	local titleLabel = createInstance("TextLabel", {Text="JustHub Library", Font=Enum.Font.SourceSansSemibold, TextSize=20, TextColor3=getCurrentTheme(JustHub.Save.Theme)["Color Text"], BackgroundTransparency=1, Size=UDim2.new(0,200,0,50), AnchorPoint=Vector2.new(0.5,0.5), Position=UDim2.new(0.5,0,0.5,-50)}, loadingGui)
-	local progressBarContainer = createInstance("Frame", {Size=UDim2.new(0.5,0,0,20), Position=UDim2.new(0.5,0,0.5,50), AnchorPoint=Vector2.new(0.5,0.5), BackgroundColor3=getCurrentTheme(JustHub.Save.Theme)["Color Stroke"], BackgroundTransparency=0.5, BorderSizePixel=0}, loadingGui)
-	createInstance("UICorner", {CornerRadius=UDim.new(0,4)}, progressBarContainer)
-	local progressBarFill = createInstance("Frame", {Size=UDim2.new(0,0,1,0), BackgroundColor3=getCurrentTheme(JustHub.Save.Theme)["Color Theme"], BorderSizePixel=0}, progressBarContainer)
-	createInstance("UICorner", {CornerRadius=UDim.new(0,4)}, progressBarFill)
-	local ti = TweenInfo.new(duration, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
-	local tw = TweenService:Create(progressBarFill, ti, {Size=UDim2.new(1,0,1,0)})
-	tw:Play()
-	spawn(function()
-		while tw.PlaybackState==Enum.PlaybackState.Playing do
-			tweenProperty(titleLabel, {TextTransparency=0.5}, 0.5)
-			wait(0.5)
-			tweenProperty(titleLabel, {TextTransparency=0}, 0.5)
-			wait(0.5)
-		end
-	end)
-	tw.Completed:Connect(function() loadingGui:Destroy() callback() end)
-end
-
-function JustHub:SaveConfig(config)
-	if writefile then
-		local json = HttpService:JSONEncode(config)
-		writefile("JustHub_Config.json", json)
-		print("Config saved!")
-	else
-		warn("Saving config is not supported in this environment.")
-	end
-end
-
-function JustHub:LoadConfig()
-	if readfile then
-		local data = readfile("JustHub_Config.json")
-		local config = HttpService:JSONDecode(data)
-		print("Config loaded!")
-		return config
-	else
-		warn("Loading config is not supported in this environment.")
-		return {}
-	end
-end
-
-function JustHub:ToggleUIVisibility()
-	if self.ScreenGui and self.ScreenGui.Parent then
-		self.ScreenGui.Enabled = not self.ScreenGui.Enabled
-	end
-end
-
-UserInputService.InputBegan:Connect(function(input, gameProcessed)
-	if not gameProcessed and input.KeyCode==Enum.KeyCode.RightShift then
-		JustHub:ToggleUIVisibility()
-	end
-end)
-
-function JustHub:Notify(options)
-	options = options or {}
-	local title = options.Title or ""
-	local message = options.Message or ""
-	local duration = options.Duration or 3
-	local theme = getCurrentTheme(options.Theme) or JustHub.Themes[JustHub.Save.Theme]
-	local player = Players.LocalPlayer
-	local playerGui = player:WaitForChild("PlayerGui")
-	local notificationContainer = playerGui:FindFirstChild("NotificationContainer")
-	if not notificationContainer then
-		notificationContainer = createInstance("ScreenGui", {Name="NotificationContainer", ResetOnSpawn=false}, playerGui)
-		local containerFrame = createInstance("Frame", {Name="Container", AnchorPoint=Vector2.new(1,1), Position=UDim2.new(1,-10,1,-10), Size=UDim2.new(0,300,0,0), BackgroundTransparency=1}, notificationContainer)
-		createInstance("UIListLayout", {SortOrder=Enum.SortOrder.LayoutOrder, Padding=UDim.new(0,10), VerticalAlignment=Enum.VerticalAlignment.Bottom}, containerFrame)
-		notificationContainer.Container = containerFrame
-	end
-	local containerFrame = notificationContainer.Container
-	local notificationFrame = createInstance("Frame", {Name="Notification", Size=UDim2.new(1,0,0,80), BackgroundColor3=theme["Color Hub 2"], BackgroundTransparency=1}, containerFrame)
-	createInstance("UICorner", {CornerRadius=UDim.new(0,8)}, notificationFrame)
-	createInstance("UIStroke", {Color=theme["Color Stroke"], Thickness=1}, notificationFrame)
-	local titleLabel = createInstance("TextLabel", {Name="Title", Text=title, Size=UDim2.new(1,-10,0,20), Position=UDim2.new(0,5,0,5), BackgroundTransparency=1, TextColor3=theme["Color Text"], Font=Enum.Font.GothamBold, TextSize=16, TextXAlignment=Enum.TextXAlignment.Left}, notificationFrame)
-	local messageLabel = createInstance("TextLabel", {Name="Message", Text=message, Size=UDim2.new(1,-10,0,40), Position=UDim2.new(0,5,0,30), BackgroundTransparency=1, TextColor3=theme["Color Dark Text"], Font=Enum.Font.Gotham, TextSize=14, TextXAlignment=Enum.TextXAlignment.Left, TextWrapped=true}, notificationFrame)
-	tweenProperty(notificationFrame, {BackgroundTransparency=0}, 0.5)
-	tweenProperty(titleLabel, {TextTransparency=0}, 0.5)
-	tweenProperty(messageLabel, {TextTransparency=0}, 0.5)
-	delay(duration, function()
-		tweenProperty(notificationFrame, {BackgroundTransparency=1}, 0.5)
-		tweenProperty(titleLabel, {TextTransparency=1}, 0.5)
-		tweenProperty(messageLabel, {TextTransparency=1}, 0.5).Completed:Connect(function() notificationFrame:Destroy() end)
-	end)
-end
-
-return JustHub