Are we required to use Blueprints to edit a class property before instancing it?

I have a TestActor class.
I want this class to be generic and not referencing any asset but I also want to set its parameters before instantiating it.
Am I required to create a blueprint based on this class so I can set its parameters?

I come from Unity and I’ve read the handful guide.

Seems like that we can use Blueprints as better and improved prefabs that means that, considering the issue expressed before, I’m supposed to always create a blueprint actor to spawn them.

Let’s say I have a class “Pickup” that I want to spawn like this one:

**Root **- SceneComponent: Basic scene Component to set the Actor’s base location in the world.
* StaticMeshComponent: Mesh representing gold ore.
- ParticleSystemComponent: Sparkling particle emitter attached to the gold ore.
- AudioComponent: Looping metallic chiming audio emitter attached to the gold ore.
- BoxComponent: Collision box to use as trigger for overlap event for picking up the gold.

Do I have to create subclasses “GoldPickup” “SilverPickup” and so on where I only change the effects and assets linked into the code if I don’t want to use the Blueprints?

Hi,

You definitely do not have to, but it is the preferred practice even suggested by Epic. It is much easier to assign asset references in Blueprints than in code, as well as changing them.

Also, if you have artists on your team, you can expose a whole bunch of properties to them (or even to yourself), like your ore’s “MaxValue”, “CollectionTime” etc.
These properties (like the asset references) can be easily maintained from Blueprints, without having to touch the code.