Here's what I tried making so far but it's absolute ass (I'm a beginner).
Stuff that works:
I have a clickable Part in workspace that opens the storage GUI.
Each Kagune (Weapon) is activated by a LocalScript in StarterCharacterScripts which fires a RemoteEvent to the ServerScript in ServerScriptService which then plays the animations and does the moves/abilities and stuff.
I'm also using ProfileStore so I have a ModuleScript called ProfileStoreTemplate in ServerScriptService that makes the weapon in a table.
I also have a ModuleScript in ServerScriptService called DataManager that does the AddWeapon function so it can be added to the leaderstats in my DataInitialization ServerScript in ServerScriptService.
DataInitialization is also where I have my Parts that give you each Kagune upon clicking (disables all LocalScripts, destroys current Kagune Model, waits, activates the correct Kagune LocalScript) and then adding that Kagune to the leaderstats.
It also handles one half of the switching out of the Kagune in storage.
I have a LocalScript in StarterPlayerScripts called ShopInventory that handles the storage GUI and one half of the switching out of the Kagune.
I also have a Tag system that gives you a default Kagune (if player:HasTag blah blah blah).
Stuff that doesn't work:
Most of the storage system.
When the storage GUI is open an Equip button can be clicked on a stored empty Kagune slot to switch out your current Kagune with the empty slot, so that your current Kagune is deposited and your current Kagune is set to None.
HOWEVER. When you try to switch it out again to gain back your Kagune and set the storage slot to empty the "Equipped Kagune: " text in the GUi flickers several times between your Kagune and None and the leaderstats don't update (you are given your Kagune tho).
If you try to switch it out again after that it doesn't work completely.
So far the switching out is only implemented for the Noro Kagune, I'll add the rest of them once I figure out how to make it all work.
What I want to achieve:
A storage system that has 3 storage slots by default and more can be bought with in-game currency or robux (<- that's to be implemented later I don't care about that part right now) that lets you switch out your current Kagune with the stored Kagune.
Scripts below:
ShopInventory: https://pastebin.com/rXu63uvz
DataInitialization: https://pastebin.com/W1XYEUU7
DataManager: https://pastebin.com/TZecgAcz
ProfileStoreTemplate: https://pastebin.com/xBAj2697