Sky box Odyssey tp key unepic. Names are broken
Key Required

Sky box Odyssey tp key unepic. Names are broken

Skybox Odysseynolanwagnenolanwagne 668 views 367 executesUpdated Dec 31, 2025
5.0/ 5(1 votes)
10100% Positive
Lua Script•268 lines (8492 chars)
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)

Features & Information

Key is unepic don’t actually need to join my discord. I just need joins

Community Comments (2)

nolanwagnenolanwagneDec 31, 2025

Names are broken

nolanwagnenolanwagneJan 3, 2026

Btw key is unepic

More Scripts for Skybox Odyssey