-- Modified Rayfield UI Setup local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))() local Window = Rayfield:CreateWindow({ Name = "needoh tower ┆ world 1-4 stage tp’er", LoadingTitle = "⚡ initializing ⚡", LoadingSubtitle = "by palofsc", ConfigurationSaving = { Enabled = true, FolderName = "deltadata", FileName = "navconfig" } }) local CurrentWorld = "# - world 1" local StageDropdown = nil -- Teleport Tab local Tab = Window:CreateTab("꩜ ┆ stage selector", "navigation") -- World Selector Tab:CreateDropdown({ Name = " @ ‘ worlds ! “", Options = {"# - world 1", "# - world 2", "# - world 3", "# - world 4"}, CurrentOption = {"# - world 1"}, Callback = function(Option) CurrentWorld = Option[1] local Max = 35 if CurrentWorld == "# - world 2" then Max = 43 elseif CurrentWorld == "# - world 4" then Max = 31 end local NewOptions = {} for i = 2, Max do table.insert(NewOptions, tostring(i)) end StageDropdown:Refresh(NewOptions, true) end, }) Tab:CreateLabel("────‘๑’────") -- Stage Dropdown StageDropdown = Tab:CreateDropdown({ Name = ". # ⋮ stages ֹ ₊ ", Options = {}, Flag = "StageDropdown", Callback = function(Option) local TargetName = Option[1] local Checkpoints = workspace:FindFirstChild("Checkpoints") if Checkpoints and Checkpoints:FindFirstChild(TargetName) then local TargetPart = Checkpoints[TargetName] local Pos = TargetPart:IsA("Model") and TargetPart:GetPrimaryPartCFrame() or TargetPart.CFrame game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame = Pos end end, }) -- FIX: Immediately populate the dropdown after creation local InitialOptions = {} for i = 2, 35 do table.insert(InitialOptions, tostring(i)) end StageDropdown:Refresh(InitialOptions, true) -- Teleport to end button Tab:CreateButton({ Name = "# teleport to end", Callback = function() local TargetStage = "35" if CurrentWorld == "# - world 2" then TargetStage = "43" elseif CurrentWorld == "# - world 4" then TargetStage = "31" end local Checkpoints = workspace:FindFirstChild("Checkpoints") local TargetPart = Checkpoints and Checkpoints:FindFirstChild(TargetStage) if TargetPart then local Pos = TargetPart:IsA("Model") and TargetPart:GetPrimaryPartCFrame() or TargetPart.CFrame game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame = Pos Rayfield:Notify({Title = "✅ success", Content = "teleported to stage " .. TargetStage, Duration = 3}) else Rayfield:Notify({Title = "⚠️ error", Content = "could not find part named '" .. TargetStage .. "'", Duration = 3}) end end, }) -- Changelog Tab local ChangeTab = Window:CreateTab("´ཀ` changelogs ┆ info", "list") ChangeTab:CreateLabel("━ ⊹ ⟡ ⊹ ━━━") ChangeTab:CreateLabel("ʚɞ v1.0 ┆ initial release") ChangeTab:CreateLabel("ʚɞ v1.1 ┆ refined ui aesthetic") ChangeTab:CreateLabel("ʚɞ v1.2 ┆ optimized teleportation engine") ChangeTab:CreateLabel("ʚɞ v1.3 ┆ added multi-world infrastructure") ChangeTab:CreateLabel("ʚɞ v1.4 ┆ implemented world 3 support") ChangeTab:CreateLabel("ʚɞ v1.5 ┆ integrated world 4 with custom caps") ChangeTab:CreateLabel("ʚɞ v1.6 ┆ fixed world 2 (43) stage range") ChangeTab:CreateLabel("ʚɞ v1.7 ┆ added dynamic end-tp detection") ChangeTab:CreateLabel("ʚɞ v1.8 ┆ polished icons and symbols") ChangeTab:CreateLabel("ʚɞ v1.9 ┆ fixed startup dropdown bug") ChangeTab:CreateLabel("━ ⊹ ⟡ ⊹ ━━━") ChangeTab:CreateLabel("made with ♡ by palofsc")