@ I had mentioned awhile back a problem where there is a sudden jump when going from client owner -> server owner. I was never able to get this problem solved. I tried using ClearBuffer on all instances before and after SetOwner(nullptr), but it doesn’t seem to do much.
I’m beginning to wonder if it has to do with the way I’m simulating physics. Here is exactly what happens:
- Level starts. My Smooth Sync Actor is owned by the server. Physics for this actor only simulates on the server, not clients.
- Client grabs actor with a physics handle, which disables server physics, and enables physics for that client. The owner is set to that client
- So far everything works smoothly. Client can move around actor with no problems
- Client drops actor, releasing it from the physics handle. After 1 second of the actor having 0 velocity, the owner is set back to nullptr (Server) and physics is disabled on the client, and enabled on the server. I overrode SetOwner and called a function before and after Super::SetOwner(NewOwner) that clears Smooth Syncs buffer.
- The actor teleports to it’s last server position and then teleports back to where it should be.
I’ve tried many different things to get this working properly, but to no avail. Let me know if you have any ideas, or ways to debug this further. Thanks!