Hello [mention removed]
Yes, indeed I meant bTickPhysicsAsync, sorry for not being clear.
On the FlatTestLevel_Basic, from the ChaosModularVehiclesExamples plugin, the default spawned car is the ModularSkeletalMeshAnimated Blueprint, so the following relates to that BP:
Indeed, with the default settings, it’s easy to replicate the behavior you mentioned about vehicle collision, once two cars collide they usually become undrivable.
On Replication, the default is Resimulation (WIP), let me know if you changed that.
During my tests I had better results by disabling Class Defaults>Cluster Union>Enable Damage From Collision.
So, answering your questions:
1. In my tests, enabling those 3 flags plus making sure the Pawn is using PhysicsReplicationMode = Resimulation (WIP) were the requirements. Disabling the DamageFromCollision made the simulation work well with two players even after collision.
2, 3, 3.a : The official documentation goes into some detail:
When the client receives state information from the server, it compares them with the cached physics state in its history for the corresponding physics frame. If the state information differs enough, it triggers a physics resimulation.
A resimulation is done by rewinding the physics simulation back to the cached history state, correcting the errors based on incoming server states, and then simulating physics again up until the current physics tick.
At the end of a resimulation, an object might be at a different state than before the resimulation, which could cause snapping of the object’s position. In this case, the mode interpolates the rendering of the object from its current state to the new state.
I suggest you check \Engine\Source\Runtime\Engine\Public\Physics\NetworkPhysicsComponent.h for more info, as well as \Engine\Source\Runtime\Experimental\Chaos\Public\RewindData.h.
Some console commands can be verified on np2.Resim and p.Resim.
Let me know if this info is useful.
All the best,
[mention removed]
[Attachment Removed]