I’d highly recommend checking out ProfileService. It almost entirely prevents data loss for your users (which my game had a huge issue with before I switched) and makes saving your player’s data much easier. It’ll also help your code be less cluttered.
The way I’ve set up my inventory system (for items specifically) uses the item’s name as an index to store the number of that item the player has. Once you retrieve that array when reading the data, you can use the index to find the stats of that weapon in a data module. This way you can store the least amount of data as far as I know.