-- [[ GEMINI PRIVATE SCRIPT HUB - 1000+ SCRIPT MANAGER ]] -- -- Features: Multi-Script List Viewer, File Saving, Execution via xpcall local CoreGui = game:GetService("CoreGui") local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "GeminiHubMassStorage" ScreenGui.ResetOnSpawn = false xpcall(function() ScreenGui.Parent = CoreGui end, function() ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") end) -- ========================================== -- OPEN BUTTON -- ========================================== local OpenBtn = Instance.new("TextButton") OpenBtn.Size = UDim2.new(0, 60, 0, 40) OpenBtn.Position = UDim2.new(0, 0, 0.5, -20) OpenBtn.BackgroundColor3 = Color3.fromRGB(0, 120, 215) OpenBtn.TextColor3 = Color3.fromRGB(255, 255, 255) OpenBtn.TextSize = 14 OpenBtn.Font = Enum.Font.GothamBold OpenBtn.Text = "Open" OpenBtn.Visible = false OpenBtn.Parent = ScreenGui local OpenCorner = Instance.new("UICorner") OpenCorner.CornerRadius = UDim.new(0, 5) OpenCorner.Parent = OpenBtn -- ========================================== -- MAIN HUB -- ========================================== local MainFrame = Instance.new("Frame") MainFrame.Size = UDim2.new(0, 750, 0, 450) MainFrame.Position = UDim2.new(0.5, -375, 0.5, -225) MainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) MainFrame.BorderSizePixel = 0 MainFrame.Active = true MainFrame.Draggable = true MainFrame.Parent = ScreenGui local MainCorner = Instance.new("UICorner") MainCorner.CornerRadius = UDim.new(0, 8) MainCorner.Parent = MainFrame local CloseBtn = Instance.new("TextButton") CloseBtn.Size = UDim2.new(0, 30, 0, 30) CloseBtn.Position = UDim2.new(0, 5, 0, 5) CloseBtn.BackgroundColor3 = Color3.fromRGB(200, 50, 50) CloseBtn.TextColor3 = Color3.fromRGB(255, 255, 255) CloseBtn.TextSize = 18 CloseBtn.Font = Enum.Font.GothamBold CloseBtn.Text = "X" CloseBtn.Parent = MainFrame local CloseCorner = Instance.new("UICorner") CloseCorner.CornerRadius = UDim.new(0, 5) CloseCorner.Parent = CloseBtn local MainTitle = Instance.new("TextLabel") MainTitle.Size = UDim2.new(1, 0, 0, 40) MainTitle.BackgroundTransparency = 1 MainTitle.TextColor3 = Color3.fromRGB(255, 255, 255) MainTitle.TextSize = 20 MainTitle.Font = Enum.Font.GothamBold MainTitle.Text = "Gemini Hub - 1000+ Script Manager" MainTitle.Parent = MainFrame -- ========================================== -- SCRIPT LIST -- ========================================== local ListContainer = Instance.new("ScrollingFrame") ListContainer.Size = UDim2.new(0, 220, 0, 330) ListContainer.Position = UDim2.new(0, 10, 0, 45) ListContainer.BackgroundColor3 = Color3.fromRGB(15, 15, 15) ListContainer.BorderSizePixel = 0 ListContainer.CanvasSize = UDim2.new(0, 0, 0, 0) ListContainer.AutomaticCanvasSize = Enum.AutomaticSize.Y ListContainer.Parent = MainFrame local ListLayout = Instance.new("UIListLayout") ListLayout.SortOrder = Enum.SortOrder.LayoutOrder ListLayout.Padding = UDim.new(0, 5) ListLayout.Parent = ListContainer -- ========================================== -- SCRIPT EDITOR -- ========================================== local ScriptBox = Instance.new("TextBox") ScriptBox.Size = UDim2.new(0, 490, 0, 330) ScriptBox.Position = UDim2.new(0, 240, 0, 45) ScriptBox.BackgroundColor3 = Color3.fromRGB(15, 15, 15) ScriptBox.TextColor3 = Color3.fromRGB(200, 200, 200) ScriptBox.TextSize = 14 ScriptBox.Font = Enum.Font.Code ScriptBox.TextXAlignment = Enum.TextXAlignment.Left ScriptBox.TextYAlignment = Enum.TextYAlignment.Top ScriptBox.ClearTextOnFocus = false ScriptBox.MultiLine = true ScriptBox.Text = "-- Select a script from the list or create a new one.\n" ScriptBox.Parent = MainFrame -- ========================================== -- NAME INPUT -- ========================================== local NameInput = Instance.new("TextBox") NameInput.Size = UDim2.new(0, 150, 0, 35) NameInput.Position = UDim2.new(0, 10, 0, 395) NameInput.BackgroundColor3 = Color3.fromRGB(40, 40, 40) NameInput.TextColor3 = Color3.fromRGB(255, 255, 255) NameInput.PlaceholderText = "Script Name..." NameInput.Text = "" NameInput.TextSize = 14 NameInput.Font = Enum.Font.Gotham NameInput.Parent = MainFrame -- ========================================== -- SAVE BUTTON -- ========================================== local SaveBtn = Instance.new("TextButton") SaveBtn.Size = UDim2.new(0, 100, 0, 35) SaveBtn.Position = UDim2.new(0, 175, 0, 395) SaveBtn.BackgroundColor3 = Color3.fromRGB(40, 160, 60) SaveBtn.TextColor3 = Color3.fromRGB(255, 255, 255) SaveBtn.TextSize = 14 SaveBtn.Font = Enum.Font.GothamBold SaveBtn.Text = "Save / Add" SaveBtn.Parent = MainFrame -- ========================================== -- DELETE BUTTON -- ========================================== local DeleteBtn = Instance.new("TextButton") DeleteBtn.Size = UDim2.new(0, 100, 0, 35) DeleteBtn.Position = UDim2.new(0, 285, 0, 395) DeleteBtn.BackgroundColor3 = Color3.fromRGB(200, 40, 40) DeleteBtn.TextColor3 = Color3.fromRGB(255, 255, 255) DeleteBtn.TextSize = 14 DeleteBtn.Font = Enum.Font.GothamBold DeleteBtn.Text = "Delete" DeleteBtn.Parent = MainFrame -- ========================================== -- EXECUTE BUTTON -- ========================================== local ExecuteBtn = Instance.new("TextButton") ExecuteBtn.Size = UDim2.new(0, 100, 0, 35) ExecuteBtn.Position = UDim2.new(0, 395, 0, 395) ExecuteBtn.BackgroundColor3 = Color3.fromRGB(0, 120, 215) ExecuteBtn.TextColor3 = Color3.fromRGB(255, 255, 255) ExecuteBtn.TextSize = 14 ExecuteBtn.Font = Enum.Font.GothamBold ExecuteBtn.Text = "Execute" ExecuteBtn.Parent = MainFrame -- ========================================== -- CLEAR BUTTON -- ========================================== local ClearBtn = Instance.new("TextButton") ClearBtn.Size = UDim2.new(0, 100, 0, 35) ClearBtn.Position = UDim2.new(0, 505, 0, 395) ClearBtn.BackgroundColor3 = Color3.fromRGB(180, 120, 40) ClearBtn.TextColor3 = Color3.fromRGB(255, 255, 255) ClearBtn.TextSize = 14 ClearBtn.Font = Enum.Font.GothamBold ClearBtn.Text = "Clear" ClearBtn.Parent = MainFrame local ClearCorner = Instance.new("UICorner") ClearCorner.CornerRadius = UDim.new(0, 5) ClearCorner.Parent = ClearBtn -- ========================================== -- DISCORD CREDIT -- ========================================== local CreditLabel = Instance.new("TextLabel") CreditLabel.Size = UDim2.new(0, 125, 0, 35) CreditLabel.Position = UDim2.new(0, 615, 0, 395) CreditLabel.BackgroundTransparency = 1 CreditLabel.TextColor3 = Color3.fromRGB(120, 120, 120) CreditLabel.TextSize = 10 CreditLabel.Font = Enum.Font.GothamBold CreditLabel.Text = "discord.gg/9mgSRN9Cy" CreditLabel.Parent = MainFrame -- ========================================== -- STORAGE -- ========================================== local HttpService = game:GetService("HttpService") local MASTER_FILE_NAME = "GeminiMassScripts.json" local scriptDatabase = {} local activeScriptSelected = nil local function ScriptErrorHandler(errMessage) local trace = debug.traceback() warn("--- [ GEMINI HUB EXECUTION ERROR ] ---") warn("Error: " .. tostring(errMessage)) warn("Traceback:\n" .. tostring(trace)) warn("--------------------------------------") return errMessage end local function saveDatabaseToDisk() if writefile then local encoded = HttpService:JSONEncode(scriptDatabase) writefile(MASTER_FILE_NAME, encoded) end end local function loadDatabaseFromDisk() if readfile and isfile and isfile(MASTER_FILE_NAME) then xpcall(function() local decoded = HttpService:JSONDecode( readfile(MASTER_FILE_NAME) ) if type(decoded) == "table" then scriptDatabase = decoded end end, function(err) warn("Failed to load script database: " .. tostring(err)) end) end end -- ========================================== -- REFRESH SCRIPT LIST -- ========================================== local function refreshListUI() for _, child in ipairs(ListContainer:GetChildren()) do if child:IsA("TextButton") then child:Destroy() end end for name, code in pairs(scriptDatabase) do local scriptBtn = Instance.new("TextButton") scriptBtn.Size = UDim2.new(1, -10, 0, 30) scriptBtn.BackgroundColor3 = Color3.fromRGB(35, 35, 35) scriptBtn.TextColor3 = Color3.fromRGB(240, 240, 240) scriptBtn.TextSize = 13 scriptBtn.Font = Enum.Font.Gotham scriptBtn.Text = name scriptBtn.Parent = ListContainer local ButtonCorner = Instance.new("UICorner") ButtonCorner.CornerRadius = UDim.new(0, 4) ButtonCorner.Parent = scriptBtn scriptBtn.MouseButton1Click:Connect(function() activeScriptSelected = name NameInput.Text = name ScriptBox.Text = code end) end end loadDatabaseFromDisk() refreshListUI() -- ========================================== -- OPEN / CLOSE -- ========================================== CloseBtn.MouseButton1Click:Connect(function() MainFrame.Visible = false OpenBtn.Visible = true end) OpenBtn.MouseButton1Click:Connect(function() OpenBtn.Visible = false MainFrame.Visible = true end) -- ========================================== -- SAVE -- ========================================== SaveBtn.MouseButton1Click:Connect(function() local sName = NameInput.Text if sName == "" then NameInput.PlaceholderText = "Enter Name!" task.wait(1) NameInput.PlaceholderText = "Script Name..." return end scriptDatabase[sName] = ScriptBox.Text saveDatabaseToDisk() refreshListUI() activeScriptSelected = sName SaveBtn.Text = "Saved!" task.wait(1) SaveBtn.Text = "Save / Add" end) -- ========================================== -- DELETE -- ========================================== DeleteBtn.MouseButton1Click:Connect(function() local sName = NameInput.Text if scriptDatabase[sName] then scriptDatabase[sName] = nil saveDatabaseToDisk() refreshListUI() ScriptBox.Text = "" NameInput.Text = "" activeScriptSelected = nil DeleteBtn.Text = "Deleted!" task.wait(1) DeleteBtn.Text = "Delete" end end) -- ========================================== -- CLEAR -- ========================================== ClearBtn.MouseButton1Click:Connect(function() ScriptBox.Text = "" NameInput.Text = "" activeScriptSelected = nil ClearBtn.Text = "Cleared!" task.wait(0.8) ClearBtn.Text = "Clear" end) -- ========================================== -- EXECUTE -- ========================================== ExecuteBtn.MouseButton1Click:Connect(function() local codeToRun = ScriptBox.Text if codeToRun and codeToRun ~= "" then local success, result = xpcall(function() local func, compileErr = loadstring(codeToRun) if func then func() else error("Compile Error: " .. tostring(compileErr)) end end, ScriptErrorHandler) if not success then ExecuteBtn.Text = "Error! (F9)" ExecuteBtn.BackgroundColor3 = Color3.fromRGB(200, 40, 40) else ExecuteBtn.Text = "Executed!" ExecuteBtn.BackgroundColor3 = Color3.fromRGB(40, 160, 60) end task.wait(1.5) ExecuteBtn.Text = "Execute" ExecuteBtn.BackgroundColor3 = Color3.fromRGB(0, 120, 215) end end)