GetPropertyChangedSignal() doesn't fire for AssemblyRootPart

I am trying to detect when an assembly changes. I want to run a function when the assembly root part changes, but the signal returned by Part:GetPropertyChangedSignal("AssemblyRootPart") doesnt fire ever.

I set up a test with 2 parts connected with a WeldConstraint. This code should output when the assembly root part changes, but nothing shows in the output even though I can clearly see it changing in the properties panel

workspace.Part1:GetPropertyChangedSignal("AssemblyRootPart"):Connect(function() 
    print("assembly changed") 
end)

2 Likes

Thanks for your report! This is actually working as intended because this property can only be read from. Attempting to write to it will cause an error.

2 Likes

That doesn’t make any sense. There are other read-only properties that GetPropertyChangedSignal fires for (e.g. Camera.ViewportSize).

Other than this property there is no way to know when the assembly has changed other than polling, which is complicated to manage and inefficient.

13 Likes

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.