Created Damage Type object automatically garbage collected, right?

Rev is correct if thats your only question, you can also MarkAsGarbage() in c++

its obviously a tried and tested method since its built into base unreal so you dont need to worry.

but as an alternative i just prefer to create my own systems. i use ActorComponents instead of the DamageEvent, Data assets instead of Tables.

you could even have all your damage types directly inside the AC and use an Enum to switch.
but all methods work