-- SavePos GUI + Fly (Infinite Yield Style) | FINAL local Players = game:GetService("Players") local UIS = game:GetService("UserInputService") local RunService = game:GetService("RunService") local player = Players.LocalPlayer -- ScreenGui local gui = Instance.new("ScreenGui") gui.Name = "SavePosGUI" gui.IgnoreGuiInset = true gui.ResetOnSpawn = false gui.ZIndexBehavior = Enum.ZIndexBehavior.Global gui.Parent = player:WaitForChild("PlayerGui") -- Main Frame local main = Instance.new("Frame", gui) main.Size = UDim2.new(0, 320, 0, 260) main.Position = UDim2.new(0.5, -160, 0.4, 0) main.BackgroundColor3 = Color3.fromRGB(30,30,30) main.Active = true main.Draggable = true main.ZIndex = 10 -- Top Bar local top = Instance.new("Frame", main) top.Size = UDim2.new(1,0,0,30) top.BackgroundColor3 = Color3.fromRGB(20,20,20) top.ZIndex = 11 -- Close local close = Instance.new("TextButton", top) close.Size = UDim2.new(0,30,0,30) close.Position = UDim2.new(1,-30,0,0) close.Text = "X" close.BackgroundColor3 = Color3.fromRGB(170,50,50) close.ZIndex = 12 -- Minimize local mini = Instance.new("TextButton", top) mini.Size = UDim2.new(0,30,0,30) mini.Position = UDim2.new(1,-60,0,0) mini.Text = "-" mini.BackgroundColor3 = Color3.fromRGB(60,60,60) mini.ZIndex = 12 -- Floating Button local float = Instance.new("TextButton", gui) float.Size = UDim2.new(0,50,0,50) float.Position = UDim2.new(0.1,0,0.5,0) float.Text = "●" float.Visible = false float.BackgroundColor3 = Color3.fromRGB(40,40,40) float.Active = true float.Draggable = true float.ZIndex = 999 -- Save Positions local savedPos = {} for i = 1,3 do local save = Instance.new("TextButton", main) save.Size = UDim2.new(0,130,0,30) save.Position = UDim2.new(0,10,0,40 + (i-1)*45) save.Text = "Guardar "..i save.ZIndex = 11 local load = Instance.new("TextButton", main) load.Size = UDim2.new(0,130,0,30) load.Position = UDim2.new(0,180,0,40 + (i-1)*45) load.Text = "Ir "..i load.ZIndex = 11 save.MouseButton1Click:Connect(function() local char = player.Character if char and char:FindFirstChild("HumanoidRootPart") then savedPos[i] = char.HumanoidRootPart.CFrame end end) load.MouseButton1Click:Connect(function() if savedPos[i] then local char = player.Character if char and char:FindFirstChild("HumanoidRootPart") then char.HumanoidRootPart.CFrame = savedPos[i] end end end) end -- Fly Button local flyBtn = Instance.new("TextButton", main) flyBtn.Size = UDim2.new(0,300,0,30) flyBtn.Position = UDim2.new(0,10,1,-40) flyBtn.Text = "FLY: OFF" flyBtn.ZIndex = 11 -- Fly Logic (FINAL FIX) local flying = false local bv, bg, humanoid local function startFly() local char = player.Character humanoid = char and char:FindFirstChildOfClass("Humanoid") local hrp = char and char:FindFirstChild("HumanoidRootPart") if not humanoid or not hrp then return end humanoid.PlatformStand = true humanoid.AutoRotate = false bv = Instance.new("BodyVelocity", hrp) bv.MaxForce = Vector3.new(math.huge, math.huge, math.huge) bv.Velocity = Vector3.zero bg = Instance.new("BodyGyro", hrp) bg.MaxTorque = Vector3.new(math.huge, math.huge, math.huge) bg.CFrame = hrp.CFrame RunService:BindToRenderStep("Fly", Enum.RenderPriority.Camera.Value, function() local cam = workspace.CurrentCamera local dir = Vector3.zero if UIS:IsKeyDown(Enum.KeyCode.W) then dir += cam.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.S) then dir -= cam.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.A) then dir -= cam.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.D) then dir += cam.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.Space) then dir += Vector3.new(0,1,0) end if UIS:IsKeyDown(Enum.KeyCode.LeftControl) then dir -= Vector3.new(0,1,0) end if dir.Magnitude > 0 then dir = dir.Unit end bv.Velocity = dir * 70 bg.CFrame = cam.CFrame end) end local function stopFly() RunService:UnbindFromRenderStep("Fly") if humanoid then humanoid.PlatformStand = false humanoid.AutoRotate = true end if bv then bv:Destroy() end if bg then bg:Destroy() end end flyBtn.MouseButton1Click:Connect(function() flying = not flying flyBtn.Text = flying and "FLY: ON" or "FLY: OFF" if flying then startFly() else stopFly() end end) -- Minimize / Restore / Close mini.MouseButton1Click:Connect(function() main.Visible = false float.Visible = true end) float.MouseButton1Click:Connect(function() main.Visible = true float.Visible = false end) close.MouseButton1Click:Connect(function() gui:Destroy() end)