I posted this originally here in the Blueprint Scripting section, but after getting a confirmation from another user that their child actors were behaving similarly and only in 4.17 I thought I’d post it here for better visibility.
Ever since I moved to 4.17 I’ve been noticing a reoccurring issue in my project. I have a blueprint named “bs_PathMark” which is really quite simple, just a looping timeline of an arrow going some distance which more or less acts as a pointer and “power” meter, which is assigned to a ChildActor on my player pawn.
Prior to 4.17 everything worked perfectly. But since moving to 4.17 I started noticing duplicates of this “bs_PathMark” in the level and in the world outliner. These duplicates are left at the players beginning location. The orphaned actor’s timeline reflects the playrate being set on the player (which implies its getting updated blueprint information from the player, how I’m still unsure) but they aren’t attached to the player nor do they rotate with the player. I’ve noticed in world outliner as many as half a dozen. I keep deleting them (without issue) and they keep reappearing.
I’ve looked for an explanation but have yet to uncover one. I am not “spawning” this actor nor am I assigning this class to the ChildActor at run time. These are all values set in the player pawn, so how its generating more than one I am at a loss. Since they only appear at the player’s beginning location I suspicious of some bad initialization or some bug introduced recently but I’m currently at a loss.
I’ve placed some print strings at BeginPlay to let me know when they’re appearing but that wasn’t really much help. If I delete the extras, I could get new duplicates in a few sessions in PIE or in a dozen which makes it very frustrating to hunt down. Is there some logic I could stuff in the class to find out what is absolutely calling it? Or what is spawning it?
I’ve attached the entirety of the blueprint in question in the attached image. It’s not very big.
We have not heard back from you in a few days, so we are marking this post as Resolved for tracking purposes. If you are still experiencing the issue you reported, please respond to this message with additional information and we will follow up.
Hi, yes it is still occuring. I thought I had fixed it when I completely remade the blueprint in question. Whatever is causing it is very intermittent which makes it not very obvious even when it happens, until you start to see a few artifacts in the level.
In the attached image you can see how they appear in World Outliner.
Additionally, I’m not quite sure how easy it is to reproduce this in a new project either because its not even all ChildActors. I have other ChildActor on my Player Actor that are nut duplicating at all.
i got the same problem.
4.17.2 prebuild version.
my actor was compound by more than 10 child actors. 3 of them use the same class.
i found these 3 child actor components duplicated 5 times or 9 times, but some times maby 11 times or 12 times.
test in Bluerpint Editor’s viewport: move the parent component of these 3 childactor components will found them moved with parent too. but the duplicated components will not move with parent, and i can not select them.
i found these problem cause the these child actor component have animation on click…
sorry, i can not find the reason. other child actor component works good. just one class have problem.
maybe i have some useful info:
1, compile that class cost long time.
2, the child actor’s name in world outliner like BP_xxxxx678. this means it was 679th spawned object of this class. i have try to print self->get display name in construction script function. it not invoke on begin play. but invoked hundreds times on compile time.
i have try to create a new actor to use this class for child actor component. it works good. just got problem in the main actor class.
and this is an old project started with ue4.15 long long ago, then upgraded to 4.17 last month, it works pretty, but got problem on today after i modify it in 4.17. XD
finally, i have fix this problem…
i can delete the child actor component in blueprint editor now, i don’t know which action makes it works. i just try to modify the actor class and the child actor class again and again.
then i can delete the child actor component, but it still lots of duplicated components in the map. then i delete all instance in the map(the instance of child actor component can not select in the map, click it will select the whole actor, that’s ok), everything works pretty good now.
the three child actor component have the same times of duplicate instance in the map, it seems not operated by human (like shift + drag to create duplicated instance). but i can not find more info to you. sorry.
Glad to hear I’m not the only one suffering this problem. I did give my project to Thomas G to look at, haven’t heard back from it yet.
I too transitioned to 4.17 from 4.15, and probably a few versions before that.
I’ve always been able to delete my duplicate actors, but I am unable to discover how they’re replicating. I suspected it was some human action in the editor as well, or some other rare event like loading the level in the editor but I can never consistently reproduce to test it.
Thanks for trying Thomas. I’m not really sure how to take a screenshot of the issue. In the perspective viewport it just looks like the blueprint actor in question (albeit overlapping) and in the World Outliner it looks like my other screenshot.
I’m gonna try moving to 4.18 see and see if I can reproduce it. My running guess is that when a blueprint breaks because of bad blueprints, which can happen time to time while working on them, it can orphan these child blueprint actors. But again, the reason this is so annoying is its not easily repro’d.
This is still definitely an issue in 4.19.1. Child actors from a blueprint in the map keep showing up by themselves in the map, and the amount of copies keeps growing until deleted. No idea what causes this but it has been happening for a couple years now.