Cannot call Spawn Actor from UObject inherited blueprint?

I’m having a hell of a time trying to understand how to instantiate classes.

I have a Cannon class with a Fire function that spawns a projectile with a given spawn location. Cannon class is based on UObject because I only need this to be a collection of custom fields and methods. For some reason Spawn Actor from Class doesn’t exist here and my only option is Spawn Actor for Gameplay Task. Is there a difference? Why doesn’t Spawn Actor for Gameplay Task not have a transform argument?

My Cannon class used to be based on Actor Component, but due to polymorphism issues I keep running into with Actor Components (as described in this post) I refactored to UObjects so I can make proper use of Construct Object form Class.

When I try to make a Spawn Actor from Class node in a blueprint that works then paste it in to my UObject derived one, it just says conflicting nodes substituted during paste and doesn’t paste. No error message or log to tell me why.

check out the answer to this question - they don’t have a line break system, Nick recommends a example project where they use a vertical box of widgets https://answers.unrealengine.com/questions/64695/how-to-add-line-break-in-strings.html