So currently this is in my sword:

This is the module script I have which holds a table of data, using serialization. Is this the most efficient way that I can possibly do this. I feel as if there are too many Values inside of a sword, and if a weapon was to have 6-7 upgrades, that would be a lot of changing. If it’s the best way I can possible do it, then I will continue, but if there is a more efficient way, please let me know.
local Weapons = {}
Weapons.WeaponsTable = {
[1] = {
["Name"] = "Wooden Sword",
["Owned"] = true,
["Damage"] = 5,
["Magic Damage"] = 2,
["Health"] = 0,
["Rarity"] = "Common",
["Quantity"] = 1
},
[1.1] = {
["Name"] = "Wooden Sword",
["Owned"] = true,
["Damage"] = 7,
["Magic Damage"] = 4,
["Health"] = 0,
["Rarity"] = "Common",
["Quantity"] = 1
},
[1.2] = {
["Name"] = "Wooden Sword",
["Owned"] = false,
["Damage"] = 10,
["Magic Damage"] = 5,
["Health"] = 0,
["Rarity"] = "Common",
["Quantity"] = 0
},
[1.3] = {
["Name"] = "Wooden Sword",
["Owned"] = false,
["Damage"] = 13,
["Magic Damage"] = 7,
["Health"] = 2,
["Rarity"] = "Common",
["Quantity"] = 0
},
[2] = {
["Name"] = "Stone Sword",
["Owned"] = false,
["Damage"] = 5,
["Magic Damage"] = 2,
["Health"] = 0,
["Rarity"] = "Common",
["Quantity"] = 0
},
-- [2].. [3].. [4].. and so on.
}
return Weapons
All of this data is handled through a dataStore2 Script Handler. Any help would be appreciate. Thank you 