A part whose network owner is explicitly set to server slows down when a character comes near it, as long as a .Touched connection exists on either the character or the part’s assembly.
This occurs when all of the following are true:
- Its network owner is set to the server via
SetNetworkOwner(nil) - It is being moved by an
AlignPositionorBodyVelocity - A character comes within about 10 studs or touches the part
- Either the character or the part’s assembly (anything connected to it) has a
.Touchedconnection - At least one part in the character and at least one part in the assembly have
CanTouchenabled
CanCollide can be either true or false, so it seems to be caused by touch rather than collision.
Setting the PhysicsSteppingMethod to Fixed fixes the problem. This happens in both Studio and live servers.
This bug occurs in multiplayer; other players can see the slowdown caused by another player.
There seems to be no effect on Framerate / CPU, only the part’s speed changes.
This has caused issues in my game “Blockate” because we have moving platforms that are network server and the player’s characters have a Touched event connection, while the platforms have seats on them which also triggers this issue. The platforms themselves also have a Touched event connection since the platform needs to detect when it reached the next segment of a path to follow. I tried many different workarounds like disabling CanTouch on characters, or disabling CanTouch on the platforms, but it wouldn’t work because I needed them to be touchable in my game. My game has 2,533,223 places, and PhysicsSteppingMethod is an unscriptable property, even when using Open Cloud Luau Execution, so it is impossible for me to switch to Fixed stepping method, therefore I need adaptive physics to not cause this issue.
I’ve created a place for testing the bug out.
test-buggy-adaptive-physics.rbxl (83.7 KB)
https://roblox.com/games/90255543056092/Test-Adaptive-Physics-Bug
How to reproduce:
- Make sure PhysicsSteppingMethod is Adaptive
- Make sure the ConnectTouchParts and/or ConnectTouchChar script is enabled under workspace
- Stand on the purple platform, which especially triggers the bug. Going within ~10 studs of the other parts also works.
- You’ll see the parts’ physics near your character slow down relative to the other parts.
Note: it doesn’t trigger every time. If nothing happens, restart the playtest or try a different position relative to the part.
Here are a few videos of the bug
Expected behavior
I would expect that since the network owner is set to server, characters going near the part / assembly would not affect it whatsoever, it should especially not cause its physics to slow down. The parts should just move at a constant speed like they do with PhysicsSteppingMethod set to Fixed.