[BUG] Radial force does not affect actors who have 'simulate physics' started at runtime

With the latest version of the engine (4.13.2) if you create a radial force actor or component inside an actor then only actors that have ‘Simulate Physics’ to true as their default will be affected by it.

So if you use the starter content and convert the 2 chairs to the same blueprint so that if you click on either one ‘Set Simulate Physics’ gets set to true.

If you have 1 chair (Chair A) with ‘Simulate Physics’ on in the Editor and the the other chair (Chair B) has ‘Simulate Physics’ off when you launch the app Chair A will react to the radial force as expected but if you click on Chair B and set ‘simulate physics’ to true it will not respond to the radial force.

If however in the ‘Begin Play’ event for both actors you set ‘simulate physics’ to false and then turn it on onClick it will work as expected UNLESS the actor had ‘Simulate Physics’ unchecked to begin with.

So to summarize, if ‘Simulate Physics’ is unchecked, enabling it at runtime will not cause the actor to actually respond to a radial force.

Note that for my example I was using an extremely high negative force value to test (-500000.0)

Hi mr_pinc,

Thanks for the report.

What you are seeing is actually by design. An actor that is not simulating physics is set by default to an object type that the RadialForceActor does not interact with (by default). Even when this object is set to SimulatePhysics during runtime, the object type will remain the same.

You have 3 options to get this working:

  1. Add that object type to the ObjectTypeToAffect field in the RadialForceActor.

  2. Change the object type of the actor directly to a type that the RadialForceActor can affect.

  3. After you set SimulatePhysics at runtime, use the SetCollisionObjectType to change object type on the actor.

Let me know if any of these will work for you.



Yes that solution will work for me. Thanks for the reply.