local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local player = Players.LocalPlayer local correctKey = "unepic" -- the key required to unlock the GUI -- FUNCTION TO CREATE MAIN HUB local function createHub() -- Remove reopen button if exists if player.PlayerGui:FindFirstChild("ReopenButton") then player.PlayerGui.ReopenButton:Destroy() end -- MAIN GUI local gui = Instance.new("ScreenGui") gui.Name = "SkyboxHubRed" gui.ResetOnSpawn = false gui.Parent = player.PlayerGui -- Main frame local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 380, 0, 500) frame.Position = UDim2.new(0.5, -190, 0.5, -250) frame.BackgroundColor3 = Color3.fromRGB(50,0,0) frame.Active = true frame.Parent = gui Instance.new("UICorner", frame).CornerRadius = UDim.new(0,16) -- Dragging logic local dragging, dragInput, dragStart, startPos local function update(input) local delta = input.Position - dragStart frame.Position = UDim2.new(0, startPos.X + delta.X, 0, startPos.Y + delta.Y) end frame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = Vector2.new(frame.Position.X.Offset, frame.Position.Y.Offset) input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) frame.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then dragInput = input end end) UserInputService.InputChanged:Connect(function(input) if input == dragInput and dragging then update(input) end end) -- Background texture local texture = Instance.new("ImageLabel") texture.Size = UDim2.new(1,0,1,0) texture.BackgroundTransparency = 1 texture.Image = "rbxassetid://13721258123" -- your red texture ID texture.ImageTransparency = 0.8 texture.ScaleType = Enum.ScaleType.Tile texture.Parent = frame -- Title local title = Instance.new("TextLabel") title.Size = UDim2.new(1,0,0,50) title.Position = UDim2.new(0,0,0,0) title.BackgroundTransparency = 1 title.Text = "Skybox Odyssey Teleports" title.TextColor3 = Color3.new(1,1,1) title.TextScaled = true title.Font = Enum.Font.GothamBlack title.Parent = frame -- Scrolling frame local scroll = Instance.new("ScrollingFrame") scroll.Size = UDim2.new(0.9,0,0.8,0) scroll.Position = UDim2.new(0.05,0,0.15,0) scroll.BackgroundTransparency = 1 scroll.BorderSizePixel = 0 scroll.ScrollBarThickness = 10 scroll.ScrollBarImageColor3 = Color3.fromRGB(255,80,80) scroll.CanvasSize = UDim2.new(0,0,0,0) scroll.Parent = frame local layout = Instance.new("UIListLayout", scroll) layout.Padding = UDim.new(0,10) layout.SortOrder = Enum.SortOrder.LayoutOrder -- Teleport function local function teleport(x,y,z) local hrp = player.Character and player.Character:FindFirstChild("HumanoidRootPart") if hrp then hrp.CFrame = CFrame.new(x,y,z) end end -- Spawn button at top local spawnContainer = Instance.new("Frame") spawnContainer.Size = UDim2.new(1,0,0,45) spawnContainer.BackgroundColor3 = Color3.fromRGB(150,0,0) spawnContainer.BackgroundTransparency = 0.1 spawnContainer.Parent = scroll Instance.new("UICorner", spawnContainer).CornerRadius = UDim.new(0,12) local spawnBtn = Instance.new("TextButton") spawnBtn.Size = UDim2.new(1,0,1,0) spawnBtn.BackgroundTransparency = 1 spawnBtn.Text = "Teleport to Spawn" spawnBtn.TextColor3 = Color3.fromRGB(255,255,255) spawnBtn.TextScaled = true spawnBtn.Font = Enum.Font.GothamBold spawnBtn.Parent = spawnContainer spawnBtn.MouseButton1Click:Connect(function() teleport(0,10,0) end) -- Teleport destinations with names local teleportDestinations = { {name="Black Box", pos=Vector3.new(1008546,10,0)}, {name="Color Box", pos=Vector3.new(5053636,10,0)}, {name="Player Box", pos=Vector3.new(7087242,10,0)}, {name="Texture Box", pos=Vector3.new(11178325,10,0)}, {name="Grey Box", pos=Vector3.new(15158294,10,0)}, {name="Red Box", pos=Vector3.new(22271252,10,0)}, {name="Truss Box", pos=Vector3.new(24063234,10,0)}, {name="Hacker Box", pos=Vector3.new(27292114,10,0)}, {name="Blue Box", pos=Vector3.new(31997342,10,0)}, {name="White Box", pos=Vector3.new(36280048,10,0)}, {name="Screenshot Box", pos=Vector3.new(40673632,10,0)}, {name="Data Box", pos=Vector3.new(41379788,10,0)}, } for _, dest in ipairs(teleportDestinations) do local container = Instance.new("Frame") container.Size = UDim2.new(1,0,0,60) container.BackgroundColor3 = Color3.fromRGB(180,0,0) container.BackgroundTransparency = 0.1 container.Parent = scroll Instance.new("UICorner", container).CornerRadius = UDim.new(0,12) local btn = Instance.new("TextButton") btn.Size = UDim2.new(1,0,1,0) btn.BackgroundTransparency = 1 btn.Text = dest.name btn.TextColor3 = Color3.new(1,1,1) btn.TextScaled = true btn.Font = Enum.Font.GothamBold btn.Parent = container btn.MouseButton1Click:Connect(function() teleport(dest.pos.X,dest.pos.Y,dest.pos.Z) end) end -- Update scroll canvas layout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() scroll.CanvasSize = UDim2.new(0,0,0,layout.AbsoluteContentSize.Y) end) -- Close button local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(0,40,0,40) closeBtn.Position = UDim2.new(1,-48,0,8) closeBtn.BackgroundColor3 = Color3.fromRGB(220,20,20) closeBtn.Text = "X" closeBtn.TextColor3 = Color3.new(1,1,1) closeBtn.TextScaled = true Instance.new("UICorner", closeBtn).CornerRadius = UDim.new(1,0) closeBtn.Parent = frame closeBtn.MouseButton1Click:Connect(function() gui:Destroy() -- Create small reopen button local reopenGui = Instance.new("ScreenGui") reopenGui.Name = "ReopenButton" reopenGui.ResetOnSpawn = false reopenGui.Parent = player.PlayerGui local reopenBtn = Instance.new("TextButton") reopenBtn.Size = UDim2.new(0,60,0,60) reopenBtn.Position = UDim2.new(0.5, -30, 0, 20) reopenBtn.BackgroundColor3 = Color3.fromRGB(255,50,50) reopenBtn.Text = "⟳" reopenBtn.TextColor3 = Color3.new(1,1,1) reopenBtn.TextScaled = true reopenBtn.Font = Enum.Font.GothamBold reopenBtn.Parent = reopenGui Instance.new("UICorner", reopenBtn).CornerRadius = UDim.new(1,0) reopenBtn.MouseButton1Click:Connect(function() reopenGui:Destroy() createHub() end) end) -- Toggle GUI with Insert UserInputService.InputBegan:Connect(function(input, gp) if gp then return end if input.KeyCode == Enum.KeyCode.Insert then gui.Enabled = not gui.Enabled end end) end -- KEY ENTRY GUI local keyGui = Instance.new("ScreenGui") keyGui.Name = "SkyboxKey" keyGui.ResetOnSpawn = false keyGui.Parent = player.PlayerGui local keyFrame = Instance.new("Frame") keyFrame.Size = UDim2.new(0, 300, 0, 150) keyFrame.Position = UDim2.new(0.5, -150, 0.5, -75) keyFrame.BackgroundColor3 = Color3.fromRGB(30,30,30) keyFrame.Parent = keyGui Instance.new("UICorner", keyFrame).CornerRadius = UDim.new(0,12) local keyTitle = Instance.new("TextLabel") keyTitle.Size = UDim2.new(1,0,0,40) keyTitle.Position = UDim2.new(0,0,0,10) keyTitle.BackgroundTransparency = 1 keyTitle.Text = "Enter Key to Access Hub" keyTitle.TextColor3 = Color3.fromRGB(255,255,255) keyTitle.TextScaled = true keyTitle.Font = Enum.Font.GothamBold keyTitle.Parent = keyFrame local keyBox = Instance.new("TextBox") keyBox.Size = UDim2.new(0.8,0,0,40) keyBox.Position = UDim2.new(0.1,0,0,60) keyBox.PlaceholderText = "Enter key..." keyBox.ClearTextOnFocus = true keyBox.TextScaled = true keyBox.Font = Enum.Font.Gotham keyBox.TextColor3 = Color3.fromRGB(255,255,255) keyBox.BackgroundColor3 = Color3.fromRGB(50,0,0) keyBox.Parent = keyFrame Instance.new("UICorner", keyBox).CornerRadius = UDim.new(0,8) local submitBtn = Instance.new("TextButton") submitBtn.Size = UDim2.new(0.4,0,0,35) submitBtn.Position = UDim2.new(0.3,0,0,110) submitBtn.Text = "Submit" submitBtn.TextScaled = true submitBtn.Font = Enum.Font.GothamBold submitBtn.TextColor3 = Color3.fromRGB(255,255,255) submitBtn.BackgroundColor3 = Color3.fromRGB(80,0,0) submitBtn.Parent = keyFrame Instance.new("UICorner", submitBtn).CornerRadius = UDim.new(0,8) -- Submit key button submitBtn.MouseButton1Click:Connect(function() if keyBox.Text:lower() == correctKey then keyGui:Destroy() createHub() else keyBox.Text = "" keyBox.PlaceholderText = "Wrong key!" end end)