Exposing UE5 TickPhysicsAsync Event

Thank you @Claigo for creating this plugin.

Looking at the source code, I noticed that it builds arrays of pawns and actor components on which it will invoke the overridden AsyncTick method.
However, within AsyncTick it’s quite common to need access to values (floats or custom fields on classes) that might not be on the pawn itself, or on a component that extends UAsyncTickActorComponent.

In such cases, these values should be passed through the synchronized buffers between the game thread and the physics thread. Since this doesn’t seem to be happening (as the plugin can’t know which data the developer will need), is it correct to assume that accessing those values may lead to race conditions, which could potentially cause issues or even crashes?

For example, consider this scenario: an AAsyncTickPawn that has a “regular” UActorComponent responsible for reading and processing player inputs. In the pawn’s AsyncTick method, you access a float value from that input component.
In this case, I believe that access isn’t properly synchronized. From what I understand, this value should instead be copied into the exchange buffer via GetProducerInputData_External() on the game thread, and then later read on the physics thread using GetConsumerInput_Internal().

I’m not sure if my interpretation is correct – that’s why I’m asking for confirmation.