Is it good to always set network ownership to every client?

The question says everything that I’m asking.

Give an example where this would be viable, Im curious

I’m making a door. I will set network ownership of the door to every client to make the door swing smoother.
Here is the script:

local door = script.Parent.Door

local Players = game:GetService("Players")

for _, player in ipairs(Players:GetPlayers()) do
	door:SetNetworkOwner(player)
end

This is the server script

I dont see why thats needed unless networkowner is actually using the door or interacting with it, if this goes the same any other instance. Good chance doing so will also cause networking issues and unintended collisions and behaviors from specific instances server side knowing theyre being owned by the whole server.

1 Like

networkownership can only be one player at a time, or the server. Setting it to every player is just going to set it to the last player in the table.

3 Likes

To piggy-back off of @KdudeDev’s comment, the premise behind network ownership is mostly to reduce server computational load and reducing the impact of latency on physics simulations. Clients will already interpolate physics changes when they get updates from the server, so the only “smoothing” network ownership eliminates is the “hop” that happens when ownership changes.

How is your door structured? Is it fully physical? You could try having clients spawn in the doors rather than having them on the server and avoid network ownership issues entirely, although you then run the risk of having desync between clients.

1 Like

image
Here is the door’s structure.
The Door part is unanchored

Oh! I used to think that network ownership can be set to every client. Thanks!

1 Like

Just set it to the current player that is touching it or the closest player (if necessary).

1 Like