In all my games in which I use datastores to store player data, I use an incredibly simple and efficient method.
OAuth2 Table Module
With this Module you can convert Tables into Folders and Folders into Tables, works with subfolders.
When I load I use GetAsync with the UserId of a player, i get a table that I turn into a folder and call it “PlayerData” and put it in the Player, if a player does not have saved data I put a folder with the default data, when I save I convert the folder into a table and I use SetAsync, I hope it helps you, it makes things much easier for me and I only have to write a maximum of 10 lines of code.