Save, Orientation, Postition, Inventory, Problems (UNSOLVED)

I want to know how to make a saving system that saves player orientation inventory and position,
it should autosave every 60 seconds, how would I go about this?

Use DataStores, or DataStore Modules then make a loop which loops every 60 seconds.

On join load the data and give it to the player. (If there is any data to load that is)

Video for explanation:

I tried and it seems like the result isn’t saving my players orientation position inventory or anything, Im confused at what its trying to do

So you want to save the player’s CFrame? that is quite easy.
First send me your current datastore system if you want me to add to it else i’ll explain to you how to make it functioning.

Load the data when the player has been added (when they joined).
Now if the data is valid you want to check if the character is already valid else wait, we can do this like so:

local character = player.Character or player.CharacterAdded:Wait()

It will check if there already is a character, else it’ll wait for it to be added, once you receive this info use:

character:WaitForChild("HumanoidRootPart").CFrame = data.CFrame

Now when the player leaves you have to make sure their character is valid:

if player.Character then
   local data = {["CFrame"] = player.Character.HumanoidRootPart.CFrame} -- What you want to save
else
   warn("Character got deleted before saving the data")
end

To auto-save it every 60 seconds put a while loop at the end of the PlayerAdded function like so:

while player do task.wait(60)
   -- run the save function
end

If this helped you put your question as solved to shelf this.

Pretty sure the character is destroyed as soon as PlayerRemoving happens.

I don’t have a current datastore, how would I go about making one?

I am still very confused I really don’t know how to go about this