Apply constant force with Blueprint

I am attempting to create a volume that applies a constant force to an object that enters it, and I am seeing some strange behavior.

My script:

My test level has a ball that starts inside the volume, and I see that the volume pulls the ball downward until it hits a surface. The ball then bounces upward through the volume at a constant velocity (while I would have expected the volume to slow it). During this entire process, the print string block is reporting that the object’s velocity is <0,0,0>… even though I am watching it move.

My setup:

Any ideas what I have done so terribly wrong? The ball’s mass is only ~110 (with mass scale of 1.0), so I would expect the huge force to have a much greater effect. I also expect to see a nonzero velocity vector!

I’m not totally sure what your issue is, but remember that forces need to be HUGE to make a big difference, I’m talking several million or hundred million units. It’s hard to count the 0s in your screenshot but it looks like you’re aware of this. Just don’t be afraid to add more 0s when it doesn’t look like enough.

But you could approach this in a different way - why not make a trigger volume which sets the gravity scale of actors to be significantly higher on an overlap event? It would be much more performant, you wouldn’t run an event every tick nor would you have to iterate over all the actors in the array. You could make an endoverlapevent which sets their gravity scale back to normal, too, if you want. Should give the same effect, as far as I can tell.

Thanks for the reply!

The eventual goal is to allow that field to be at an arbitrary angle with respect to the world… which is why using gravity isn’t desirable. I have modified my test setup to contain an object that sits on a platform outside the field, that the player can push (by basic collision) so that it enters the field. My blueprint logic is basically the same, but with more printing. [At this point I looked through the details for my object-I-want-to-move] …And it looks like the problem is that the object must have ‘Generate Overlap Events’ turned on (the field already did). Sweet, now it works! Thanks!

That’ll do it! Glad you worked it out.