thats my bad, i dont work with datastores much and it appears your original system of saving data would have worked. In your case, instead of using cframes i would recommend saving the position and orientation values and applying them. basically, the system you had before but with orientation as well. and the
part.BottomSurface = Enum.SurfaceType.Smooth
part.TopSurface = Enum.SurfaceType.Smooth -- removes studs on the parts
should still be fine in the script