--// SERVICES local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local player = Players.LocalPlayer local savedCFrame = nil local markerPart = nil --// FLY VARS local flying = false local flySpeed = 60 local bv, bg --// GET CHARACTER local function getChar() return player.Character or player.CharacterAdded:Wait() end --// MARKER local function createMarker(cf) if markerPart then markerPart:Destroy() end markerPart = Instance.new("Part") markerPart.Size = Vector3.new(1.5,1.5,1.5) markerPart.Shape = Enum.PartType.Ball markerPart.Material = Enum.Material.Neon markerPart.Color = Color3.fromRGB(0,255,0) markerPart.Anchored = true markerPart.CanCollide = false markerPart.Position = cf.Position + Vector3.new(0,2,0) markerPart.Parent = workspace local bill = Instance.new("BillboardGui", markerPart) bill.Size = UDim2.new(0,100,0,30) bill.AlwaysOnTop = true local txt = Instance.new("TextLabel", bill) txt.Size = UDim2.new(1,0,1,0) txt.BackgroundTransparency = 1 txt.Text = "📍 Saved Spot" txt.TextColor3 = Color3.new(1,1,1) txt.TextStrokeTransparency = 0 txt.Font = Enum.Font.GothamBold txt.TextSize = 12 end --// SAVE POSITION local function savePosition() local char = getChar() local hrp = char:FindFirstChild("HumanoidRootPart") if hrp then savedCFrame = hrp.CFrame createMarker(savedCFrame) end end --// TELEPORT local function teleport() if not savedCFrame then return end local char = getChar() local hrp = char:FindFirstChild("HumanoidRootPart") if hrp then hrp.CFrame = savedCFrame end end --// SAVE ON DEATH local function hookCharacter(char) local hum = char:WaitForChild("Humanoid") hum.Died:Connect(savePosition) end if player.Character then hookCharacter(player.Character) end player.CharacterAdded:Connect(hookCharacter) --// FLY FUNCTIONS local function startFly() if flying then return end flying = true local char = getChar() local hrp = char:WaitForChild("HumanoidRootPart") local hum = char:WaitForChild("Humanoid") hum.PlatformStand = true bv = Instance.new("BodyVelocity") bv.MaxForce = Vector3.new(1e9,1e9,1e9) bv.Velocity = Vector3.zero bv.Parent = hrp bg = Instance.new("BodyGyro") bg.MaxTorque = Vector3.new(1e9,1e9,1e9) bg.CFrame = hrp.CFrame bg.Parent = hrp RunService.RenderStepped:Connect(function() if not flying then return end local cam = workspace.CurrentCamera local move = hum.MoveDirection bv.Velocity = cam.CFrame:VectorToWorldSpace(move) * flySpeed bg.CFrame = cam.CFrame end) end local function stopFly() flying = false local char = getChar() local hum = char:FindFirstChild("Humanoid") local hrp = char:FindFirstChild("HumanoidRootPart") if hum then hum.PlatformStand = false end if bv then bv:Destroy() end if bg then bg:Destroy() end end --// GUI local gui = Instance.new("ScreenGui", game.CoreGui) gui.ResetOnSpawn = false local frame = Instance.new("Frame", gui) frame.Size = UDim2.new(0, 200, 0, 170) frame.Position = UDim2.new(0.5, -100, 0.55, 0) frame.BackgroundColor3 = Color3.fromRGB(25,25,25) frame.Active = true frame.Draggable = true Instance.new("UICorner", frame).CornerRadius = UDim.new(0,12) --// SAVE BUTTON local saveBtn = Instance.new("TextButton", frame) saveBtn.Size = UDim2.new(1,-20,0,40) saveBtn.Position = UDim2.new(0,10,0,10) saveBtn.Text = "📍 Save Position" saveBtn.BackgroundColor3 = Color3.fromRGB(60,160,255) saveBtn.TextColor3 = Color3.new(1,1,1) saveBtn.Font = Enum.Font.GothamBold saveBtn.TextSize = 14 Instance.new("UICorner", saveBtn) --// TP BUTTON local tpBtn = Instance.new("TextButton", frame) tpBtn.Size = UDim2.new(1,-20,0,40) tpBtn.Position = UDim2.new(0,10,0,60) tpBtn.Text = "⚡ Teleport" tpBtn.BackgroundColor3 = Color3.fromRGB(120,255,120) tpBtn.TextColor3 = Color3.new(0,0,0) tpBtn.Font = Enum.Font.GothamBold tpBtn.TextSize = 14 Instance.new("UICorner", tpBtn) --// FLY BUTTON local flyBtn = Instance.new("TextButton", frame) flyBtn.Size = UDim2.new(1,-20,0,40) flyBtn.Position = UDim2.new(0,10,0,110) flyBtn.Text = "🕊 Fly: OFF" flyBtn.BackgroundColor3 = Color3.fromRGB(255,170,60) flyBtn.TextColor3 = Color3.new(0,0,0) flyBtn.Font = Enum.Font.GothamBold flyBtn.TextSize = 14 Instance.new("UICorner", flyBtn) --// BUTTON LOGIC saveBtn.MouseButton1Click:Connect(savePosition) tpBtn.MouseButton1Click:Connect(teleport) flyBtn.MouseButton1Click:Connect(function() if flying then stopFly() flyBtn.Text = "🕊 Fly: OFF" else startFly() flyBtn.Text = "🕊 Fly: ON" end end)