I was thinking along similar lines after having time to sleep on this.
Initially I thougth I might have a manager class that holds all of the Uobjects in an array and then can run the simulation on them all at once (like every time game time has passed an hour, loop through array of uobjects with perishable tag), but I don’t suppose delegating things out to a manager class has any benefit versus just having the logic in the class.
And a composition approach wouldn’t work here because a uobject can’t hold components. So I think it has to be like, BasePickup_uobject, and then any special types of pickups would need their own instance.
I doubt there is much need for modularity because in a realistic survival game, it is known ahead of time what sort of behaviors each item might have. But suppose I wanted a composition approach - in that case the manager class could be an actor that holds all possible behavior components, and then each instance of the pickup_uobject can have a flag that tells which components it subscribes to?
Does that make sense? I might try setting it up as compositional just for curiosities sake, though I’m not sure it’s necessary.