Storing persistent data

I’m assuming each item dropped will have an actor reference in the rendered world. Mine does.

When I drop a vest/helmet I destroy the attached (high data) and spawn a low data variant, lower poly sm etc. I update the newly spawned vest with any relevant values (exposed). Durability (float), Skin (enum reference) etc. Server does this of course.

On pickup action the server will grab values from the vest/helmet, destroy low data actor, spawn high data, do a data table look up, set the base values, then overwrite with grabbed values, attach to character etc.

Re-read my previous post. I have a child class parent for each TYPE of item. All weapons derive from Weapons class, Throwables from Throwables, consumables from consumables. The Base parent class World Item only contains variables and logic that ALL world items will use. Weapons do not have a durability float, armor does not have recoil, weapon type, ammo type variables/structs.

When I need to add a new weapon I duplicate an existing one, then tweak base variables in class and add an entry to the data table for weapons. Same for Vests, helmets, meds, throwables, ammo and so forth.