--[[ Blue & Rainbow Teleport Saver Place this LocalScript in StarterGui. ]] local player = game.Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local humanoidRootPart = character:WaitForChild("HumanoidRootPart") -- Saved position (nil until saved) local savedPosition = nil -- Create GUI local screenGui = Instance.new("ScreenGui") screenGui.Parent = player:WaitForChild("PlayerGui") -- Main Frame (blue) local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 200, 0, 120) frame.Position = UDim2.new(0.5, -100, 0.5, -60) frame.BackgroundColor3 = Color3.fromRGB(30, 144, 255) -- DodgerBlue frame.BackgroundTransparency = 0.1 frame.Active = true frame.Draggable = true frame.Parent = screenGui -- UIStroke for rainbow outline local stroke = Instance.new("UIStroke") stroke.Thickness = 2 stroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border stroke.Color = Color3.fromRGB(255, 0, 0) -- starts red, will cycle stroke.Parent = frame -- Corner rounding (optional) local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 8) corner.Parent = frame -- Save Button local saveBtn = Instance.new("TextButton") saveBtn.Size = UDim2.new(0, 160, 0, 30) saveBtn.Position = UDim2.new(0.5, -80, 0, 15) saveBtn.BackgroundColor3 = Color3.fromRGB(0, 200, 0) saveBtn.Text = "📌 Save Position" saveBtn.TextColor3 = Color3.fromRGB(255, 255, 255) saveBtn.Font = Enum.Font.SourceSansBold saveBtn.TextSize = 16 saveBtn.Parent = frame -- TP Button local tpBtn = Instance.new("TextButton") tpBtn.Size = UDim2.new(0, 160, 0, 30) tpBtn.Position = UDim2.new(0.5, -80, 0, 65) tpBtn.BackgroundColor3 = Color3.fromRGB(255, 165, 0) tpBtn.Text = "🚀 TP to Spot" tpBtn.TextColor3 = Color3.fromRGB(255, 255, 255) tpBtn.Font = Enum.Font.SourceSansBold tpBtn.TextSize = 16 tpBtn.Parent = frame -- Status label (shows saved or error) local status = Instance.new("TextLabel") status.Size = UDim2.new(0, 160, 0, 20) status.Position = UDim2.new(0.5, -80, 0, 100) status.BackgroundTransparency = 1 status.Text = "No position saved" status.TextColor3 = Color3.fromRGB(255, 255, 255) status.Font = Enum.Font.SourceSans status.TextSize = 14 status.Parent = frame -- Function to update character reference (in case of respawn) local function updateCharacter() character = player.Character or player.CharacterAdded:Wait() humanoidRootPart = character:WaitForChild("HumanoidRootPart") end player.CharacterAdded:Connect(updateCharacter) -- Save button click saveBtn.MouseButton1Click:Connect(function() updateCharacter() if not character or not humanoidRootPart then status.Text = "❌ Character not ready!" return end savedPosition = humanoidRootPart.Position status.Text = "✅ Position saved!" wait(2) status.Text = "Saved: " .. tostring(savedPosition) end) -- TP button click tpBtn.MouseButton1Click:Connect(function() if not savedPosition then status.Text = "⚠️ No position saved!" return end updateCharacter() if not character or not humanoidRootPart then status.Text = "❌ Character not ready!" return end -- Teleport humanoidRootPart.CFrame = CFrame.new(savedPosition) status.Text = "🚀 Teleported!" wait(2) status.Text = "Saved: " .. tostring(savedPosition) end) -- Rainbow outline animation spawn(function() while true do for hue = 0, 1, 0.01 do stroke.Color = Color3.fromHSV(hue, 1, 1) wait(0.02) end end end)