Events for when the current machine gains network ownership

This is inspired by Event Part.NetworkOwnerChanged - #26 by Baumz, but that thread changed focus to diagnosing and fixing the OP’s problem specifically, So I’m making a new thread.

As a Roblox developer, it is currently too hard to know when Roblox’s automatic NetworkOwner system assigns a part to your client. The available BasePart:GetNetworkOwner method is not accessible from the client. (see also Allow GetNetworkOwner() To Be Called On Client - #5 by coplox)

I would like to use new events that fire when a part has its NetworkOwner assigned to or removed from the current machine. These events should be accessible from both the client and server, where they will fire from the context of that machine, rather than only the server.

This can be used to register Touched events for the machine that is simulating a rocket, for better responsiveness.

As the rocket passes between client and server ownership, the server and clients can connect and disconnect the Touched event on the rocket when they gain or lose NetworkOwnership, then process the explosion and damage if the event is fired. Otherwise, the rocket only has the Touched event processed on the server, and if it’s NetworkOwned by a client at the time, the rocket could bounce for a few frames on clients before exploding.

Similarly, Zombies could have their AI processed by their NetworkOwner to reduce response time.

A rolling ball that uses a Torque to roll towards the nearest player could have the homing logic processed by their NetworkOwner just like their physics is.

If Roblox is able to address this issue, it would improve my development experience because I could better manipulate Roblox’s physics on the machine that is simulating any specific part, while leaving the NetworkOwnership on automatic.

Thank you for your consideration!

19 Likes

We really need this feature for our game. We’d like unowned cars to have auto network ownership but they can’t because most of the forces on the car are simulated via scripts. So without knowing when it changes from server to client and vice versa, I cannot transfer the simulation between server and client on auto network ownership. It’s the same problem as the OP. It’s been nearly 6 years this shouldn’t be the hardest thing to implement and it’s a huge factor for better user experience in our game.

9 Likes