been down that path myself ![]()
your system is fine but honestly, the absolute simplest way to do it is just have 1 actor per item.
you can
- set/get the default values in the class defaults.
- Instantiate the dynamic values in your spawned actor.
- reference them all in a DataTable with softclass references, or just use the asset manager.
- actors can replicate if you go down that path
- you can self reference in inventories (ie items within items, you cant do this with structs)
there are more advantages too, yes an actor is technically the heaviest class but for simple indie games i cant see it being a problem and the speed/simplicity saves development time
but curious to hear other thoughts?