NetworkOwnership not behaving as expected

SimulationRadius determines the radius around the Player.Character in which physically simulated objects, for whom network ownership is set to automatic, are physically simulated by the Player .

SimulationRadius, measured in studs, starts at 10 and grows at a rate of 5% per second until it reaches Player.MaximumSimulationRadius .

When an anchored part [SERVER OWNERSHIP] is unanchored on the client within a <10 stud radius [CLIENT OWNERSHIP?], the part does not simulate physics unless continuously touching the character.

Unanchored part does not fall - Help and Feedback / Building Support - DevForum | Roblox

  • Behaviour indicated in the above post varies. The part simulates physics on the client after a certain time period/when the character was in range, but wasn’t touching.
3 Likes

You probably get the error message because it’s not loaded already. Try to wait a second before just in case.

No, that isn’t the case. ----------

This is very interesting.

I tried running the code on a server script, local script, module script, and even the Studio command bar, gives the same error. I also tried wrapping it around a pcall and putting it in a loop, still always errors.

It seems that any property you try to edit gives the same error.

Same page as you here, there’s little to no documentation/previous work for PhysicsSettings. Makes this seem as hard as getting Roblox to fix their RichText bug. :woozy_face:

1 Like

I’ve checked the documentation, I think it’s only modifiable in the Studio settings menu (unless I’m wrong).

It’s nowhere to be found. The only thing I can seem to access is the physics profiler.

Turns out I was making these changes on the client.
However, I still don’t understand why the car doesn’t move (on the client only) and does move when touching the character.

Because it’s owned by the server before you touch it. Call :SetNetworkOwnership(PlayerHere) on the server when you want the player to enter the car. You have to call it on the root part of the assembly (usually the part everything else is welded to) and the part cannot be anchored while doing so.

I’m interested in this part. It is expected behaviour - i’ve been told - but I don’t understand why. This applies to parts that aren’t anchored, but aren’t owned by the client.

Unless you use SetNetworkOwner(), the network ownership mode is set to auto. You can check this by using GetNetworkOwner(). If you want to reenable automatic ownership, use SetNetworkOwnershipAuto().

Basically, in order to offload physics calculations to clients which will most probably interract with the part, unless told otherwise, the server will automatically change the network owner. Touching the part, or just standing near it for a certain amount of time will yield this result. It’s a weird system, but that’s how things are.

or just standing near it for a certain amount of time will yield this result

The strange thing is that it doesn’t. Only the character’s hitbox colliding with the part’s will allow physics simulation. ShowRegionsEnabled = true proves this.

This probably has something to do with the fact that the change was local, and it is intended behaviour, changed from the behaviour shown in the similar post in my original post in this topic.