local player = game.Players.LocalPlayer local target = Vector3.new(-746.45, -3.10, -519.42) repeat wait() until player.Character and player.Character.HumanoidRootPart local char = player.Character local root = char.HumanoidRootPart local humanoid = char:FindFirstChildOfClass("Humanoid") humanoid.PlatformStand = true local bodyVelocity = Instance.new("BodyVelocity") bodyVelocity.Velocity = Vector3.zero bodyVelocity.MaxForce = Vector3.new(100000, 100000, 100000) bodyVelocity.P = 15000 bodyVelocity.Parent = root local function flyTo(pos, slow) while wait() do if not char or not root then break end local current = root.Position local dir = (pos - current).Unit local dist = (pos - current).Magnitude if dist < 2 then bodyVelocity.Velocity = Vector3.zero break end local speed = slow and math.max(20, dist * 3) or (dist < 30 and math.max(20, dist * 5) or 300) bodyVelocity.Velocity = dir * speed end end local highPos = Vector3.new(root.Position.X, root.Position.Y + 10, root.Position.Z) flyTo(highPos, false) wait(0.2) local midPos = Vector3.new(target.X, highPos.Y, target.Z) flyTo(midPos, false) wait(0.2) flyTo(target, true) humanoid.PlatformStand = false bodyVelocity:Destroy()