I’ve also been experiencing issues with Motor6D replication on the server recently. I switched to HingeConstraints as I couldn’t find a fix.
Which is fine except when using the suspension system I’m using. HingeConstraints are way too elastic and my wheels spring back and forth, not really accepting the normal Servo HingeConstraint controls.
Have you tried to make a localscript that executes a RemoteEvent to a Server Script inside ServerScriptService?
But why should someone have to do that? I see it as an Engine Bug since it is a value that is still updating fine in game and in Studio, it just suddenly isn’t being read properly when a script goes to get that CurrentAngle value.
I have been using motors for over 3 years and not once have they been an issue until now. I am really hoping a fix will be released to allow the currentAngle to replicate to the server as it has done for the past 3+ years, as this isn’t something as a developer we should have to try and work around.
This issue affected games within the brick battle community, which often have an option to toggle your character animations to the classic animations prior to 2015 or so. Suddenly only the LocalPlayer’s animations worked, while everyone else was just moving rigid bodies. I “fixed” it by making the animation LocalScript a PlayerScript that applies Motor6D changes regularly to the LocalPlayer’s character (changing DesiredAngle on each RenderStep) and slightly differently to everyone else from the LocalPlayer’s perspective (changing CurrentAngle on each RenderStep).
Roblox broke Motor6D… Most of Ro-Aviation’s Aircraft no longer have working animations, Thanks for killing a community…
As far as most know, Roblox won’t fix this bug.
We have a ticket tracking the issue and are investigating. We haven’t pinpointed the cause yet.
If you can send us a place file with instructions we can use to reproduce this consistently, that would be extremely helpful.
From my experience, not only Motor6D is affected, but also the regular Motor object. When the DesiredAngle property is changed by a server script, the change is only visible on its network owner’s side, and on the server side the angle never changes.
motor6d bug repro.rbxl (22.7 KB)
Launch 2 players and use the buttons on player 2.
The client → server replication used to work perfectly for motor6d’s, since this update, the propellers stopped rotating in my game.
Doors are also completely broken now aswell because of this issue and every single day, i am receiving messages about people being annoyed that these things are broken.
Client to server replication / setting the DesiredAngle manually on the server:
Script setting the desired angle on the server:
if i re-call correctly, i think it’s something to do with FE
It’s breaks almost everything using motors including planes, cars, etc… I hope this will be fixed soon. This bug have been happening a while ago, but people tought this were a non-announced Update about motors.
Not yet, no. We have a link to this post on the ticket, and we’ll try to reply when this gets fixed.
This bug seems to be network ownership specific. For example, this script in a model with 2 parts connected via Motor6D:
game.Players.ChildAdded:Wait()
local Player = game.Players:FindFirstChildOfClass("Player")
script.Parent.Part:SetNetworkOwner(Player)
print("ownership given to", Player)
script.Parent.Motor.DesiredAngle = 1
The player with network ownership will see everything work as normal. Any other players will see the two parts rapidly flicker between the motor being at angle 0 and angle 1 every time the two parts move. If the two parts are left untouched they will appear in their correct positions.
However its worth noting that in the example place I quickly put together the motor goes to the correct position on the server, whereas in the game I encountered this bug (a pop-up headlight on a car) the motor will never change from a current angle of 0 on the server unless the current angle property is changed directly by the server, even though the motor has both a non-zero max velocity and the correct desired angle. Motor6dbug.rbxl (19.4 KB)
Yeh i mentioned in my post when i first noticed it that it had to be network ownership linked. A very simple reason is that if you drop same model in the players character those functions will replicate on the server too without issue. There seems to be a mismatch with motor6d and Networkownership due to a recent change. Of which CurrentAngle only changes on the player with network ownership but never the server or other players which means if you had a server side script reading currentangle to check if its past a limit to play a sound for example it will never do that on even the player with network ownership unless that script is a local script.
We should have a fix for this enabled by the end of the week
The fix should be live, let me know if you still encounter this issue!
We are encountering issue with welds/motor6d/weldConstraints not updating Part1’s position locally when the Part0’s don’t move on the server but do move on the clients.