how to simply structure a few collision volumes in a blueprint

I don’t understand how you’re supposed to manage interaction volumes around a character.

I have an overall plan for blueprintable character abilities that goes like this: UHeroAbility manages triggering and costs, then uses a UHeroSelector subclass (e.g. UHeroSelector_Volume) to pick target Heroes with a scaling factor for each, then applies a UAbilityEffector to each target.

UHeroAbility inherits from USceneComponent strictly because this allows associated UAbilityEffectors to be children. I don’t really understand why I can’t do this with a normal Component.

The link between UHeroAbility and a particular UHeroSelector. As far as I’ve found so far the only option for linking a Component on the same Actor is to query it by name at runtime. This is brittle and it sucks. FComponentReference does nothing but automate this process. I’d love to promote HeroSelector to Actor but you can’t Blueprint a hierarchy of Actors for whatever reason. How are you supposed to build anything nontrivial in this system? I feel like I’m taking crazy pills.

For UHeroSelector_Volume I really only want to feed a UShapeComponent into UWorld::ComponentOverlapMulti. I’m therefor open to reinventing the wheel and using a custom component that fakes the editor for various UShapes and instead produces an FCollisionShape on demand - but I’ll only be happy if I can draw the collision volume and a TRS widget in the editor and I can’t find the docs for that.

I’ll be the millionth person to say it: the docs are terrible. The onboarding process is terrible. The API is inscrutable. Inline docs in the source virtually nonexistent. The only nontrivial demo we can look at is Lyra and that project appears to be from space - its structure is INSANE and it appears to only use Blueprints so it can say it did it.

Triggering one-frame hurtboxes in specific areas around a player character is about as textbook a game feature as I can imagine. HOW DO YOU DO IT