It's unlimited tables for the player stats ! Well, you have no necessity to put tables in tables, but it's great if you need to.
The datastore (which keeps the data from players even when they're logged off) can only store int (numbers), string (text) or table (list of things, like ints, strings or... tables).
So I've made something that convert your data into some instances, which are material and not only stuck in one script. If you paste my script into a server script (make sure to activate the datastore in the option, I think it's in the security tab) and play your game, you should see in the server side (the blue pc icon in the upper bar) a folder appears.
This folder is your stats ! You can do whatever you want with that (server side only tho).
If you want to add a stat check the instructions line 77.
You can manually modify your stats when you are playing and go on the server side (don't worry, it only works in roblox studio)
Also if you want to remove the folder on leaving, add a playerFolder:Destroy() between the line 112 and 113