Bug: Move Component To not working with foreach

-(–4.4 from github. Take a look at the picture - Move Component To will only move ONE static mesh component, not all for the array.

Hi intoxicat3,

Exactly how and where did you setup your array?

Added all of the static meshes with ADD block - when I log everything in the array - the static mesh components are there, but Move Component To move only ONE - the first mesh in the array.

Hi intoxicat3,

I was able to reproduce what you are seeing and the reason there is an issue is because the MoveComponentTo node uses latency.

Most people think that if they do a latent function in a ForLoop, the next iteration of the loop won’t run until the latent ends. But what actually happens is it will get into the latent, and then do the loop for the next item.

I spoke with one of our senor programmers and he said this is an issue he runs into as well. He is looking into perhaps adding this functionality in a future release.

Thanks, TJ

Hello TJ,

Is there a suggested method of implementing this behaviour while we wait for that future functionality?


Hi teason22,

Well, it depends on exactly what you are trying to do. Could you post some screenshots and a description?

I’ve had some issue with Move Component To as well. It seems that once it moves something to it’s completion, it stops working from that point on.

For instance, I used one for a Elevator. It used Begin Overlap to start playing and End Overlap to reverse back to the ground. It moves 900 units into the air. And it worked great… as long as you jumped off before it reached it’s final destination. Staying on it until it reaches the top and it would never respond to any overlap again. I could jump off half way, and it would move right back to where it started, perfectly. But if I let it take me all the way up, it was dead. It wouldn’t go back down or respond to anything else. It’s like it got broken as soon as it reached the top and could never respond again.

If you change locations it does seem to work. For another example, I’ve used Move Component To as a transport beam, to shift my character across the level. In this case, it moves me everytime and always works. I think that, because the destination is always changing, it resets the Move Component To, and it works again. But if the destination is always the same, it breaks on arrival.

I am having a similar problem - I was well aware that for each loops continue without pausing on the latent action, but I wasn’t able to trigger a whole bunch of move to’s at once because the last one overrides all the others. What is the correct work around for this?

Hi ,

I’m not ‘exactly’ sure what you are trying to do, but if you want to have multiple components in a blueprint to each use a Move To simultaneously, you could just use a Sequence node.

If that won’t work with your setup, can you give me some more info on exactly what you are trying to accomplish? Feel free to include a screenshot of you blueprint setup.

Is there any news?)