Storing them in a table with key-value pairs counts as a table and OrderedDataStores only accepts raw positive integers. If you want to use the leaderboard, you have to store them in separate OrderedDataStores.
No, not really. Unless you’re storing data inside player that is(Like storing it inside leaderstats folder.).
In that case you should store player’s data in ServerStorage since there is a slight chance that when player leaves and you try to store player’s data the player object can get garbage collected and result in a data loss.
If you’re worried about the request budget, you can send 10 write requests(:SetAsync(), :UpdateAsync()) per player plus 60 more requests per minute so you should be fine.