I already have that kind of system for players. When they login, it loads their player data into PMUD.(player). It has everything the player needs. Clientside, they just get an array of what they have which can link to the clientside cache for information. The client-server will sync at changes only to avoid major triggers.
The good thing about players is that you can load/unload the data when they leave. Not so sure about weapons though

. I might just end up loading them from their respective files as needed. I could keep them loaded for like 5 minutes afterwards but I don't think that would work out in the end.
As for sending the data clientside, I originally just send all the data clientside in a big trigger then build it clientside into a cache file. One off transfer. This time I think i'll just have the cache updated with any weapon changes then update it's version. I'll then use the package stuff to auto download the latest version
