Modification to constructionscript reset position of all actors

It’s definitely uncommon to me. I just grabbed a random BP and added “Spawn Emitter Attached” called from the Construction Script, and it’s fine, the actor remains where it was. So IDK really =(

I was working on a basic particle system wrapped in an actor BP.

However, I found it reset all the actors I created using the BP whenever I do modification to anything related to the construction script.

It automatically puts all the actors I placed in different position back to origin 0,0,0.
Is there any method I can prevent this from happening?

You mean you manually move the components of the blueprint around after placing the BP into the level? Or what actors do you mean?

I mean those actors I created by dragging the BP into desired positions in the level.

Whenever I change any node in the construction script, the position of all of them are reset to 0,0,0

And there’s nothing in the Construction Script that changes the Actor location?

The only thing I do in the script is creating a particle system using the “Spawn Emitter Attached” node.

It doesn’t seem to be changing the location at all.

So it’s not a common stuff right? Maybe I should just recreate the BP and see if it’s happening again

I agree, it’s not in the Construction Script for a reason, you should spawn anything On Begin Play or later. However, you can still create a custom event in the Event Graph and call it from the Construction Script, even though I can’t see why you would do that.

Anyway, if I understand Wernerway correctly, it’s not the emitter, but the entire actor itself gets relocated to the world origin for some reason.

I don’t think that works in the Construction Script tbh. When I try and add it in my constructionscript it does not appear in my context sensitive list.

Additionally what are you attaching it to? Have you set the Location, Rotation and Scale variables on the SpawnEmitterAttached node? if not then it would make sense that it will set it to 0,0,0 since the location input by default is 0,0,0 which I presume would be in worldspace.

Is there a specific reason why you want to use the Construction script for this? If you are not destroying the spawned emitters then it will just keep spawning them with every compile or adjustment to any variable on that bp which does not seem like a very safe way of spawning this.

What you can do is spawn like arrow components or something in your construction script and use those to get the locations you want and then on begin play you can spawn the Emitters. You have to make sure that you add the spawned arrow components to an array so you can destroy them as well before you spawn them in your constructionscript if the array is bigger then 0. That way it cleans up the spawned components everytime you make a change and does not spawn them indefinitely until you have 1 million of them.