Created Damage Type object automatically garbage collected, right?

Yeah I agree, I usually prefer to write my own systems too. I also love data assets, I have a growing number of systems with their own PDAs. The way I use DTs right now, is very similar to data assets (1 parent and many children that only edit class defaults.) This makes it fast to access functions/data without switches or anything.

The only reason I was hesitant on creating my own damage event calls, is I figured the native UE ApplyRadialDamage function for area damage would be faster and cleaner than something I would make.